From patchwork Wed Jan 11 07:06:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 41778 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3169535wrt; Tue, 10 Jan 2023 23:07:27 -0800 (PST) X-Google-Smtp-Source: AMrXdXue7IMTwFqPvErWAmFQBjPF0+8mW0ivrR2Vc5teSp/amZOIbSJmR9ChxiJS9pJPI7ddc8AG X-Received: by 2002:a17:902:ecc8:b0:193:3540:c54d with SMTP id a8-20020a170902ecc800b001933540c54dmr11947054plh.26.1673420847193; Tue, 10 Jan 2023 23:07:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673420847; cv=none; d=google.com; s=arc-20160816; b=Z9miqcOrJdgeko/fEjkyXFx3iT+Gl+CpMUZQbFguq7+8uqSmXflCuZ3oOaXHtyCJbR P4Nl1VIuLqsdrJt8Y9+5V01wwmwPJICY3U1bry6IGazNlTWySiYqc0HbbqhCEeC6AAJt LFyteDhdgxEonhGSGOxs+BgyR/vJ9v3LRLpbVgSoS+gfnij35KhvH59bMGFUL/7GVXxQ RRrvfLidW7RyUH96J5SQJ/+/zQE/i1ejcltyRL5IqB1253bBQjvpZTSBDJxAxkA05YlJ L5RrQpjP8tJrc/VmrueYrzLzSIDaqN11zhIfBcFLCzVmi1Fl7LT75cP0bKqKRkRIuHXa ceWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :dkim-signature; bh=Ug6Nd3EbDzaRS68tlrjiAydekO6Uv+/xgV5ztzybNo0=; b=rtirv5izBqNsljBfmBoLavfyy42g2WU4h7BgC4qh3RZ/cQTer3uXZuzq7FvriyaBLa tqaHpe9m37plSwlpVnTaXue+dDP/3bnCv4fObgRW5ucNXlNC2c9glUzEkElwNLpv42OQ /JlreMuWSSiDR3Zxyk7GsJBCv1EVrnrfETt83xCqWbyFjA6p/CQq8fRAufvnKM2I2Bx4 v7TJYnJu8B4jfwBbYQRp7dKfwWlbnde6wkRKdXxo/xxFmYD71v7ZeogJeSB+yIno6ped GonDgLP0b19HZfc4AZUyI/KbAqV4JvMidLpjoWKsJXP4vbZcOiouAJMZpg9ri5UPOWWK ADsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=qYAKvEXu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t9-20020a17090340c900b001943dcf2035si4077885pld.460.2023.01.10.23.07.14; Tue, 10 Jan 2023 23:07:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=qYAKvEXu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231635AbjAKHG7 (ORCPT + 99 others); Wed, 11 Jan 2023 02:06:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33228 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231695AbjAKHGz (ORCPT ); Wed, 11 Jan 2023 02:06:55 -0500 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 37E7063BF for ; Tue, 10 Jan 2023 23:06:54 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id w9-20020a05690210c900b007b20e8d0c99so15233384ybu.0 for ; Tue, 10 Jan 2023 23:06:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:mime-version:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=Ug6Nd3EbDzaRS68tlrjiAydekO6Uv+/xgV5ztzybNo0=; b=qYAKvEXuIIQCPgHBf00AlgJZWCc4I2W8jgeb3x/4hnz/BCU2243OfENJHnHBKKGzY7 1jj3EAOJygA27bcZMpDdQ6RitrLuiTCNDh+MzdNqoI5stXJz5EjWxW9qt0h6USGVbWTB niTVMd6d8OQRchc4/7faar99Eoj3Flx/9g0klnLbXAU3YqMzWAw995HnH0MIyXwk6Nmh xDBai6ZavSM4vNqCbaDgqeI2vLBttqNaAmrDC+84Peq7yR+Qjf5m+6XH5uK8h6/heu/k 8UiRPBVKzg7c3DgVZAZc8ACMkAdk75nQ6a26JE4/aetRFbrjY51Ut6ermdBeBOSxvM8X 8jIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:mime-version:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Ug6Nd3EbDzaRS68tlrjiAydekO6Uv+/xgV5ztzybNo0=; b=qYpwBz1Nv5Jmo9a8+3GFalxfNYUh4cLnp86hGNtyLLIwVowW+qU1aL0yK2TAWsFCJ6 mtKA/WB2PRELnszQXmpLfbXItooGtsLzrXz37ZDsZXdKAQ1mgONM9gB2cEwqvw5q7ky0 EH/Tfy80d3f0DnzbLvNVK83ytXnQ9XsfLgAlsJ4gOACnZaVOXGQJHNp1cA7BBylF7gUv XpCxzcQ1drkbyaEnit3EbhjQfl1JeZMw+oWGhVj9M+M20zjCYKLGs4qdmB8EFjKadn2V 6NMu3G0E7JFuCar6Uk1FdHiT6Jvb2y17zOptmABlfiJu+LVPfkiQuQw9cEZQ4QoiLj6R 29+g== X-Gm-Message-State: AFqh2koFwuTBTYP9JBY8k0j2H9qWCZZii++N9ws84Gowtc5G2W2vStKH eM6oRU0usA1hJd/sKIxpC4XTKaWxhvCS X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:cebf:c37e:8184:56]) (user=irogers job=sendgmr) by 2002:a25:4f03:0:b0:722:24a8:f05b with SMTP id d3-20020a254f03000000b0072224a8f05bmr6659709ybb.418.1673420813425; Tue, 10 Jan 2023 23:06:53 -0800 (PST) Date: Tue, 10 Jan 2023 23:06:39 -0800 Message-Id: <20230111070641.1728726-1-irogers@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Subject: [PATCH v2 1/3] perf tools: Remove HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter , Yang Jihong , Kan Liang , Kim Phillips , German Gomez , Sean Christopherson , Paolo Bonzini , Eelco Chaudron , Leo Yan , Athira Rajeev , Stephane Eranian , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ian Rogers X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754708938277353547?= X-GMAIL-MSGID: =?utf-8?q?1754708938277353547?= Switch HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE to be a version number test on libtraceevent being >= to version 1.5.0. This also corrects a greater-than test to be greater-than-or-equal. Discussed here: https://lore.kernel.org/lkml/20221205225940.3079667-3-irogers@google.com/ Fixes: b9a49f8cb02f ("perf tools: Check if libtracevent has TEP_FIELD_IS_RELATIVE") Signed-off-by: Ian Rogers --- tools/perf/Makefile.config | 4 ---- tools/perf/builtin-trace.c | 2 +- tools/perf/util/data-convert-bt.c | 2 +- tools/perf/util/evsel.c | 2 +- tools/perf/util/python.c | 2 +- tools/perf/util/scripting-engines/trace-event-perl.c | 2 +- tools/perf/util/scripting-engines/trace-event-python.c | 2 +- tools/perf/util/sort.c | 3 ++- tools/perf/util/trace-event.h | 3 +++ 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index c2504c39bdcb..f67ba8060162 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config @@ -1204,10 +1204,6 @@ ifneq ($(NO_LIBTRACEEVENT),1) LIBTRACEEVENT_VERSION_CPP := $(shell expr $(LIBTRACEEVENT_VERSION_1) \* 255 \* 255 + $(LIBTRACEEVENT_VERSION_2) \* 255 + $(LIBTRACEEVENT_VERSION_3)) CFLAGS += -DLIBTRACEEVENT_VERSION=$(LIBTRACEEVENT_VERSION_CPP) $(call detected,CONFIG_LIBTRACEEVENT) - LIBTRACEEVENT_VERSION_WITH_TEP_FIELD_IS_RELATIVE := $(shell expr 1 \* 255 \* 255 + 5 \* 255 + 0) # 1.5.0 - ifeq ($(shell test $(LIBTRACEEVENT_VERSION_CPP) -gt $(LIBTRACEEVENT_VERSION_WITH_TEP_FIELD_IS_RELATIVE); echo $$?),0) - CFLAGS += -DHAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE - endif else dummy := $(warning Warning: libtraceevent is missing limiting functionality, please install libtraceevent-dev/libtraceevent-devel) endif diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index 86e06f136f40..927622ecc42e 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c @@ -2729,7 +2729,7 @@ static size_t trace__fprintf_tp_fields(struct trace *trace, struct evsel *evsel, offset = format_field__intval(field, sample, evsel->needs_swap); syscall_arg.len = offset >> 16; offset &= 0xffff; -#ifdef HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE +#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) if (field->flags & TEP_FIELD_IS_RELATIVE) offset += field->offset + field->size; #endif diff --git a/tools/perf/util/data-convert-bt.c b/tools/perf/util/data-convert-bt.c index b842273458b8..98454f7a820c 100644 --- a/tools/perf/util/data-convert-bt.c +++ b/tools/perf/util/data-convert-bt.c @@ -322,7 +322,7 @@ static int add_tracepoint_field_value(struct ctf_writer *cw, offset = tmp_val; len = offset >> 16; offset &= 0xffff; -#ifdef HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE +#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) if (flags & TEP_FIELD_IS_RELATIVE) offset += fmtf->offset + fmtf->size; #endif diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 999dd1700502..296292fa2c04 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -2784,7 +2784,7 @@ void *evsel__rawptr(struct evsel *evsel, struct perf_sample *sample, const char if (field->flags & TEP_FIELD_IS_DYNAMIC) { offset = *(int *)(sample->raw_data + field->offset); offset &= 0xffff; -#ifdef HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE +#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) if (field->flags & TEP_FIELD_IS_RELATIVE) offset += field->offset + field->size; #endif diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 212031b97910..25a276710dfb 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -442,7 +442,7 @@ tracepoint_field(struct pyrf_event *pe, struct tep_format_field *field) offset = val; len = offset >> 16; offset &= 0xffff; -#ifdef HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE +#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) if (field->flags & TEP_FIELD_IS_RELATIVE) offset += field->offset + field->size; #endif diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c index c097b7934fd4..5bcec514f697 100644 --- a/tools/perf/util/scripting-engines/trace-event-perl.c +++ b/tools/perf/util/scripting-engines/trace-event-perl.c @@ -393,7 +393,7 @@ static void perl_process_tracepoint(struct perf_sample *sample, if (field->flags & TEP_FIELD_IS_DYNAMIC) { offset = *(int *)(data + field->offset); offset &= 0xffff; -#ifdef HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE +#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) if (field->flags & TEP_FIELD_IS_RELATIVE) offset += field->offset + field->size; #endif diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c index e930f5f1f36d..759ed6eafa3c 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c @@ -994,7 +994,7 @@ static void python_process_tracepoint(struct perf_sample *sample, offset = val; len = offset >> 16; offset &= 0xffff; -#ifdef HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE +#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) if (field->flags & TEP_FIELD_IS_RELATIVE) offset += field->offset + field->size; #endif diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index e188f74698dd..cfcc253239f0 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c @@ -28,6 +28,7 @@ #include "time-utils.h" #include "cgroup.h" #include "machine.h" +#include "trace-event.h" #include #include @@ -2667,7 +2668,7 @@ static int64_t __sort__hde_cmp(struct perf_hpp_fmt *fmt, tep_read_number_field(field, a->raw_data, &dyn); offset = dyn & 0xffff; size = (dyn >> 16) & 0xffff; -#ifdef HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE +#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) if (field->flags & TEP_FIELD_IS_RELATIVE) offset += field->offset + field->size; #endif diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h index add6c5d9531c..1a1a2e6b24fb 100644 --- a/tools/perf/util/trace-event.h +++ b/tools/perf/util/trace-event.h @@ -20,6 +20,9 @@ struct trace_event { struct tep_plugin_list *plugin_list; }; +/* Computes a version number comparable with LIBTRACEEVENT_VERSION from Makefile.config. */ +#define MAKE_LIBTRACEEVENT_VERSION(a, b, c) ((a)*255*255+(b)*255+(c)) + typedef char *(tep_func_resolver_t)(void *priv, unsigned long long *addrp, char **modp); From patchwork Wed Jan 11 07:06:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 41779 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3169797wrt; Tue, 10 Jan 2023 23:08:18 -0800 (PST) X-Google-Smtp-Source: AMrXdXsar4JHuMnG8wZ9wz31VNhygkGT9jv+DIPG04SsZh54mTn046EeWcYCHWTUWoINVC6jgHkc X-Received: by 2002:a05:6402:e0a:b0:46c:b25a:6d7f with SMTP id h10-20020a0564020e0a00b0046cb25a6d7fmr71077465edh.8.1673420898392; Tue, 10 Jan 2023 23:08:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673420898; cv=none; d=google.com; s=arc-20160816; b=uzr8/mA6HB1ZTg4LGCD3AnAizQGdk6VQL2JgUG2BUqnLCiUOA3lXsA8sr7bkApdsQD b/7pyo/ikbl3nsGka/4BBvVgqPbtJdR+aanOI66GLCwuPWfrwiy2Dte6gXY86HY+chUS IiIqfQy4r72lzEupakwQFafCsfbiy3c6MUEguG36SKrp18Eu4UmCf4mzAZI7Ko+fGYgr iTa9MWsffznixZOZtKx3tNRkIkKONoIknWex3U8LcS0MSakpodnZV/0H4cEmh3mBVTWQ 5YmxaJalzJ+5eWQor0xcf2k1Jzvo7dpcCkY9lbNOzgCr4v23UIS8lIiV/3uztdgRPprr F//A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=QcIFJ2x72XnzKR9JnqBftaBgEZOVI/IGNNJWfUZh1kA=; b=CF2NiHq0J1f4r1Oz+Xy1luv61Ce5BiqJizmjpUxPAiBaJAlOzMRm+WrCxRR+Ts/qHK dsW324/iWAvUjf9bb8MnXHeYY3UI1vE2py5WPcY2d4kJqGRAN9mc4cUar5Lyv8KYUCTk e4eNEhdsuZWnfHy6GTe5+TWjlEkTvsXbwvHk4T3BkQqTZuzrzQLpg4z+eH8gcASu/9eZ OSMGWPBwKkydqCYZZxqLBudHoV8e/1xcie/mfukwzO8dPMF7O6fcU/KewVSnUpzY9izy 7M951gHNoGeaUfI+J18u0bSpLiWu2FcblIeMHEKv7fMtuObjO90IyxeH+GXzEC+IGofA Xghg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=bs7xtaVl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m21-20020a056402431500b0048d8fa5856dsi15873872edc.454.2023.01.10.23.07.54; Tue, 10 Jan 2023 23:08:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=bs7xtaVl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231760AbjAKHHM (ORCPT + 99 others); Wed, 11 Jan 2023 02:07:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231465AbjAKHHC (ORCPT ); Wed, 11 Jan 2023 02:07:02 -0500 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E82D8AE77 for ; Tue, 10 Jan 2023 23:07:01 -0800 (PST) Received: by mail-yb1-xb4a.google.com with SMTP id v9-20020a259d89000000b007b515f139e0so15418246ybp.17 for ; Tue, 10 Jan 2023 23:07:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=QcIFJ2x72XnzKR9JnqBftaBgEZOVI/IGNNJWfUZh1kA=; b=bs7xtaVlYBLFOSzJZ04j49npQTIGs/SIaSKqB8GfS5VJJg+s0RhAnjmxYleMCIVJDH hx51RHmyDGfhvz+KDx8Mrc9gGchiuNDvXPc/zCpsmdWxMSFV0Me8j6yEIxDbTjSaOJ/N jsRfRdUC33UIBTi0J+WY1/q0jbue1dy81BD+fTEnE9+oe4ywPKoKW/hrU8c1RS2IwSyY i4VWyndqnxHly6smvSFU1oXcF9xTY8RCYnrbQuZ8FXpIAKpruu1RuxxJ9xkzksJKQMXv 79Wii4zxgFbH2fSaza5P3ysc0B2ov15xFaFID3cUKZjX3V8FxdpRJExilSgckqZiXd9z 6EMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=QcIFJ2x72XnzKR9JnqBftaBgEZOVI/IGNNJWfUZh1kA=; b=Rq/VoTxsxXXMC2j/PELSvGBK4EJYA8hjjxkMySNTyHyjiC+1O1st4Zcjmgo77rOre0 wlQ+OQL7FrKmO9+WBhWkbmJEV7MXRAhnDveTppTuG4uNPfFbdcRDcnwr89YnIe7tLMOO HDjDYBmb3z+b6kG5Z6EK62cr9iyGmjZWnjD2Yw2sBGBxgPbDYD+6Rlk1DjxGBJ86qr87 CJsN9MgQH44IQBDpDpMQE1VUquolUtxfs3w9VAczG5c+MFLSOD59WW17rlBlGIv86sZ2 EPH2IaqMROkr1CCSKIdVgugua2zHn/xaX4TJPL1SPK6xkp5fe+Cs1ZXoHChq+IZBqkjT kQ/Q== X-Gm-Message-State: AFqh2kqp/JOfd9MZaJrxR6jZTwrOGavTvRnCgENCJVEg14R9/as6Coso d1BJTsZeG78E5akay/qtWroed84nrO1Z X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:cebf:c37e:8184:56]) (user=irogers job=sendgmr) by 2002:a25:e309:0:b0:700:b6ef:34a9 with SMTP id z9-20020a25e309000000b00700b6ef34a9mr5408985ybd.527.1673420821147; Tue, 10 Jan 2023 23:07:01 -0800 (PST) Date: Tue, 10 Jan 2023 23:06:40 -0800 In-Reply-To: <20230111070641.1728726-1-irogers@google.com> Message-Id: <20230111070641.1728726-2-irogers@google.com> Mime-Version: 1.0 References: <20230111070641.1728726-1-irogers@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Subject: [PATCH v2 2/3] perf trace: Reduce #ifdefs for TEP_FIELD_IS_RELATIVE From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter , Yang Jihong , Kan Liang , Kim Phillips , German Gomez , Sean Christopherson , Paolo Bonzini , Eelco Chaudron , Leo Yan , Athira Rajeev , Stephane Eranian , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ian Rogers X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754708991912803404?= X-GMAIL-MSGID: =?utf-8?q?1754708991912803404?= Add a helper function that applies the mask to test, or returns false if libtraceevent is too old or not present. Signed-off-by: Ian Rogers --- tools/perf/builtin-trace.c | 4 +--- tools/perf/util/data-convert-bt.c | 4 +--- tools/perf/util/evsel.c | 4 +--- tools/perf/util/python.c | 4 +--- .../util/scripting-engines/trace-event-perl.c | 4 +--- .../util/scripting-engines/trace-event-python.c | 4 +--- tools/perf/util/sort.c | 4 +--- tools/perf/util/trace-event.h | 16 ++++++++++++++++ 8 files changed, 23 insertions(+), 21 deletions(-) diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index 927622ecc42e..a4240adbe42f 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c @@ -2729,10 +2729,8 @@ static size_t trace__fprintf_tp_fields(struct trace *trace, struct evsel *evsel, offset = format_field__intval(field, sample, evsel->needs_swap); syscall_arg.len = offset >> 16; offset &= 0xffff; -#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) - if (field->flags & TEP_FIELD_IS_RELATIVE) + if (tep_field_is_relative(field->flags)) offset += field->offset + field->size; -#endif } val = (uintptr_t)(sample->raw_data + offset); diff --git a/tools/perf/util/data-convert-bt.c b/tools/perf/util/data-convert-bt.c index 98454f7a820c..2b732bccabad 100644 --- a/tools/perf/util/data-convert-bt.c +++ b/tools/perf/util/data-convert-bt.c @@ -322,10 +322,8 @@ static int add_tracepoint_field_value(struct ctf_writer *cw, offset = tmp_val; len = offset >> 16; offset &= 0xffff; -#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) - if (flags & TEP_FIELD_IS_RELATIVE) + if (tep_field_is_relative(flags)) offset += fmtf->offset + fmtf->size; -#endif } if (flags & TEP_FIELD_IS_ARRAY) { diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 296292fa2c04..8550638587e5 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -2784,10 +2784,8 @@ void *evsel__rawptr(struct evsel *evsel, struct perf_sample *sample, const char if (field->flags & TEP_FIELD_IS_DYNAMIC) { offset = *(int *)(sample->raw_data + field->offset); offset &= 0xffff; -#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) - if (field->flags & TEP_FIELD_IS_RELATIVE) + if (tep_field_is_relative(field->flags)) offset += field->offset + field->size; -#endif } return sample->raw_data + offset; diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 25a276710dfb..d948455e5ed4 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -442,10 +442,8 @@ tracepoint_field(struct pyrf_event *pe, struct tep_format_field *field) offset = val; len = offset >> 16; offset &= 0xffff; -#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) - if (field->flags & TEP_FIELD_IS_RELATIVE) + if (tep_field_is_relative(field->flags)) offset += field->offset + field->size; -#endif } if (field->flags & TEP_FIELD_IS_STRING && is_printable_array(data + offset, len)) { diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c index 5bcec514f697..83fd2fd0ba16 100644 --- a/tools/perf/util/scripting-engines/trace-event-perl.c +++ b/tools/perf/util/scripting-engines/trace-event-perl.c @@ -393,10 +393,8 @@ static void perl_process_tracepoint(struct perf_sample *sample, if (field->flags & TEP_FIELD_IS_DYNAMIC) { offset = *(int *)(data + field->offset); offset &= 0xffff; -#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) - if (field->flags & TEP_FIELD_IS_RELATIVE) + if (tep_field_is_relative(field->flags)) offset += field->offset + field->size; -#endif } else offset = field->offset; XPUSHs(sv_2mortal(newSVpv((char *)data + offset, 0))); diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c index 759ed6eafa3c..2c2697c5d025 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c @@ -994,10 +994,8 @@ static void python_process_tracepoint(struct perf_sample *sample, offset = val; len = offset >> 16; offset &= 0xffff; -#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) - if (field->flags & TEP_FIELD_IS_RELATIVE) + if (tep_field_is_relative(field->flags)) offset += field->offset + field->size; -#endif } if (field->flags & TEP_FIELD_IS_STRING && is_printable_array(data + offset, len)) { diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index cfcc253239f0..dcc4ea96236d 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c @@ -2668,10 +2668,8 @@ static int64_t __sort__hde_cmp(struct perf_hpp_fmt *fmt, tep_read_number_field(field, a->raw_data, &dyn); offset = dyn & 0xffff; size = (dyn >> 16) & 0xffff; -#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) - if (field->flags & TEP_FIELD_IS_RELATIVE) + if (tep_field_is_relative(field->flags)) offset += field->offset + field->size; -#endif /* record max width for output */ if (size > hde->dynamic_len) hde->dynamic_len = size; diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h index 1a1a2e6b24fb..ee968e5f6b7a 100644 --- a/tools/perf/util/trace-event.h +++ b/tools/perf/util/trace-event.h @@ -139,4 +139,20 @@ int common_lock_depth(struct scripting_context *context); #define SAMPLE_FLAGS_BUF_SIZE 64 int perf_sample__sprintf_flags(u32 flags, char *str, size_t sz); +#if defined(LIBTRACEEVENT_VERSION) && LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) +#include + +static inline bool tep_field_is_relative(unsigned long flags) +{ + return (flags & TEP_FIELD_IS_RELATIVE) != 0; +} +#else +#include + +static inline bool tep_field_is_relative(unsigned long flags __maybe_unused) +{ + return false; +} +#endif + #endif /* _PERF_UTIL_TRACE_EVENT_H */ From patchwork Wed Jan 11 07:06:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 41780 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp3170498wrt; Tue, 10 Jan 2023 23:10:23 -0800 (PST) X-Google-Smtp-Source: AMrXdXu1AcweXXVjm9rN95lrE1pAItWE6Mbz2OfNt1xHEUT90ri7FbCry+BJbWNPY92FMnI15vQo X-Received: by 2002:a17:906:6dce:b0:7c3:e3ef:bca1 with SMTP id j14-20020a1709066dce00b007c3e3efbca1mr59830792ejt.60.1673421023714; Tue, 10 Jan 2023 23:10:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673421023; cv=none; d=google.com; s=arc-20160816; b=cRx67t2Eb+g+wyVOfl1XaOgjIvsL5cVq9vL5HCXI9frqGFDsjw3UfQsXxIxXO3b61r gA5ugzoQSLhGFDcWe2ft09fOaZkdv+bDi6Lqd5/lwIbnl3rmitEmfWLvcjqn+EdchdAE tifcoLlU+BXmECbOJfE8YabUtQhaTCRIXad/X+GFiHl5lBrW8d1+MPbd7Lo8DNbkkeLS pZRnJESlqgvTcd5vb9RNR0H8KopJtlxvQLcYxS2tMcyHqCHKo2uuWSJF43hdcaq9B5Lb kBZzIM5myN6vB9OnhmPT5+bov17AbNuc8SrRJPLWVUaBPh23E2vESaY0lzKCjsyiSWtQ +5Rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=NFrSxVrfdRZYprem1a+EonI6bqjM3AdjO9gRlJ+kQ1E=; b=eSoZmTl1r76Z+YTnXUPDA5h+WFWTO384fF4ET6R9vnSl1KL2VcjOy4dnkWr4g0wYcI /AWyZT4qUtCGmOv3dtV8A3FUfdpwH7hWznYUuKEL8kKGj0LWOZRCK4zQS/9xomJ2m3jG GcN+SvooHJmsxnvEMJU5zl3nz6a04AtjzmMnOYG7y2o+3vrJFyJ90N2lhvVb6H/20nVZ ry9XPfqsaHarr3S3PyOYa+NzbIYMXscDmfryGEEODtMRwAJeNcyIQsgjZbytVnDaYfw3 T0vuzKK2oanTN8XnGGHdZjRcA3fhYDo7LYzrZwLUOhXVdXKPDh5Oys/ORCpDpxNexJGb 0kQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="MO/3evZ7"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id oq19-20020a170906cc9300b007acef3bec44si11516916ejb.221.2023.01.10.23.10.00; Tue, 10 Jan 2023 23:10:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="MO/3evZ7"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231929AbjAKHHR (ORCPT + 99 others); Wed, 11 Jan 2023 02:07:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33340 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234505AbjAKHHK (ORCPT ); Wed, 11 Jan 2023 02:07:10 -0500 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7F410B1FA for ; Tue, 10 Jan 2023 23:07:09 -0800 (PST) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-46658ec0cfcso153727927b3.19 for ; Tue, 10 Jan 2023 23:07:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=NFrSxVrfdRZYprem1a+EonI6bqjM3AdjO9gRlJ+kQ1E=; b=MO/3evZ7yJJjjP0LMQV02qoI0xTtd6ha4a5z3beUr4g0O6L8XONbEla8E2UdAZJIbf 84d93jxMcIe/UtdsXQcdt7czglCY/neqTcmt6w5Io248fs3NJqvNmufUyQJujptJGxZy 3WmXrND91U9ecYTl4mOmCiwhRPOXiAh6TpgPmLbKp1sNihUYYzMD+O/diiFqdg56XIKm Ln/GcLW6voOZp4w/UOreYmTpKzpxGVVN9OIN2cv4npA3nLuNohm5USCvFybojI+eWR3X OunlVvkVtHpoEL4jFNB411m19HuOMIiY+maxmTRvTDXnwgqZbFtk5TsPxrk0ZiEt5cl6 1uxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=NFrSxVrfdRZYprem1a+EonI6bqjM3AdjO9gRlJ+kQ1E=; b=19QFTjvBR+sCUjEyz0/l+/TFYQwI8JZk4A+K20GL67S8OpLQqj9jc29nbDSAvso+X2 LbwcZatgksbFVaPCe7MaLFUf6oCPSLRVQx6u+bddxA7X/ZF+/bvIHt+RSt3+unufL832 r9kI2lYgNwvXh3u6TQqodbPyiM8ZkmgyGf4T8Xvr8FZAtLfCFKbnj6mhBwahhmSc3lPc RcFKb4TtFtiQ1k/0BBLCLQawEBAxwuuKdYq8773hL2ZsVvy1XBz8enGNXZR6QGnvSF8r qLRsc4025p+xxaba1tON7lPHyPB6DVQP/BvpZ0gNIGbGvYZuyk3T0n5dPewlO/1fNqbS UdQg== X-Gm-Message-State: AFqh2krr+mN6SsTE8+RwYNVA26sT9eYKO2y1uzt1NYpzcnftTSpMXhmU rBYDN+XJ+VwsJgb+CJW3nj53OFBfuDa7 X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:cebf:c37e:8184:56]) (user=irogers job=sendgmr) by 2002:a25:3758:0:b0:7b5:f176:e485 with SMTP id e85-20020a253758000000b007b5f176e485mr2208774yba.556.1673420828555; Tue, 10 Jan 2023 23:07:08 -0800 (PST) Date: Tue, 10 Jan 2023 23:06:41 -0800 In-Reply-To: <20230111070641.1728726-1-irogers@google.com> Message-Id: <20230111070641.1728726-3-irogers@google.com> Mime-Version: 1.0 References: <20230111070641.1728726-1-irogers@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Subject: [PATCH v2 3/3] perf debug: Increase libtraceevent logging when verbose From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter , Yang Jihong , Kan Liang , Kim Phillips , German Gomez , Sean Christopherson , Paolo Bonzini , Eelco Chaudron , Leo Yan , Athira Rajeev , Stephane Eranian , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ian Rogers X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754709123234850481?= X-GMAIL-MSGID: =?utf-8?q?1754709123234850481?= libtraceevent has added more levels of debug printout and with changes like: https://lore.kernel.org/linux-trace-devel/20210507095022.1079364-3-tz.stoyanov@gmail.com previously generated output like "registering plugin" is no longer displayed. This change makes it so that if perf's verbose debug output is enabled then the debug and info libtraceevent messages can be displayed. This change was previously posted: https://lore.kernel.org/linux-perf-users/20210923001024.550263-4-irogers@google.com/ and reverted: https://lore.kernel.org/linux-perf-users/20220109153446.160593-1-acme@kernel.org/ The previous failure was due to -Itools/lib being on the include path and libtraceevent in tools/lib being version 1.1.0. This meant that when LIBTRACEEVENT_VERSION was 1.3.0 the #if succeeded, but the header file for libtraceevent (taken from tools/lib rather than the intended /usr/include) was for version 1.1.0 and function definitions were missing. Since the previous issue the -Itools/lib include path has been removed: https://lore.kernel.org/lkml/20221109184914.1357295-1-irogers@google.com/ As well as libtraceevent 1.1.0 has been removed from tools/lib: https://lore.kernel.org/lkml/20221130062935.2219247-1-irogers@google.com/ Signed-off-by: Ian Rogers --- tools/perf/util/debug.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/perf/util/debug.c b/tools/perf/util/debug.c index 190e818a0717..88378c4c5dd9 100644 --- a/tools/perf/util/debug.c +++ b/tools/perf/util/debug.c @@ -19,12 +19,19 @@ #include "debug.h" #include "print_binary.h" #include "target.h" +#include "trace-event.h" #include "ui/helpline.h" #include "ui/ui.h" #include "util/parse-sublevel-options.h" #include +#ifdef HAVE_LIBTRACEEVENT +#include +#else +#define LIBTRACEEVENT_VERSION 0 +#endif + int verbose; int debug_peo_args; bool dump_trace = false, quiet = false; @@ -228,6 +235,14 @@ int perf_debug_option(const char *str) /* Allow only verbose value in range (0, 10), otherwise set 0. */ verbose = (verbose < 0) || (verbose > 10) ? 0 : verbose; +#if LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 3, 0) + if (verbose == 1) + tep_set_loglevel(TEP_LOG_INFO); + else if (verbose == 2) + tep_set_loglevel(TEP_LOG_DEBUG); + else if (verbose >= 3) + tep_set_loglevel(TEP_LOG_ALL); +#endif return 0; }