From patchwork Sat Jun 29 04:53:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716786 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 41DFDC27C4F for ; Sat, 29 Jun 2024 04:54:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Fncuw7Z3XbzRLX/WU2elzeojCG7VDD1/GHjCfyd9rj4=; b=lEX8PV0EuzNyfI31UcWS77R2c5 nAe1tRsJAlb2lvdVVcNTL9cnYGvWFhs7yx/j4shiwHBhgiWMK7m14Z+rs/nmB5CiFfgIsdeoXzSoV OOUK9rcli/jgHEP0p9x1/e7E9LtYWCuKde/i2+m+zfZh+WB1JkAqNri0N/lYdwEPJVn+3UM+9DXLx TAcfv1ZosR9mLy9aauxXYLI2fsqsehLhuNluK3cHo7jN/lLNLpngtZ5rVHhpQN01ltxOI1EWANA1u 6j0Woa8z8v0edOWOybmhbsCFf0+/qrLtkQYS/Iy/h18eDmnKz55oc+FSaOoJ8GXoeS0+QcVYkIvy7 5RbBYzLg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6b-0000000Fr9E-13b9; Sat, 29 Jun 2024 04:54:33 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6G-0000000Fqyr-2oB1 for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:14 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-e032d4cf26aso2459778276.3 for ; Fri, 28 Jun 2024 21:54:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636850; x=1720241650; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=Fncuw7Z3XbzRLX/WU2elzeojCG7VDD1/GHjCfyd9rj4=; b=FGI5oSMps/OYQ7AYbLHnNK6x/2Axk2jiKEYdN/zrLFCCCMzT2FWP7LAJWEJcWwOozI Q7Yx0agDtBOX3dIK6SRqZeapI6/vc4vUU8dUDM8SwfHERb/DjAEFzvGfcHazvMZ6TAHJ E5p9KNVWAmjAjEL4jot7zBJJ3Wz0qCTsaWBqJYPrsdQygPQmoUTqxH/cofkSEJpCP7so feAKMUINDEORCn5E57/WiVspV8L58/QO2wPBR0o+dQE5fSacW/NPZ8mxMCyzVfOllYXg FxwedEhe8N3zqyGtMn0NpfI//xs8upeCgU7b2fJkNKGdzbK+b8f8RUXWpFMLYL4B9Bx+ ZoMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636850; x=1720241650; h=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=Fncuw7Z3XbzRLX/WU2elzeojCG7VDD1/GHjCfyd9rj4=; b=a87O0QFyEIRRYmSbYcuG6KkuuvHR4Lz6C7bJt/P8kWx8m7Ebf0V/fcN2QQgb788cvE VqBQ0eW9t9pnuYL0xpXV8T7DM2x24dQbbAByOVjSwjbhWL7Anexw09CZ2p1E4aRppp5e EN9EIpxlW8Ay4rSlKrnMZ0deNFYKASYk6XBc8YMDtnE3UAbtdF/ZRa9YdZfX+5rYxF63 4yT7kgrVRw2J2SXdftd7Mcflw4EyMLXWORssV1Hhwu4Ih4lWPAwiS+nSwb63CqfQbExd x6UtfLNcdnIU+gLD9IDKojS8tqOHdwLbM6nO+z/nZeSWEPVHEKInQWlcXMZMHGXCIPN/ Blqw== X-Forwarded-Encrypted: i=1; AJvYcCXTqqNrRkeg37VYlmjCx+GwhbymHgXjX6DU4qW7/la8KyQOnfsB0q3WqnkWKBe3i9hzNBVb+CvK/iaQJYfdvdJGF45j20MPuTdZhEt3Rfc2oxG9q1I= X-Gm-Message-State: AOJu0Yx8VmQm97CPoqjwx2TaukEtR0LVX/OT3ezvIoax2YmhQVm6hCfS Rhx7HwinSjwj0hzB/I5V/Ru0vS69mF9GcK9PX4Cn+jhJX5/KTgGpbX2klBU9atQSrSNPg3AaBNR dsw3R7A== X-Google-Smtp-Source: AGHT+IEvFm7w3visFsVmiS8TyXjnSiUqd0ooBxC87vSF9FgvC4Jnxnscz7Zxpyg4HeoWiYOpkSkaylwGbzMu X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:2b89:b0:dff:83e:b259 with SMTP id 3f1490d57ef6-e036eb4a8cemr991276.6.1719636850301; Fri, 28 Jun 2024 21:54:10 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:23 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-2-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 01/28] perf auxtrace: Remove dummy tools From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215412_749381_C2BA2181 X-CRM114-Status: GOOD ( 17.32 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add perf_session__deliver_synth_attr_event that synthesizes a perf_record_header_attr event with one id. Remove use of perf_event__synthesize_attr that necessitates the use of the dummy tool in order to pass the session. Signed-off-by: Ian Rogers --- tools/perf/util/arm-spe.c | 49 ++++++++----------------------------- tools/perf/util/cs-etm.c | 33 ++----------------------- tools/perf/util/intel-bts.c | 31 +---------------------- tools/perf/util/intel-pt.c | 24 +----------------- tools/perf/util/session.c | 30 +++++++++++++++++++++++ tools/perf/util/session.h | 3 +++ 6 files changed, 47 insertions(+), 123 deletions(-) diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c index afbd5869f6bf..fa40f3cb6266 100644 --- a/tools/perf/util/arm-spe.c +++ b/tools/perf/util/arm-spe.c @@ -1073,35 +1073,6 @@ static void arm_spe_print_info(__u64 *arr) fprintf(stdout, arm_spe_info_fmts[ARM_SPE_PMU_TYPE], arr[ARM_SPE_PMU_TYPE]); } -struct arm_spe_synth { - struct perf_tool dummy_tool; - struct perf_session *session; -}; - -static int arm_spe_event_synth(struct perf_tool *tool, - union perf_event *event, - struct perf_sample *sample __maybe_unused, - struct machine *machine __maybe_unused) -{ - struct arm_spe_synth *arm_spe_synth = - container_of(tool, struct arm_spe_synth, dummy_tool); - - return perf_session__deliver_synth_event(arm_spe_synth->session, - event, NULL); -} - -static int arm_spe_synth_event(struct perf_session *session, - struct perf_event_attr *attr, u64 id) -{ - struct arm_spe_synth arm_spe_synth; - - memset(&arm_spe_synth, 0, sizeof(struct arm_spe_synth)); - arm_spe_synth.session = session; - - return perf_event__synthesize_attr(&arm_spe_synth.dummy_tool, attr, 1, - &id, arm_spe_event_synth); -} - static void arm_spe_set_event_name(struct evlist *evlist, u64 id, const char *name) { @@ -1172,7 +1143,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) spe->sample_flc = true; /* Level 1 data cache miss */ - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->l1d_miss_id = id; @@ -1180,7 +1151,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) id += 1; /* Level 1 data cache access */ - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->l1d_access_id = id; @@ -1192,7 +1163,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) spe->sample_llc = true; /* Last level cache miss */ - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->llc_miss_id = id; @@ -1200,7 +1171,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) id += 1; /* Last level cache access */ - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->llc_access_id = id; @@ -1212,7 +1183,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) spe->sample_tlb = true; /* TLB miss */ - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->tlb_miss_id = id; @@ -1220,7 +1191,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) id += 1; /* TLB access */ - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->tlb_access_id = id; @@ -1232,7 +1203,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) spe->sample_branch = true; /* Branch miss */ - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->branch_miss_id = id; @@ -1244,7 +1215,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) spe->sample_remote_access = true; /* Remote access */ - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->remote_access_id = id; @@ -1255,7 +1226,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) if (spe->synth_opts.mem) { spe->sample_memory = true; - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->memory_id = id; @@ -1276,7 +1247,7 @@ arm_spe_synth_events(struct arm_spe *spe, struct perf_session *session) attr.config = PERF_COUNT_HW_INSTRUCTIONS; attr.sample_period = spe->synth_opts.period; spe->instructions_sample_period = attr.sample_period; - err = arm_spe_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; spe->instructions_id = id; diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c index 32818bd7cd17..c53812f343e9 100644 --- a/tools/perf/util/cs-etm.c +++ b/tools/perf/util/cs-etm.c @@ -1595,35 +1595,6 @@ static int cs_etm__synth_branch_sample(struct cs_etm_queue *etmq, return ret; } -struct cs_etm_synth { - struct perf_tool dummy_tool; - struct perf_session *session; -}; - -static int cs_etm__event_synth(struct perf_tool *tool, - union perf_event *event, - struct perf_sample *sample __maybe_unused, - struct machine *machine __maybe_unused) -{ - struct cs_etm_synth *cs_etm_synth = - container_of(tool, struct cs_etm_synth, dummy_tool); - - return perf_session__deliver_synth_event(cs_etm_synth->session, - event, NULL); -} - -static int cs_etm__synth_event(struct perf_session *session, - struct perf_event_attr *attr, u64 id) -{ - struct cs_etm_synth cs_etm_synth; - - memset(&cs_etm_synth, 0, sizeof(struct cs_etm_synth)); - cs_etm_synth.session = session; - - return perf_event__synthesize_attr(&cs_etm_synth.dummy_tool, attr, 1, - &id, cs_etm__event_synth); -} - static int cs_etm__synth_events(struct cs_etm_auxtrace *etm, struct perf_session *session) { @@ -1675,7 +1646,7 @@ static int cs_etm__synth_events(struct cs_etm_auxtrace *etm, attr.config = PERF_COUNT_HW_BRANCH_INSTRUCTIONS; attr.sample_period = 1; attr.sample_type |= PERF_SAMPLE_ADDR; - err = cs_etm__synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; etm->branches_sample_type = attr.sample_type; @@ -1698,7 +1669,7 @@ static int cs_etm__synth_events(struct cs_etm_auxtrace *etm, attr.config = PERF_COUNT_HW_INSTRUCTIONS; attr.sample_period = etm->synth_opts.period; etm->instructions_sample_period = attr.sample_period; - err = cs_etm__synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) return err; etm->instructions_sample_type = attr.sample_type; diff --git a/tools/perf/util/intel-bts.c b/tools/perf/util/intel-bts.c index ec1b3bd9f530..160d346cb450 100644 --- a/tools/perf/util/intel-bts.c +++ b/tools/perf/util/intel-bts.c @@ -737,35 +737,6 @@ static bool intel_bts_evsel_is_auxtrace(struct perf_session *session, return evsel->core.attr.type == bts->pmu_type; } -struct intel_bts_synth { - struct perf_tool dummy_tool; - struct perf_session *session; -}; - -static int intel_bts_event_synth(struct perf_tool *tool, - union perf_event *event, - struct perf_sample *sample __maybe_unused, - struct machine *machine __maybe_unused) -{ - struct intel_bts_synth *intel_bts_synth = - container_of(tool, struct intel_bts_synth, dummy_tool); - - return perf_session__deliver_synth_event(intel_bts_synth->session, - event, NULL); -} - -static int intel_bts_synth_event(struct perf_session *session, - struct perf_event_attr *attr, u64 id) -{ - struct intel_bts_synth intel_bts_synth; - - memset(&intel_bts_synth, 0, sizeof(struct intel_bts_synth)); - intel_bts_synth.session = session; - - return perf_event__synthesize_attr(&intel_bts_synth.dummy_tool, attr, 1, - &id, intel_bts_event_synth); -} - static int intel_bts_synth_events(struct intel_bts *bts, struct perf_session *session) { @@ -814,7 +785,7 @@ static int intel_bts_synth_events(struct intel_bts *bts, attr.sample_type |= PERF_SAMPLE_ADDR; pr_debug("Synthesizing 'branches' event with id %" PRIu64 " sample type %#" PRIx64 "\n", id, (u64)attr.sample_type); - err = intel_bts_synth_event(session, &attr, id); + err = perf_session__deliver_synth_attr_event(session, &attr, id); if (err) { pr_err("%s: failed to synthesize 'branches' event type\n", __func__); diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c index d6d7b7512505..1fc03bfd14c3 100644 --- a/tools/perf/util/intel-pt.c +++ b/tools/perf/util/intel-pt.c @@ -3659,37 +3659,15 @@ static int intel_pt_queue_data(struct perf_session *session, data_offset, timestamp); } -struct intel_pt_synth { - struct perf_tool dummy_tool; - struct perf_session *session; -}; - -static int intel_pt_event_synth(struct perf_tool *tool, - union perf_event *event, - struct perf_sample *sample __maybe_unused, - struct machine *machine __maybe_unused) -{ - struct intel_pt_synth *intel_pt_synth = - container_of(tool, struct intel_pt_synth, dummy_tool); - - return perf_session__deliver_synth_event(intel_pt_synth->session, event, - NULL); -} - static int intel_pt_synth_event(struct perf_session *session, const char *name, struct perf_event_attr *attr, u64 id) { - struct intel_pt_synth intel_pt_synth; int err; pr_debug("Synthesizing '%s' event with id %" PRIu64 " sample type %#" PRIx64 "\n", name, id, (u64)attr->sample_type); - memset(&intel_pt_synth, 0, sizeof(struct intel_pt_synth)); - intel_pt_synth.session = session; - - err = perf_event__synthesize_attr(&intel_pt_synth.dummy_tool, attr, 1, - &id, intel_pt_event_synth); + err = perf_session__deliver_synth_attr_event(session, attr, id); if (err) pr_err("%s: failed to synthesize '%s' event type\n", __func__, name); diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 0ec92d47373c..44db5b49128f 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -1764,6 +1764,36 @@ int perf_session__deliver_synth_event(struct perf_session *session, return machines__deliver_event(&session->machines, evlist, event, sample, tool, 0, NULL); } +int perf_session__deliver_synth_attr_event(struct perf_session *session, + const struct perf_event_attr *attr, + u64 id) +{ + union { + struct { + struct perf_record_header_attr attr; + u64 ids[1]; + } attr_id; + union perf_event ev; + } ev = { + .attr_id = { + .attr = { + .header = { + .type = PERF_RECORD_HEADER_ATTR, + .size = PERF_ALIGN(sizeof(struct perf_event_attr), + sizeof(u64)) + + sizeof(struct perf_event_header) + + sizeof(u64), + }, + }, + .ids = { id, } + }, + }; + + memcpy(&ev.attr_id.attr.attr, attr, min((u32)sizeof(struct perf_event_attr), attr->size)); + ev.attr_id.attr.attr.size = sizeof(struct perf_event_attr); + return perf_session__deliver_synth_event(session, &ev.ev, NULL); +} + static void event_swap(union perf_event *event, bool sample_id_all) { perf_event__swap_op swap; diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index 4c29dc86956f..cc28976bb00e 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h @@ -154,6 +154,9 @@ extern volatile int session_done; int perf_session__deliver_synth_event(struct perf_session *session, union perf_event *event, struct perf_sample *sample); +int perf_session__deliver_synth_attr_event(struct perf_session *session, + const struct perf_event_attr *attr, + u64 id); int perf_session__dsos_hit_all(struct perf_session *session); From patchwork Sat Jun 29 04:53:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716787 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B4194C30653 for ; Sat, 29 Jun 2024 04:54:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=2Py2DKOjmjxOtoOnuVu083IR5IZMLkEQbnPoATbWiYI=; b=BYp1P9EuCyWVhgkaMV6muwER0B qNCONjWw7hnzwwyDmdZ6YpQM3leSEK6FYUA2v9mg9sQvuU7vLKBj00oOURChVSn8SFmD/03u11tKT FGrcduKj9CPBST5sszK1kmaHHO6uW6HrQzQMlDtPhI2hOWBcIEK+zK+chcixce5hfyS1PPuewWBSN feZTXujLP3RLSxkjqWQNh2VW/zfGQy2qJAl9N0rvHt4Jgj7lp1GhbcKSBvsSzilsabT4M97b9peBH 9AOh7h0zT3lin13L9xGk6WgukrG4Fc17DbeSb23DxX6R5/gxW2n8OsXoAnah+dVmvWOZIS3fQhmTD VIp9ElMA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6q-0000000FrKb-2wkS; Sat, 29 Jun 2024 04:54:48 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6H-0000000Fqza-3GbO for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:15 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-e0364085c67so1038271276.0 for ; Fri, 28 Jun 2024 21:54:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636852; x=1720241652; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=2Py2DKOjmjxOtoOnuVu083IR5IZMLkEQbnPoATbWiYI=; b=Pa3eWHm0Y9vpqRAFc57SHKrds0N1VO4pUCh/zrmWd8KNsxDtkhvFFK3RN1DOj13TjR Arb5blH53qWF6cYiQ16x0c6AWJ2lKG4YacRMgjbVRwCd+R/83YWG0bpIhqs6Xb2x9ott ElsiiaHQxQfM8Vk7dgZISrP0D5dKftMTbKm3xFqNc+pt88YSPWK3p1m1NiOBQkYlOnnA XoFXCJZOq1//HKEUlua//m90wgLUIKqNeuD7eyaS9dnlIYbvfbYSwtCYOgJq+HZblxi1 s2VI4YFQVKdhum2R8AsGZiNPpYZcI2xrVNc+8wj1oZ8E9KSNKbF8+8uV6WTp9zTGuoDf E7EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636852; x=1720241652; h=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=2Py2DKOjmjxOtoOnuVu083IR5IZMLkEQbnPoATbWiYI=; b=SYEcke52bwzorgpoJdG0TsHO1On8MY0xrMj8tULdP3nk96DU4BiWd5lsdoxGaV13h7 dUyTwg9y7qeiqSDevpx7Iu+bLIRau2rAzLIFGccEgkBgL1fGiodAei7BM6ekHBD9Gw+a KrIPW1lpdaO2eQ3vbU8TlsrYU7IO1b8r80P30Zj3QDZ38G+z86F0Xuu7vSsvOAes+UV5 ONhR2QMZsqNElKt+Bz2lU7J4Oz9wIS2CslZRy1XN9z+ACqcENt9aAjQZCTdgDRrKd6EU sVI0yFc5zbTHoCGx2oVBCpNRdPUw7enQHxR+XsG9fhPD3Y3ATdP+8lbdypkC3gBk7Iy+ 4U0Q== X-Forwarded-Encrypted: i=1; AJvYcCVfBNhPhGi++qapXTQGtyNvdTnqbV3j826ZwXwinKvEQl7xiAuwxAKE4+85kxfXqo5NGnIH1mByb9ryZJFMB0JlLY4fqJd/miKoVmxjKQ3jl4i+ERA= X-Gm-Message-State: AOJu0YwSbD0G8wMTRwz/DWW4jcu/K72W/qI7wXzElLJZubPrB4AiAKJO 8daE9a1C0yRwITaUNNOJFIuDLbrWtX2S2aV3rrhMTnROVc+dxZwYG0IML00oHfd8pMnlTUDyYuN zACrfVw== X-Google-Smtp-Source: AGHT+IH2+W3iClgJSmJE2byX19nmxCZcdn3WNsd1JolO2htIsab6d+nKnVHk5sfOXGj6K2Gy8Ju4VzejR8iq X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a25:2684:0:b0:e03:61bb:6032 with SMTP id 3f1490d57ef6-e0361bb6162mr42020276.1.1719636852532; Fri, 28 Jun 2024 21:54:12 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:24 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-3-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 02/28] perf s390-cpumsf: Remove unused struct From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215413_855006_8DA860C9 X-CRM114-Status: GOOD ( 10.58 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org struct s390_cpumsf_synth was likely cargo culted from other auxtrace examples. It has no users, so remove. Signed-off-by: Ian Rogers --- tools/perf/util/s390-cpumsf.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tools/perf/util/s390-cpumsf.c b/tools/perf/util/s390-cpumsf.c index 6fe478b0b61b..4ec583e511af 100644 --- a/tools/perf/util/s390-cpumsf.c +++ b/tools/perf/util/s390-cpumsf.c @@ -952,11 +952,6 @@ s390_cpumsf_process_event(struct perf_session *session, return err; } -struct s390_cpumsf_synth { - struct perf_tool cpumsf_tool; - struct perf_session *session; -}; - static int s390_cpumsf_process_auxtrace_event(struct perf_session *session, union perf_event *event __maybe_unused, From patchwork Sat Jun 29 04:53:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716788 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0C55CC27C4F for ; Sat, 29 Jun 2024 04:55:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=f+WpsI3yIr9mN4RMcQsfbBJbpJrC2f0IEM8v/SsuTU8=; b=nxFg+agL1OSETtMwgiMNevOn3J PEss8w0jILRJpRRma8HunFTkLt3+J4waJZxxxKJ0g1/SGIA4LUcihZ2p/m1LR1lW6jURhdzUpqVBl JnYmJblHZPMOOcvYzS8uD8oNuAl81nOkk1uZfyy08My81mBNcVIEFAcBiT245QFG1ApSxI/IwPHhU swPh5ndv25joZfUKw2tOYq8T/KmmRptqyacvVoCOvYf7X1r+FU0qEpsLGxQDSfoF8sBJeRKjUFS4c d8tfzN7UeK/DWskEH63h8OqRT0d06lY8Z6CEQpyZaOcfy5n3OZwmZFQkOUk3q70Ha1MeCb0ixo6kd imVcjzSg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ73-0000000FrUw-0lCD; Sat, 29 Jun 2024 04:55:01 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6K-0000000Fr0O-2nsN for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:18 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-e035f7b5976so1789599276.0 for ; Fri, 28 Jun 2024 21:54:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636855; x=1720241655; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=f+WpsI3yIr9mN4RMcQsfbBJbpJrC2f0IEM8v/SsuTU8=; b=YTRcztfHxhFRWVEk5mCGbW4LlwK9qxUiBWdcIy+pKT900dM9S8rE6qzqkzoONxoaBN HSxWDx8wbRyptidHOulRRgK/2hSq8t0H6DAYh7uBtMKPS7yo1Mj6PUQw6mwrjnuci0bK jfzmADr8Yz0LbVZq/yh4eXlpQ8yctAWMaLtBQzp3I6PDP9KyQ/9zMbMcTKMfPgBb1r8O jfH++ChnbFVrjsA+sb1fBf5Qualquk9yWXRmPdm/V/btV6BB2/rDYhJomUvGS7FiZTwh wNZbmlTmn5dVQKssD8nRsO/k5+fLqYcEYDiVHaZv6nLTp/xw3Nj20yTI1v7Vpae+McT8 ztaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636855; x=1720241655; h=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=f+WpsI3yIr9mN4RMcQsfbBJbpJrC2f0IEM8v/SsuTU8=; b=SFX2SbUrUPh2/NuJ28HO7BlbXT+yfgJn/TQJ1RzMzxJbpDWiYjR+dZ2qRhF9cvvTO9 zQ6Sx592kaWYXa533gMQPzerVILJuS2DyxHd2YGp/mD49+hV1qjg1m6i5URJFGtAf8+0 x2MHvNqKnj/Ss1m2dQ3Ibw7tmGOr62wBnmw6nsm9AeLxVjFaczLpE/hUIRADXXRIFnoQ z2MwPhiL1XO+/LSxfSOo2t0DaQ+A3w8qbnBM2L6ibAitjYB2CGYC/11K/JUfP3jkkx5A zL58el712em9FPPpH9JP5CBHPG6hv2ltgkjj5M+EgL8RORy+xa2dyNcEiO6Yxhh6OErU ZUSQ== X-Forwarded-Encrypted: i=1; AJvYcCXrQQ8MKQiT1ibUhWXFzgG5T4KdbJHyIkA2LVQOu9ahnU+jut5t35rscxpU5bTLg+fl9kqXpUgtAZ5KZrx6An2sMzMIJZiw0iDcmlPB6LK2v5hnWbs= X-Gm-Message-State: AOJu0YwSJpzMRCumPOawnNu1UL9EOu9tJkCfft62aov/sdeYYuhmNBrH cDniDI834rA+gk3S3cUwCE+OmA67kFiDcjEYrDyYTKSo9bq0B18uOfT+nhlACPRXwf7An2MRxXz ZpdH4Gw== X-Google-Smtp-Source: AGHT+IGMi/lHrEFtm0Z40jfIFCI9s35ScBy5zlFP4QYSWWuLbXB3dXTlsTE45QCbr4hFKjzKSU0BaZaSc2PA X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:102f:b0:dfa:ff27:db9 with SMTP id 3f1490d57ef6-e036e0b506bmr33645276.5.1719636854757; Fri, 28 Jun 2024 21:54:14 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:25 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-4-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 03/28] perf cs-etm: Fix address sanitizer dso build failure From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215416_759555_D13A7CFE X-CRM114-Status: GOOD ( 15.63 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org cs-etm.c had been missed from having accessor functions added for the sake of reference count checking. Add the function calls and missing dso accessor functions. Fixes: ee756ef7491e ("perf dso: Add reference count checking and accessor functions") Signed-off-by: Ian Rogers --- tools/perf/util/cs-etm.c | 10 +++++----- tools/perf/util/dso.h | 10 ++++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c index c53812f343e9..7fd976ea954b 100644 --- a/tools/perf/util/cs-etm.c +++ b/tools/perf/util/cs-etm.c @@ -1013,7 +1013,7 @@ static u32 cs_etm__mem_access(struct cs_etm_queue *etmq, u8 trace_chan_id, if (!dso) goto out; - if (dso->data.status == DSO_DATA_STATUS_ERROR && + if (dso__data(dso)->status == DSO_DATA_STATUS_ERROR && dso__data_status_seen(dso, DSO_DATA_STATUS_SEEN_ITRACE)) goto out; @@ -1027,11 +1027,11 @@ static u32 cs_etm__mem_access(struct cs_etm_queue *etmq, u8 trace_chan_id, if (len <= 0) { ui__warning_once("CS ETM Trace: Missing DSO. Use 'perf archive' or debuginfod to export data from the traced system.\n" " Enable CONFIG_PROC_KCORE or use option '-k /path/to/vmlinux' for kernel symbols.\n"); - if (!dso->auxtrace_warned) { + if (!dso__auxtrace_warned(dso)) { pr_err("CS ETM Trace: Debug data not found for address %#"PRIx64" in %s\n", - address, - dso->long_name ? dso->long_name : "Unknown"); - dso->auxtrace_warned = true; + address, + dso__long_name(dso) ? dso__long_name(dso) : "Unknown"); + dso__set_auxtrace_warned(dso); } goto out; } diff --git a/tools/perf/util/dso.h b/tools/perf/util/dso.h index d72f3b8c37f6..878c1f441868 100644 --- a/tools/perf/util/dso.h +++ b/tools/perf/util/dso.h @@ -280,6 +280,16 @@ static inline void dso__set_annotate_warned(struct dso *dso) RC_CHK_ACCESS(dso)->annotate_warned = 1; } +static inline bool dso__auxtrace_warned(const struct dso *dso) +{ + return RC_CHK_ACCESS(dso)->auxtrace_warned; +} + +static inline void dso__set_auxtrace_warned(struct dso *dso) +{ + RC_CHK_ACCESS(dso)->auxtrace_warned = 1; +} + static inline struct auxtrace_cache *dso__auxtrace_cache(struct dso *dso) { return RC_CHK_ACCESS(dso)->auxtrace_cache; From patchwork Sat Jun 29 04:53:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716802 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DDE0EC30653 for ; Sat, 29 Jun 2024 04:58:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=L/Uq1ugeey8IPFAcxccVAkdoc81+HV8TSXuCHRT3q60=; b=nQDYlMH7BHxVgPYFK4AzR+74JC Kz748rR9SV9CRJkw1Xg+7hu6mU977Dkr5gYQarzmv2FfBE1CFVlXAyHaEODyHXisTmOA6b0MGDl0w G4UwIKkSuNKYoYjv5zXv/xUjrjxABYtB3RP3jUwiXTVwZJl4j74PX1iMIBse3VheK9QkNDuUoeBTe KVek9VhRc3YFOk0AaCbelieXMxMszHJ/hGcmWYtQo/GmSbG18rxUoKHFWyPbrZqiUhXtz1M6HH5ku lQOa+UgTmoTENXlZUuyR+4b1WkevLuUxobBXDXrr3Soi4aGGxRsDGQjsgNu0i+cYFs2Yb8WvPPCxe NW06lvZw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ9i-0000000Fsqj-35ks; Sat, 29 Jun 2024 04:57:46 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6O-0000000Fr1e-3JI4 for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:26 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-64ad9545c5cso22723147b3.1 for ; Fri, 28 Jun 2024 21:54:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636859; x=1720241659; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=L/Uq1ugeey8IPFAcxccVAkdoc81+HV8TSXuCHRT3q60=; b=RHB73hbMCbW/iA0eXmhKLf2ushs+RBEZp2LXNJ+DZH8GvOos15hvyI3CmIW5gR48LO xHSunWFkwwE62q3ZWmB7OEyfk28id2WOoGNJrmW3zH/XcBgOePQDjtaI3E7ol1XKjRhn k4HHFu6/a40Osgs2OFC/SsK8o0b7lbbL0hVqloJhka1hcnYtxFkwM9QZjB2rFlCta1w9 vCi+2lPX8MZ0tUggASLGjZAXGL3MyQwU7fIFOjaFEu5Su5z1fvyil7CW7bc1TQOhON54 2/BeuVY76drjZdiDqjVjmi30aScb0MQcn8FZVluRrtvsuDKbEIc9JpE9owm5q8y6JVx8 azvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636859; x=1720241659; h=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=L/Uq1ugeey8IPFAcxccVAkdoc81+HV8TSXuCHRT3q60=; b=DN5XQvx21SkoW+8qU06adVnz2lXRp/FdMmvwjGMS9lxQ9ZfzwPk2GDYeh+7BHGDHn1 MACNr/aJloJtu3kPfIniTGaO4SNrPMw0UgI9iEdJHQhHaR80ZlN5yToHo6GYvYTCZD1D JFwV7pZCNOHN2PQtybc+5/KREjgcNHUzbm5SCACTumJj50xByLBj9x/V6cS5riKLq8HR n3K3sQTXXYuHVcZvGB5MEf2QTEptpBn/2M5HVA6Cd+b8jBYWpOs2edbwV6/QsnQBb048 1JRCSASidkMRCCMoV0JPFaK45d6JNzkg3pXnnqlOz6C/XTfB9hx2nfv32dWpITQXyzyz jcug== X-Forwarded-Encrypted: i=1; AJvYcCUZOpr3sm7MfFAO/+oOXpV5o1Kvy3UGOzmHpMUFK+dRxiIhwPx8IkpqIbY8sZLYAok3rjMS0oaYYiB3D6vSb5a/HRHpvxGrjlp7LPrmzBy67cHqCEA= X-Gm-Message-State: AOJu0YxcOzDYEsuttlgPj0N47Y2oEUWg9hZmGpQ+VGueeUej1zQwHcTF NSiYhc0ObgqrT/HmuYQ25ALDI+af6SiRJEJbN/b+1hy7hlZ3lQQh15bFEBy24H09sBIx4su4lYZ gcT9pbw== X-Google-Smtp-Source: AGHT+IEIm+zKb1qBNqFj7eqXAvEaXwfpLAQB4n3Pq2+E8+bRahxthj321mrJxu5LQ7YZLMaRJxggelbe3RQ2 X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a0d:e84a:0:b0:61b:791a:9850 with SMTP id 00721157ae682-64c779b65d1mr106347b3.9.1719636859517; Fri, 28 Jun 2024 21:54:19 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:27 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-6-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 05/28] perf tool: Move fill defaults into tool.c From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215420_962960_A486C2B9 X-CRM114-Status: GOOD ( 19.90 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The aim here is to eventually make perf_tool__fill_defaults an init function so that the tools struct is more const. Create a tool.c to go along with tool.h. Move perf_tool__fill_defaults out of session.c into tool.c along with the default stub values. Add perf_tool__compressed_is_stub for a test in perf_session__process_user_event. perf_session__process_compressed_event is only used from being default initialized so migrate into tool.c. Signed-off-by: Ian Rogers --- tools/perf/util/Build | 1 + tools/perf/util/session.c | 310 +----------------------------------- tools/perf/util/session.h | 2 - tools/perf/util/tool.c | 325 ++++++++++++++++++++++++++++++++++++++ tools/perf/util/tool.h | 4 + 5 files changed, 331 insertions(+), 311 deletions(-) create mode 100644 tools/perf/util/tool.c diff --git a/tools/perf/util/Build b/tools/perf/util/Build index 0f18fe81ef0b..f3633342374a 100644 --- a/tools/perf/util/Build +++ b/tools/perf/util/Build @@ -65,6 +65,7 @@ perf-util-y += map.o perf-util-y += maps.o perf-util-y += pstack.o perf-util-y += session.o +perf-util-y += tool.o perf-util-y += sample-raw.o perf-util-y += s390-sample-raw.o perf-util-y += amd-sample-raw.o diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index a8dd79ec3a50..1490d33eab2b 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -38,68 +38,6 @@ #include "units.h" #include -#ifdef HAVE_ZSTD_SUPPORT -static int perf_session__process_compressed_event(struct perf_session *session, - union perf_event *event, u64 file_offset, - const char *file_path) -{ - void *src; - size_t decomp_size, src_size; - u64 decomp_last_rem = 0; - size_t mmap_len, decomp_len = session->header.env.comp_mmap_len; - struct decomp *decomp, *decomp_last = session->active_decomp->decomp_last; - - if (decomp_last) { - decomp_last_rem = decomp_last->size - decomp_last->head; - decomp_len += decomp_last_rem; - } - - mmap_len = sizeof(struct decomp) + decomp_len; - decomp = mmap(NULL, mmap_len, PROT_READ|PROT_WRITE, - MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); - if (decomp == MAP_FAILED) { - pr_err("Couldn't allocate memory for decompression\n"); - return -1; - } - - decomp->file_pos = file_offset; - decomp->file_path = file_path; - decomp->mmap_len = mmap_len; - decomp->head = 0; - - if (decomp_last_rem) { - memcpy(decomp->data, &(decomp_last->data[decomp_last->head]), decomp_last_rem); - decomp->size = decomp_last_rem; - } - - src = (void *)event + sizeof(struct perf_record_compressed); - src_size = event->pack.header.size - sizeof(struct perf_record_compressed); - - decomp_size = zstd_decompress_stream(session->active_decomp->zstd_decomp, src, src_size, - &(decomp->data[decomp_last_rem]), decomp_len - decomp_last_rem); - if (!decomp_size) { - munmap(decomp, mmap_len); - pr_err("Couldn't decompress data\n"); - return -1; - } - - decomp->size += decomp_size; - - if (session->active_decomp->decomp == NULL) - session->active_decomp->decomp = decomp; - else - session->active_decomp->decomp_last->next = decomp; - - session->active_decomp->decomp_last = decomp; - - pr_debug("decomp (B): %zd to %zd\n", src_size, decomp_size); - - return 0; -} -#else /* !HAVE_ZSTD_SUPPORT */ -#define perf_session__process_compressed_event perf_session__process_compressed_event_stub -#endif - static int perf_session__deliver_event(struct perf_session *session, union perf_event *event, const struct perf_tool *tool, @@ -319,251 +257,6 @@ void perf_session__delete(struct perf_session *session) free(session); } -static int process_event_synth_tracing_data_stub(struct perf_session *session - __maybe_unused, - union perf_event *event - __maybe_unused) -{ - dump_printf(": unhandled!\n"); - return 0; -} - -static int process_event_synth_attr_stub(const struct perf_tool *tool __maybe_unused, - union perf_event *event __maybe_unused, - struct evlist **pevlist - __maybe_unused) -{ - dump_printf(": unhandled!\n"); - return 0; -} - -static int process_event_synth_event_update_stub(const struct perf_tool *tool __maybe_unused, - union perf_event *event __maybe_unused, - struct evlist **pevlist - __maybe_unused) -{ - if (dump_trace) - perf_event__fprintf_event_update(event, stdout); - - dump_printf(": unhandled!\n"); - return 0; -} - -static int process_event_sample_stub(const struct perf_tool *tool __maybe_unused, - union perf_event *event __maybe_unused, - struct perf_sample *sample __maybe_unused, - struct evsel *evsel __maybe_unused, - struct machine *machine __maybe_unused) -{ - dump_printf(": unhandled!\n"); - return 0; -} - -static int process_event_stub(const struct perf_tool *tool __maybe_unused, - union perf_event *event __maybe_unused, - struct perf_sample *sample __maybe_unused, - struct machine *machine __maybe_unused) -{ - dump_printf(": unhandled!\n"); - return 0; -} - -static int process_finished_round_stub(const struct perf_tool *tool __maybe_unused, - union perf_event *event __maybe_unused, - struct ordered_events *oe __maybe_unused) -{ - dump_printf(": unhandled!\n"); - return 0; -} - -static int skipn(int fd, off_t n) -{ - char buf[4096]; - ssize_t ret; - - while (n > 0) { - ret = read(fd, buf, min(n, (off_t)sizeof(buf))); - if (ret <= 0) - return ret; - n -= ret; - } - - return 0; -} - -static s64 process_event_auxtrace_stub(struct perf_session *session __maybe_unused, - union perf_event *event) -{ - dump_printf(": unhandled!\n"); - if (perf_data__is_pipe(session->data)) - skipn(perf_data__fd(session->data), event->auxtrace.size); - return event->auxtrace.size; -} - -static int process_event_op2_stub(struct perf_session *session __maybe_unused, - union perf_event *event __maybe_unused) -{ - dump_printf(": unhandled!\n"); - return 0; -} - - -static -int process_event_thread_map_stub(struct perf_session *session __maybe_unused, - union perf_event *event __maybe_unused) -{ - if (dump_trace) - perf_event__fprintf_thread_map(event, stdout); - - dump_printf(": unhandled!\n"); - return 0; -} - -static -int process_event_cpu_map_stub(struct perf_session *session __maybe_unused, - union perf_event *event __maybe_unused) -{ - if (dump_trace) - perf_event__fprintf_cpu_map(event, stdout); - - dump_printf(": unhandled!\n"); - return 0; -} - -static -int process_event_stat_config_stub(struct perf_session *session __maybe_unused, - union perf_event *event __maybe_unused) -{ - if (dump_trace) - perf_event__fprintf_stat_config(event, stdout); - - dump_printf(": unhandled!\n"); - return 0; -} - -static int process_stat_stub(struct perf_session *perf_session __maybe_unused, - union perf_event *event) -{ - if (dump_trace) - perf_event__fprintf_stat(event, stdout); - - dump_printf(": unhandled!\n"); - return 0; -} - -static int process_stat_round_stub(struct perf_session *perf_session __maybe_unused, - union perf_event *event) -{ - if (dump_trace) - perf_event__fprintf_stat_round(event, stdout); - - dump_printf(": unhandled!\n"); - return 0; -} - -static int process_event_time_conv_stub(struct perf_session *perf_session __maybe_unused, - union perf_event *event) -{ - if (dump_trace) - perf_event__fprintf_time_conv(event, stdout); - - dump_printf(": unhandled!\n"); - return 0; -} - -static int perf_session__process_compressed_event_stub(struct perf_session *session __maybe_unused, - union perf_event *event __maybe_unused, - u64 file_offset __maybe_unused, - const char *file_path __maybe_unused) -{ - dump_printf(": unhandled!\n"); - return 0; -} - -void perf_tool__fill_defaults(struct perf_tool *tool) -{ - if (tool->sample == NULL) - tool->sample = process_event_sample_stub; - if (tool->mmap == NULL) - tool->mmap = process_event_stub; - if (tool->mmap2 == NULL) - tool->mmap2 = process_event_stub; - if (tool->comm == NULL) - tool->comm = process_event_stub; - if (tool->namespaces == NULL) - tool->namespaces = process_event_stub; - if (tool->cgroup == NULL) - tool->cgroup = process_event_stub; - if (tool->fork == NULL) - tool->fork = process_event_stub; - if (tool->exit == NULL) - tool->exit = process_event_stub; - if (tool->lost == NULL) - tool->lost = perf_event__process_lost; - if (tool->lost_samples == NULL) - tool->lost_samples = perf_event__process_lost_samples; - if (tool->aux == NULL) - tool->aux = perf_event__process_aux; - if (tool->itrace_start == NULL) - tool->itrace_start = perf_event__process_itrace_start; - if (tool->context_switch == NULL) - tool->context_switch = perf_event__process_switch; - if (tool->ksymbol == NULL) - tool->ksymbol = perf_event__process_ksymbol; - if (tool->bpf == NULL) - tool->bpf = perf_event__process_bpf; - if (tool->text_poke == NULL) - tool->text_poke = perf_event__process_text_poke; - if (tool->aux_output_hw_id == NULL) - tool->aux_output_hw_id = perf_event__process_aux_output_hw_id; - if (tool->read == NULL) - tool->read = process_event_sample_stub; - if (tool->throttle == NULL) - tool->throttle = process_event_stub; - if (tool->unthrottle == NULL) - tool->unthrottle = process_event_stub; - if (tool->attr == NULL) - tool->attr = process_event_synth_attr_stub; - if (tool->event_update == NULL) - tool->event_update = process_event_synth_event_update_stub; - if (tool->tracing_data == NULL) - tool->tracing_data = process_event_synth_tracing_data_stub; - if (tool->build_id == NULL) - tool->build_id = process_event_op2_stub; - if (tool->finished_round == NULL) { - if (tool->ordered_events) - tool->finished_round = perf_event__process_finished_round; - else - tool->finished_round = process_finished_round_stub; - } - if (tool->id_index == NULL) - tool->id_index = process_event_op2_stub; - if (tool->auxtrace_info == NULL) - tool->auxtrace_info = process_event_op2_stub; - if (tool->auxtrace == NULL) - tool->auxtrace = process_event_auxtrace_stub; - if (tool->auxtrace_error == NULL) - tool->auxtrace_error = process_event_op2_stub; - if (tool->thread_map == NULL) - tool->thread_map = process_event_thread_map_stub; - if (tool->cpu_map == NULL) - tool->cpu_map = process_event_cpu_map_stub; - if (tool->stat_config == NULL) - tool->stat_config = process_event_stat_config_stub; - if (tool->stat == NULL) - tool->stat = process_stat_stub; - if (tool->stat_round == NULL) - tool->stat_round = process_stat_round_stub; - if (tool->time_conv == NULL) - tool->time_conv = process_event_time_conv_stub; - if (tool->feature == NULL) - tool->feature = process_event_op2_stub; - if (tool->compressed == NULL) - tool->compressed = perf_session__process_compressed_event; - if (tool->finished_init == NULL) - tool->finished_init = process_event_op2_stub; -} - static void swap_sample_id_all(union perf_event *event, void *data) { void *end = (void *) event + event->header.size; @@ -1672,8 +1365,7 @@ static s64 perf_session__process_user_event(struct perf_session *session, int fd = perf_data__fd(session->data); int err; - if (event->header.type != PERF_RECORD_COMPRESSED || - tool->compressed == perf_session__process_compressed_event_stub) + if (event->header.type != PERF_RECORD_COMPRESSED || perf_tool__compressed_is_stub(tool)) dump_event(session->evlist, event, file_offset, &sample, file_path); /* These events are processed right away */ diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index 6886cc85600f..7f69baeae7fb 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h @@ -92,8 +92,6 @@ int perf_session__process_events(struct perf_session *session); int perf_session__queue_event(struct perf_session *s, union perf_event *event, u64 timestamp, u64 file_offset, const char *file_path); -void perf_tool__fill_defaults(struct perf_tool *tool); - int perf_session__resolve_callchain(struct perf_session *session, struct evsel *evsel, struct thread *thread, diff --git a/tools/perf/util/tool.c b/tools/perf/util/tool.c new file mode 100644 index 000000000000..17219ecb8fa6 --- /dev/null +++ b/tools/perf/util/tool.c @@ -0,0 +1,325 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "data.h" +#include "debug.h" +#include "header.h" +#include "session.h" +#include "stat.h" +#include "tool.h" +#include "tsc.h" +#include +#include + +#ifdef HAVE_ZSTD_SUPPORT +static int perf_session__process_compressed_event(struct perf_session *session, + union perf_event *event, u64 file_offset, + const char *file_path) +{ + void *src; + size_t decomp_size, src_size; + u64 decomp_last_rem = 0; + size_t mmap_len, decomp_len = session->header.env.comp_mmap_len; + struct decomp *decomp, *decomp_last = session->active_decomp->decomp_last; + + if (decomp_last) { + decomp_last_rem = decomp_last->size - decomp_last->head; + decomp_len += decomp_last_rem; + } + + mmap_len = sizeof(struct decomp) + decomp_len; + decomp = mmap(NULL, mmap_len, PROT_READ|PROT_WRITE, + MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); + if (decomp == MAP_FAILED) { + pr_err("Couldn't allocate memory for decompression\n"); + return -1; + } + + decomp->file_pos = file_offset; + decomp->file_path = file_path; + decomp->mmap_len = mmap_len; + decomp->head = 0; + + if (decomp_last_rem) { + memcpy(decomp->data, &(decomp_last->data[decomp_last->head]), decomp_last_rem); + decomp->size = decomp_last_rem; + } + + src = (void *)event + sizeof(struct perf_record_compressed); + src_size = event->pack.header.size - sizeof(struct perf_record_compressed); + + decomp_size = zstd_decompress_stream(session->active_decomp->zstd_decomp, src, src_size, + &(decomp->data[decomp_last_rem]), decomp_len - decomp_last_rem); + if (!decomp_size) { + munmap(decomp, mmap_len); + pr_err("Couldn't decompress data\n"); + return -1; + } + + decomp->size += decomp_size; + + if (session->active_decomp->decomp == NULL) + session->active_decomp->decomp = decomp; + else + session->active_decomp->decomp_last->next = decomp; + + session->active_decomp->decomp_last = decomp; + + pr_debug("decomp (B): %zd to %zd\n", src_size, decomp_size); + + return 0; +} +#endif + +static int process_event_synth_tracing_data_stub(struct perf_session *session + __maybe_unused, + union perf_event *event + __maybe_unused) +{ + dump_printf(": unhandled!\n"); + return 0; +} + +static int process_event_synth_attr_stub(const struct perf_tool *tool __maybe_unused, + union perf_event *event __maybe_unused, + struct evlist **pevlist + __maybe_unused) +{ + dump_printf(": unhandled!\n"); + return 0; +} + +static int process_event_synth_event_update_stub(const struct perf_tool *tool __maybe_unused, + union perf_event *event __maybe_unused, + struct evlist **pevlist + __maybe_unused) +{ + if (dump_trace) + perf_event__fprintf_event_update(event, stdout); + + dump_printf(": unhandled!\n"); + return 0; +} + +static int process_event_sample_stub(const struct perf_tool *tool __maybe_unused, + union perf_event *event __maybe_unused, + struct perf_sample *sample __maybe_unused, + struct evsel *evsel __maybe_unused, + struct machine *machine __maybe_unused) +{ + dump_printf(": unhandled!\n"); + return 0; +} + +static int process_event_stub(const struct perf_tool *tool __maybe_unused, + union perf_event *event __maybe_unused, + struct perf_sample *sample __maybe_unused, + struct machine *machine __maybe_unused) +{ + dump_printf(": unhandled!\n"); + return 0; +} + +static int process_finished_round_stub(const struct perf_tool *tool __maybe_unused, + union perf_event *event __maybe_unused, + struct ordered_events *oe __maybe_unused) +{ + dump_printf(": unhandled!\n"); + return 0; +} + +static int skipn(int fd, off_t n) +{ + char buf[4096]; + ssize_t ret; + + while (n > 0) { + ret = read(fd, buf, min(n, (off_t)sizeof(buf))); + if (ret <= 0) + return ret; + n -= ret; + } + + return 0; +} + +static s64 process_event_auxtrace_stub(struct perf_session *session __maybe_unused, + union perf_event *event) +{ + dump_printf(": unhandled!\n"); + if (perf_data__is_pipe(session->data)) + skipn(perf_data__fd(session->data), event->auxtrace.size); + return event->auxtrace.size; +} + +static int process_event_op2_stub(struct perf_session *session __maybe_unused, + union perf_event *event __maybe_unused) +{ + dump_printf(": unhandled!\n"); + return 0; +} + + +static +int process_event_thread_map_stub(struct perf_session *session __maybe_unused, + union perf_event *event __maybe_unused) +{ + if (dump_trace) + perf_event__fprintf_thread_map(event, stdout); + + dump_printf(": unhandled!\n"); + return 0; +} + +static +int process_event_cpu_map_stub(struct perf_session *session __maybe_unused, + union perf_event *event __maybe_unused) +{ + if (dump_trace) + perf_event__fprintf_cpu_map(event, stdout); + + dump_printf(": unhandled!\n"); + return 0; +} + +static +int process_event_stat_config_stub(struct perf_session *session __maybe_unused, + union perf_event *event __maybe_unused) +{ + if (dump_trace) + perf_event__fprintf_stat_config(event, stdout); + + dump_printf(": unhandled!\n"); + return 0; +} + +static int process_stat_stub(struct perf_session *perf_session __maybe_unused, + union perf_event *event) +{ + if (dump_trace) + perf_event__fprintf_stat(event, stdout); + + dump_printf(": unhandled!\n"); + return 0; +} + +static int process_stat_round_stub(struct perf_session *perf_session __maybe_unused, + union perf_event *event) +{ + if (dump_trace) + perf_event__fprintf_stat_round(event, stdout); + + dump_printf(": unhandled!\n"); + return 0; +} + +static int process_event_time_conv_stub(struct perf_session *perf_session __maybe_unused, + union perf_event *event) +{ + if (dump_trace) + perf_event__fprintf_time_conv(event, stdout); + + dump_printf(": unhandled!\n"); + return 0; +} + +static int perf_session__process_compressed_event_stub(struct perf_session *session __maybe_unused, + union perf_event *event __maybe_unused, + u64 file_offset __maybe_unused, + const char *file_path __maybe_unused) +{ + dump_printf(": unhandled!\n"); + return 0; +} + +void perf_tool__fill_defaults(struct perf_tool *tool) +{ + if (tool->sample == NULL) + tool->sample = process_event_sample_stub; + if (tool->mmap == NULL) + tool->mmap = process_event_stub; + if (tool->mmap2 == NULL) + tool->mmap2 = process_event_stub; + if (tool->comm == NULL) + tool->comm = process_event_stub; + if (tool->namespaces == NULL) + tool->namespaces = process_event_stub; + if (tool->cgroup == NULL) + tool->cgroup = process_event_stub; + if (tool->fork == NULL) + tool->fork = process_event_stub; + if (tool->exit == NULL) + tool->exit = process_event_stub; + if (tool->lost == NULL) + tool->lost = perf_event__process_lost; + if (tool->lost_samples == NULL) + tool->lost_samples = perf_event__process_lost_samples; + if (tool->aux == NULL) + tool->aux = perf_event__process_aux; + if (tool->itrace_start == NULL) + tool->itrace_start = perf_event__process_itrace_start; + if (tool->context_switch == NULL) + tool->context_switch = perf_event__process_switch; + if (tool->ksymbol == NULL) + tool->ksymbol = perf_event__process_ksymbol; + if (tool->bpf == NULL) + tool->bpf = perf_event__process_bpf; + if (tool->text_poke == NULL) + tool->text_poke = perf_event__process_text_poke; + if (tool->aux_output_hw_id == NULL) + tool->aux_output_hw_id = perf_event__process_aux_output_hw_id; + if (tool->read == NULL) + tool->read = process_event_sample_stub; + if (tool->throttle == NULL) + tool->throttle = process_event_stub; + if (tool->unthrottle == NULL) + tool->unthrottle = process_event_stub; + if (tool->attr == NULL) + tool->attr = process_event_synth_attr_stub; + if (tool->event_update == NULL) + tool->event_update = process_event_synth_event_update_stub; + if (tool->tracing_data == NULL) + tool->tracing_data = process_event_synth_tracing_data_stub; + if (tool->build_id == NULL) + tool->build_id = process_event_op2_stub; + if (tool->finished_round == NULL) { + if (tool->ordered_events) + tool->finished_round = perf_event__process_finished_round; + else + tool->finished_round = process_finished_round_stub; + } + if (tool->id_index == NULL) + tool->id_index = process_event_op2_stub; + if (tool->auxtrace_info == NULL) + tool->auxtrace_info = process_event_op2_stub; + if (tool->auxtrace == NULL) + tool->auxtrace = process_event_auxtrace_stub; + if (tool->auxtrace_error == NULL) + tool->auxtrace_error = process_event_op2_stub; + if (tool->thread_map == NULL) + tool->thread_map = process_event_thread_map_stub; + if (tool->cpu_map == NULL) + tool->cpu_map = process_event_cpu_map_stub; + if (tool->stat_config == NULL) + tool->stat_config = process_event_stat_config_stub; + if (tool->stat == NULL) + tool->stat = process_stat_stub; + if (tool->stat_round == NULL) + tool->stat_round = process_stat_round_stub; + if (tool->time_conv == NULL) + tool->time_conv = process_event_time_conv_stub; + if (tool->feature == NULL) + tool->feature = process_event_op2_stub; + if (tool->compressed == NULL) { +#ifdef HAVE_ZSTD_SUPPORT + tool->compressed = perf_session__process_compressed_event; +#else + tool->compressed = perf_session__process_compressed_event_stub; +#endif + } + if (tool->finished_init == NULL) + tool->finished_init = process_event_op2_stub; +} + +bool perf_tool__compressed_is_stub(const struct perf_tool *tool) +{ + return tool->compressed == perf_session__process_compressed_event_stub; +} diff --git a/tools/perf/util/tool.h b/tools/perf/util/tool.h index b192d44fe91f..7913b698033a 100644 --- a/tools/perf/util/tool.h +++ b/tools/perf/util/tool.h @@ -88,4 +88,8 @@ struct perf_tool { enum show_feature_header show_feat_hdr; }; +void perf_tool__fill_defaults(struct perf_tool *tool); + +bool perf_tool__compressed_is_stub(const struct perf_tool *tool); + #endif /* __PERF_TOOL_H */ From patchwork Sat Jun 29 04:53:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716789 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 235B8C27C4F for ; Sat, 29 Jun 2024 04:55:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=CejvhujW7C9lvSf9k2pOiVuZZrM/i60EXGBcHN6m0Cc=; b=pvK44tSzintprAUyll5nR72fYI PQm/PHqqV8RZAi3Ogvo/5AEad9r81qpcA5iN9OVg9yI4HOn9UyI5XtgXRH6AWsVkMgp07egdxVNsg ueVQyRQt+KRi621WOF66/T3UyO3yQkvtN/TIK2VwWFGxl+3EYWAv3jx053bq3k1suX7NBXiPBx+VV JPKqC6axlXyCt4AD0NbzZRN5YDzUMjnU4hr1iG7KZphu3j6oZ/xjnTz6SrN/t4kypva3WKe2Lge9n qRA8Vj31hct7YHrHlLqCci14GrEc7wt2/8YemkSzEsXl37NvFBioronWIjtmtW53UbTr/wHYZqG5Q b1b8B7qw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ7E-0000000Frep-1hO6; Sat, 29 Jun 2024 04:55:12 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6Q-0000000Fr2K-377h for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:25 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-e0342b6f7fbso2291205276.0 for ; Fri, 28 Jun 2024 21:54:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636861; x=1720241661; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=CejvhujW7C9lvSf9k2pOiVuZZrM/i60EXGBcHN6m0Cc=; b=T9BFILdcK5StF0bRjpwcaOas2cw1N5AJ8GkX/aCya/rilA8n1BpNBj6S8vOC5hSu+g AeKvRWDV04F/EesJ9jhPX4anakBD9+D4jwqOdyLdDbN4iVkuHomNbWxrv9Rfe7kbvb9I Ibux2DzWrure+6dCT31EyXrzCmy+1/t+lC1EFw1wY8xxpjA7isABp0mxu1Kf/8Kzd2bQ Xkri+m45ExtmiCV1luZxPtVHNNrCC9mGnLTs4Q43usicxa3Py+qI2zuAORgsdHfDE0t4 TkEZtIB8/VnvyQv64ImlGczCDZQPltEE1/naOfpfakNgYKN1yhgDDExfQRxcyBttzO7B GaUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636861; x=1720241661; h=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=CejvhujW7C9lvSf9k2pOiVuZZrM/i60EXGBcHN6m0Cc=; b=ak8FYbxuKvlo1HGDpbSyEpk/38W7UxSvo+6LpYJJmGEQ0CyoOfRwt3s6kCdjknY/Uw 7xuaMYW/nrHY+Lu5zZWmtTodBHWeEN/bKI7+u9lOwKaQ9R1gZZr8SkOeKSdjgNy7M2Wq QJTHPtdJjUbxIpSFvatb1tHCHx4p10ZqkU317Vdzw05KZnxX9Oj6CYlXokz+rtSaG5aR HNapWDySjpnsu2EDjwFXw0Tro32DLjTx9N/ar7G2PRlNEhbGUcYt53LkSHo/5bylp+01 Ym00RukdoEVWfgv35dAHWd/e8Yn7ffGgmof9YxfwriErO5BXMaM1VQia6ofv+fs36Eyl kEFA== X-Forwarded-Encrypted: i=1; AJvYcCWb8jKYl+hb4RvVIrKqp93irulosAtajolq5jkMVC/rHkIoI5nM+FIJ5YlU2P0Da6YEZgxZkDdQ/O+lMcq6xAJOGHw1v1fG13Cj2qpMmPLYF6gCvCU= X-Gm-Message-State: AOJu0Yx6L9XuSVzh3Q8TnaycZnZvpQbe4eWU3Z5xebjn5V61JMmlb9LY TZ3TBpzWpQmYo9hGYUeANUxOLRK+ZJzhhb1nillKMwqYxXlipZX+2s0OcsdGUYMFCdhYoOUeowk 4S7q5+Q== X-Google-Smtp-Source: AGHT+IEOvw4w9NS1cMkcImD2gpgtf1Iy0EUMyJNe5I5vzZJccqIfuhxbCu35w2qKJnpQaukQHj4sXjsts0BH X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:298e:b0:e03:54e2:4ca2 with SMTP id 3f1490d57ef6-e036eb1b316mr617276.4.1719636861355; Fri, 28 Jun 2024 21:54:21 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:28 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-7-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 06/28] perf tool: Add perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215422_955615_442F8C4F X-CRM114-Status: GOOD ( 12.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add init function that behaves like perf_tool__fill_defaults but assumes all values haven't been initialized. Signed-off-by: Ian Rogers --- tools/perf/util/tool.c | 58 ++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/tool.h | 1 + 2 files changed, 59 insertions(+) diff --git a/tools/perf/util/tool.c b/tools/perf/util/tool.c index 17219ecb8fa6..cbd9b888bd73 100644 --- a/tools/perf/util/tool.c +++ b/tools/perf/util/tool.c @@ -230,6 +230,64 @@ static int perf_session__process_compressed_event_stub(struct perf_session *sess return 0; } +void perf_tool__init(struct perf_tool *tool, bool ordered_events) +{ + tool->ordered_events = ordered_events; + tool->ordering_requires_timestamps = false; + tool->namespace_events = false; + tool->cgroup_events = false; + tool->no_warn = false; + tool->show_feat_hdr = SHOW_FEAT_NO_HEADER; + + tool->sample = process_event_sample_stub; + tool->mmap = process_event_stub; + tool->mmap2 = process_event_stub; + tool->comm = process_event_stub; + tool->namespaces = process_event_stub; + tool->cgroup = process_event_stub; + tool->fork = process_event_stub; + tool->exit = process_event_stub; + tool->lost = perf_event__process_lost; + tool->lost_samples = perf_event__process_lost_samples; + tool->aux = perf_event__process_aux; + tool->itrace_start = perf_event__process_itrace_start; + tool->context_switch = perf_event__process_switch; + tool->ksymbol = perf_event__process_ksymbol; + tool->bpf = perf_event__process_bpf; + tool->text_poke = perf_event__process_text_poke; + tool->aux_output_hw_id = perf_event__process_aux_output_hw_id; + tool->read = process_event_sample_stub; + tool->throttle = process_event_stub; + tool->unthrottle = process_event_stub; + tool->attr = process_event_synth_attr_stub; + tool->event_update = process_event_synth_event_update_stub; + tool->tracing_data = process_event_synth_tracing_data_stub; + tool->build_id = process_event_op2_stub; + + if (ordered_events) + tool->finished_round = perf_event__process_finished_round; + else + tool->finished_round = process_finished_round_stub; + + tool->id_index = process_event_op2_stub; + tool->auxtrace_info = process_event_op2_stub; + tool->auxtrace = process_event_auxtrace_stub; + tool->auxtrace_error = process_event_op2_stub; + tool->thread_map = process_event_thread_map_stub; + tool->cpu_map = process_event_cpu_map_stub; + tool->stat_config = process_event_stat_config_stub; + tool->stat = process_stat_stub; + tool->stat_round = process_stat_round_stub; + tool->time_conv = process_event_time_conv_stub; + tool->feature = process_event_op2_stub; +#ifdef HAVE_ZSTD_SUPPORT + tool->compressed = perf_session__process_compressed_event; +#else + tool->compressed = perf_session__process_compressed_event_stub; +#endif + tool->finished_init = process_event_op2_stub; +} + void perf_tool__fill_defaults(struct perf_tool *tool) { if (tool->sample == NULL) diff --git a/tools/perf/util/tool.h b/tools/perf/util/tool.h index 7913b698033a..897c6c44b6b2 100644 --- a/tools/perf/util/tool.h +++ b/tools/perf/util/tool.h @@ -88,6 +88,7 @@ struct perf_tool { enum show_feature_header show_feat_hdr; }; +void perf_tool__init(struct perf_tool *tool, bool ordered_events); void perf_tool__fill_defaults(struct perf_tool *tool); bool perf_tool__compressed_is_stub(const struct perf_tool *tool); From patchwork Sat Jun 29 04:53:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716803 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 01A1BC27C4F for ; Sat, 29 Jun 2024 04:58:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=/qFahSvtYCgkWsqqCp3yfdkhC2VqGdDus+43H+4umnY=; b=wA9h2OM/DYiafOvXZPZyqeDkjU sGaygABWa4TYp3Uwka/4iX4ntY7yG+fqUSn5C1IjAaalUoW71RAKVRJw+pbFObHQGZIzKXVHlRXfS hh9Sl4HxOuBpUGewrLhIqUQYXAuBSSM+Wpa/TOYUNtcwo0aGNGW5qdcbEEZxs335nZIMy66FjeMOz NyDgQA5M2Im+1QUmcM5DPpPL6Qpq9sVV74Wb8HdaUQwHjmNrOYNun4/J1kSEeJnV3qsaL3djlbiB8 KsVgR3pv27lAOdsjcJd1UMjj+3Nx8asXAORY/VqBdnvdVtygDuuEDrTLz3ATwYL1C2zajrUgNkQVL SLOW6iCQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ9q-0000000Fsvd-3sQq; Sat, 29 Jun 2024 04:57:54 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6T-0000000Fr40-1o0O for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:30 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-dfab38b7f6bso2194020276.0 for ; Fri, 28 Jun 2024 21:54:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636864; x=1720241664; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=/qFahSvtYCgkWsqqCp3yfdkhC2VqGdDus+43H+4umnY=; b=iWGVHKAgWs4h8ZshY/XI/adgGQR4u7Qv54GGmYOK93AZuusmQlS98N6zu5259wYpZN 33G07VV0gtushJQW1rRf9ye5ktrurW7xFimWxq2HTtPB8eVU9t7Ygu/w5892F/qqHioP 1YYd1qJIzSZDY/x37Wz2joGN4xbIsV16f2Et+OguPvqxAlpkfeQ174m25f2QFNxsyfjk LDanzAdrGrPt/CMRrg+N3MIqF/wM2B6GK7oexyqQeHUIaPyvxlLBiKnz1FyuuSbug8nK 5bugje6lHy99WGLn5LRwWthH97dARdM/B3eQbV9J1O6hW6k1J3uXtKQR/WNBOxiXjDE3 A5wA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636864; x=1720241664; h=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=/qFahSvtYCgkWsqqCp3yfdkhC2VqGdDus+43H+4umnY=; b=pQ1D5ZCZgc7FpL/A3R2mAcVsc28HEEC0ORpySUKS+mzvQiPFc2AT0aIrjTo6abTBdf CJFFP1joMeCZR6CnnoBaTMzR49x8uLL/uyfYAbhIpXr10rSdl2Obn6k7O8IAFacwsgdt tiKqPvkifGdAB4re6PEzZUgaRE/oZYo61erbb9TXxfcaQRzrn12ewdvmHQs6BUTXI8Zz P9108GPpUXpZUJNDTdPi3triKdulhU8UL5jCTn/nNufyb55kFLWLeD45kUHoZQg6Drso MqsHZHM0uKPN2h/PH0b3mNDIjIRGUcCF2ZDZFGH94I5xnuru6P/CFbtqIsP9IOVd0Y12 KQkA== X-Forwarded-Encrypted: i=1; AJvYcCVA0qRZlc9fp9Ig42cNVpWxa7BFBsfo3sWT+lMgVeqAE+ihY4VLSiK5RBxFp/oZJRAt1esxsDkBmJcYji2Qv69jw5Ydrnfwi9FKlTFAjrN27FxzlpI= X-Gm-Message-State: AOJu0YwLTZIWxN8fljPKffi2k7eW6dhaNeCY0dRAItp3XccMl17TTG3D aQ399IoozX88ofmI0pxMUfaacmP1BlWUU6dnoDrW9EB6QDscub+jfHcosE49vZnMPreWYJSTRET +Qwb9pg== X-Google-Smtp-Source: AGHT+IGyYt+Ug4wKE7CF+0lD3txU6miVuOCyb94wJamUB8cYnxGDHnmXcKWlP4cbadWy9xXjx9f2PM3zPXp9 X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:2b89:b0:dff:83e:b259 with SMTP id 3f1490d57ef6-e036eb4a8cemr995276.6.1719636863723; Fri, 28 Jun 2024 21:54:23 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:29 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-8-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 07/28] perf kmem: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215425_635512_C86610A5 X-CRM114-Status: GOOD ( 15.03 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Reduce the scope of the tool from global/static to just that of the cmd_kmem function where the session is scoped. Use the perf_tool__init to initialize default values. Signed-off-by: Ian Rogers --- tools/perf/builtin-kmem.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c index 859ff018eace..b3cbac40b8c7 100644 --- a/tools/perf/builtin-kmem.c +++ b/tools/perf/builtin-kmem.c @@ -986,15 +986,6 @@ static int process_sample_event(const struct perf_tool *tool __maybe_unused, return err; } -static struct perf_tool perf_kmem = { - .sample = process_sample_event, - .comm = perf_event__process_comm, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .namespaces = perf_event__process_namespaces, - .ordered_events = true, -}; - static double fragmentation(unsigned long n_req, unsigned long n_alloc) { if (n_alloc == 0) @@ -1971,6 +1962,7 @@ int cmd_kmem(int argc, const char **argv) NULL }; struct perf_session *session; + struct perf_tool perf_kmem; static const char errmsg[] = "No %s allocation events found. Have you run 'perf kmem record --%s'?\n"; int ret = perf_config(kmem_config, NULL); @@ -1998,6 +1990,13 @@ int cmd_kmem(int argc, const char **argv) data.path = input_name; + perf_tool__init(&perf_kmem, /*ordered_events=*/true); + perf_kmem.sample = process_sample_event; + perf_kmem.comm = perf_event__process_comm; + perf_kmem.mmap = perf_event__process_mmap; + perf_kmem.mmap2 = perf_event__process_mmap2; + perf_kmem.namespaces = perf_event__process_namespaces; + kmem_session = session = perf_session__new(&data, &perf_kmem); if (IS_ERR(session)) return PTR_ERR(session); From patchwork Sat Jun 29 04:53:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716804 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BEB16C30653 for ; Sat, 29 Jun 2024 04:58:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3Bg3AnvRWACuWqwdpuLSJz+3WOzd8GeuCZa5ozPjEnQ=; b=KrT9BSA1dHe4ECPEYQdoIpqq6n 4DEr4GkID5NKx4tfXtnQCD4hX6Dt/HXYKvStkcl/AEXwxpsoFOZjVgNHBn8TzojqaZEs3ULUP3qgQ I6bRdD3RqhC8LkEnhVQ4rUchV6zCsRT3NmYWdLq6659jLofYuAD99pZDMM2aREqt+ecodFHrgceov VsxteLepDf3JFoRdtej0dWckxxGG7RQ7UXBkNWYAgrXx8YT8ohSq4etXW1Ad9Fjp6Yl3yN1xrIhtl ui0X3tlNTFcO+0aagmDnmT6lfsHPU6yZtYM82yP/Apv4fsdO9mxHHovZ4UA2tprDyc0gv95mZAZGO +ZyHK0gg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ9z-0000000Ft0A-0p9e; Sat, 29 Jun 2024 04:58:03 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6V-0000000Fr5j-2J3I for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:31 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-632588b1bdeso27924407b3.2 for ; Fri, 28 Jun 2024 21:54:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636866; x=1720241666; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=3Bg3AnvRWACuWqwdpuLSJz+3WOzd8GeuCZa5ozPjEnQ=; b=y1OeGvtDe4JN6ZMvXz4evWjLildhiTPUQz3ld2IVaIktcBrWhmD4MFpxrbMVbwJ97C E9MYsnZIIlgHvtPVeZlvjO5T1I9TrbmpRkN0mTFueUBNoGtCGkwo9FExDI+wP4lM4lkX qmcnkmLJUbEiOZPFsSAQ9TEpgNXmjms03XfnBzpxv78dE74cN2gFcQZ9k1Y6QA0Tl+AO R8/AE13h5PXFwGewwlf8Rxh9PoUlLevjmnvgyJc437tJ9461SyLhYSWzl6TFlAo2C4sh NzV6WgBomW5F0c8XILrubrUDDEQpfoQnOlHs4/wRWaS1S+/N29JzC+x4/Hr8CYVF6u26 j9bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636866; x=1720241666; h=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=3Bg3AnvRWACuWqwdpuLSJz+3WOzd8GeuCZa5ozPjEnQ=; b=JwmzxcRtPprVZvZ8Zr9MtgdX8rxPnC8PIGMvT+Qmc+QIpAXHKOqZnKCP3dLG64sTZK qgN/xmljjUpbX9O4Akd9qSH/jzTzB3rJBsIaSuDY3C1Pem66uLA7l3/8RpfpO53xlbhu tcQTPY8/NpVQxJkk2CS2Oh+pKULt6XwOPS8gUwVk9qVIcrmAx0cHgHqBBkn8p/Eov7RV cuQDvnY7dgLPWcKEXi6oqacYPLubz+w+y0yDAK0YyxBSpxydRCK5+sSbdB0OFr05HAh4 7pt3ONEQ8C4lniiEzoKYO3DniLbKAS8WqKEg2/cMCH43lv+hr+zjYFMwM4f7i12tLy72 G6/g== X-Forwarded-Encrypted: i=1; AJvYcCVSztbFqIG9GZv5TntGssrq5VrDkk3gx8cSVkAmcorM8BWF1aELZn4oa8AJvxSWsTiw6te15RqXjMJ13mE3qJlgPB2ivsTlecbg9/Ua24VtV/xGtSk= X-Gm-Message-State: AOJu0YwVP+yEhNe4i5Ns75iF2Mu4mCIVhb7NL4ke7ue4fevEEhHyCinr iSadPWC9Vxk7mUbh+/lX5UkhVUSN/iuQFfjy2nvqIGomE7ava9ZUVU6tUYezUFmRyzNk4TdIfDs As/IHow== X-Google-Smtp-Source: AGHT+IEpmxDjZHuM7pSCE3l5lp7ZRN7g4VRVvwxmdXGjCGhbdEOXJD28FVtcHuNeWYTlibaDL55SqrD0psw4 X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a25:db51:0:b0:dff:1070:84b7 with SMTP id 3f1490d57ef6-e036eb0e2a2mr435276.5.1719636866147; Fri, 28 Jun 2024 21:54:26 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:30 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-9-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 08/28] perf buildid-list: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215427_712440_EA60957D X-CRM114-Status: GOOD ( 17.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Reduce scope of build_id__mark_dso_hit_ops to the scope of function perf_session__list_build_ids, its only use, and use perf_tool__init for the default values. Move perf_event__exit_del_thread to event.[ch] so it can be used in builtin-buildid-list.c. Signed-off-by: Ian Rogers --- tools/perf/builtin-buildid-list.c | 10 ++++++++++ tools/perf/util/build-id.c | 32 ------------------------------- tools/perf/util/build-id.h | 4 +--- tools/perf/util/event.c | 20 +++++++++++++++++++ tools/perf/util/event.h | 4 ++++ 5 files changed, 35 insertions(+), 35 deletions(-) diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c index 383d5de36ce4..52dfacaff8e3 100644 --- a/tools/perf/builtin-buildid-list.c +++ b/tools/perf/builtin-buildid-list.c @@ -89,6 +89,7 @@ static int perf_session__list_build_ids(bool force, bool with_hits) .mode = PERF_DATA_MODE_READ, .force = force, }; + struct perf_tool build_id__mark_dso_hit_ops; symbol__elf_init(); /* @@ -97,6 +98,15 @@ static int perf_session__list_build_ids(bool force, bool with_hits) if (filename__fprintf_build_id(input_name, stdout) > 0) goto out; + perf_tool__init(&build_id__mark_dso_hit_ops, /*ordered_events=*/true); + build_id__mark_dso_hit_ops.sample = build_id__mark_dso_hit; + build_id__mark_dso_hit_ops.mmap = perf_event__process_mmap; + build_id__mark_dso_hit_ops.mmap2 = perf_event__process_mmap2; + build_id__mark_dso_hit_ops.fork = perf_event__process_fork; + build_id__mark_dso_hit_ops.exit = perf_event__exit_del_thread; + build_id__mark_dso_hit_ops.attr = perf_event__process_attr; + build_id__mark_dso_hit_ops.build_id = perf_event__process_build_id; + session = perf_session__new(&data, &build_id__mark_dso_hit_ops); if (IS_ERR(session)) return PTR_ERR(session); diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c index 098fcc625d91..451d145fa4ed 100644 --- a/tools/perf/util/build-id.c +++ b/tools/perf/util/build-id.c @@ -67,38 +67,6 @@ int build_id__mark_dso_hit(const struct perf_tool *tool __maybe_unused, return 0; } -static int perf_event__exit_del_thread(const struct perf_tool *tool __maybe_unused, - union perf_event *event, - struct perf_sample *sample - __maybe_unused, - struct machine *machine) -{ - struct thread *thread = machine__findnew_thread(machine, - event->fork.pid, - event->fork.tid); - - dump_printf("(%d:%d):(%d:%d)\n", event->fork.pid, event->fork.tid, - event->fork.ppid, event->fork.ptid); - - if (thread) { - machine__remove_thread(machine, thread); - thread__put(thread); - } - - return 0; -} - -struct perf_tool build_id__mark_dso_hit_ops = { - .sample = build_id__mark_dso_hit, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .fork = perf_event__process_fork, - .exit = perf_event__exit_del_thread, - .attr = perf_event__process_attr, - .build_id = perf_event__process_build_id, - .ordered_events = true, -}; - int build_id__sprintf(const struct build_id *build_id, char *bf) { char *bid = bf; diff --git a/tools/perf/util/build-id.h b/tools/perf/util/build-id.h index ae87c4c58d5b..a212497bfdb0 100644 --- a/tools/perf/util/build-id.h +++ b/tools/perf/util/build-id.h @@ -16,11 +16,9 @@ struct build_id { size_t size; }; -struct nsinfo; - -extern struct perf_tool build_id__mark_dso_hit_ops; struct dso; struct feat_fd; +struct nsinfo; void build_id__init(struct build_id *bid, const u8 *data, size_t size); int build_id__sprintf(const struct build_id *build_id, char *bf); diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index c2f0e7f40ad5..aac96d5d1917 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c @@ -426,6 +426,26 @@ int perf_event__process_exit(const struct perf_tool *tool __maybe_unused, return machine__process_exit_event(machine, event, sample); } +int perf_event__exit_del_thread(const struct perf_tool *tool __maybe_unused, + union perf_event *event, + struct perf_sample *sample __maybe_unused, + struct machine *machine) +{ + struct thread *thread = machine__findnew_thread(machine, + event->fork.pid, + event->fork.tid); + + dump_printf("(%d:%d):(%d:%d)\n", event->fork.pid, event->fork.tid, + event->fork.ppid, event->fork.ptid); + + if (thread) { + machine__remove_thread(machine, thread); + thread__put(thread); + } + + return 0; +} + size_t perf_event__fprintf_aux(union perf_event *event, FILE *fp) { return fprintf(fp, " offset: %#"PRI_lx64" size: %#"PRI_lx64" flags: %#"PRI_lx64" [%s%s%s]\n", diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h index 4b24f1c580fd..f8742e6230a5 100644 --- a/tools/perf/util/event.h +++ b/tools/perf/util/event.h @@ -319,6 +319,10 @@ int perf_event__process_exit(const struct perf_tool *tool, union perf_event *event, struct perf_sample *sample, struct machine *machine); +int perf_event__exit_del_thread(const struct perf_tool *tool, + union perf_event *event, + struct perf_sample *sample, + struct machine *machine); int perf_event__process_ksymbol(const struct perf_tool *tool, union perf_event *event, struct perf_sample *sample, From patchwork Sat Jun 29 04:53:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716805 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 294BCC27C4F for ; Sat, 29 Jun 2024 04:58:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=rpdjN8s5wB9rzl2Ip7o2ZK0FxU3Lu7ldCcmvQXtJM2M=; b=jfrzKD2I/CJTfZ4cvesb70z8R2 jKMDdPrlrhYkPwYDUrXPPw8HSJUDbF1gQzTrFJ8cKbOhdbqDbRQ3qBbP6BS2dXSCydU8rcPpG9SbS Pqwdh+YxuDHol7WfzN2ua+dAktoDKxITp02HWca3o/f9/OUFldp115driffOdmt37bve41jtAZcJN pWf+gQTk0zUekPAEgbv2d9MVppKg6sq0owp4GE/6vc3TO4PROvL84lJI9pHOFwSZNgegwXH+6KXQu Kz5cRmB0KqSAI9iFAh9FJwht/WF+uA6N4FdVUW4Z/bZDyqL5YIkysc1TWaSgxg/pkVAP9Z3mG+qiM mBUWEPiA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQA6-0000000Ft3O-0ugK; Sat, 29 Jun 2024 04:58:10 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6X-0000000Fr6t-2ZvA for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:32 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-632588b1bdeso27924717b3.2 for ; Fri, 28 Jun 2024 21:54:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636868; x=1720241668; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=rpdjN8s5wB9rzl2Ip7o2ZK0FxU3Lu7ldCcmvQXtJM2M=; b=VC9QVP0iz/rFYnD0OC/RFv1+g/4s+tiO8Y1uObg0h7oAcNGjgvQAjWg0wJP2lJTYmp EU/DUCslTOfy/I2/yqGEGDx4WIKClgLcRKPZkqG2iG0Q9BvyPDR7TvSEmA4Evv8vjjO5 tiXB/g0RnyHg7/fn56P/Uw1K/ZNtfMOa87dYAO6bcTJppDs4/flZyFYNJuAZE1vXXJ8J cEZZ5KXYNSIEfSAcy6rPJlvcAy9tlUUKioc/Zsb2v68UXK02eeN0NWrT5SsRCxKAXPVS 3nP0t9ERZCKYV20JddZnVnM+ngUNxXWwYnC2WVXajpXuCU3Od2suOu26pV1N84E+q50A IDWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636868; x=1720241668; h=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=rpdjN8s5wB9rzl2Ip7o2ZK0FxU3Lu7ldCcmvQXtJM2M=; b=p9SYMlw4cml6V+XRvjvX3XmzyE9tZcPf90i5cFs8CMqgZCe4d8hJtT+LhkDvSvEFrq J0inc5W3/BeoNrdKT58ijNtDiblZ2B5i3fcbGJyeRqkBCB3rzwQfuBaZRcBU14R3zN3X jItBgrtJ7hCz/hYkdMYuzLs58X/bI6tA7gOoSXzBn+1CJ6BqZYgunsu6Jyem08aSg4BU E2eQc80ufND7lkdt3khFbaViegin2Z+VIQa9K4dOrJN7HTJm213rje+nCe/ZCaBOT890 dBTMsiRhGBg9rlmbusG6WYwh0ZjNaWT1AC7CAI3ix7xlgvtqoQj9/4iMBJMPSYeXYSgx WbaA== X-Forwarded-Encrypted: i=1; AJvYcCVysP8Nls4JQAu4JhlCp/U240kYTnc1KI0SvmdSCpGnyRk52hNi+MahfM8RWXhy2U1R8i0/goKFlegzvfZfK3bKrkkorE0PFBDBV8SeI41rQDDGDdY= X-Gm-Message-State: AOJu0YxV2Y9qAWNgzbYwf/lE54fnwsdhU1elBady+LJlfd+gzQmYawru ml6gh1I3OjgZIq0yPUxk6rBf8bHBCWA0s5AEjySy+xxz8w0ZSbDSPhtNkBavsl1FgBqUMwcBXOp Jtr8sFg== X-Google-Smtp-Source: AGHT+IGOKM+g4XrnJTUAvGw3TmUrRS3o4+KVzhyYtt6vHOujwVUTKi9JPoVkhRp1pYVkidwItBHibGKxyLKg X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a0d:ea54:0:b0:62a:4932:68de with SMTP id 00721157ae682-64c7360704dmr34117b3.8.1719636868301; Fri, 28 Jun 2024 21:54:28 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:31 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-10-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 09/28] perf kvm: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215429_821771_43D47965 X-CRM114-Status: GOOD ( 13.16 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-kvm.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index a3b903cf4311..692267b1b7e8 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -1603,19 +1603,17 @@ static int read_events(struct perf_kvm_stat *kvm) { int ret; - struct perf_tool eops = { - .sample = process_sample_event, - .comm = perf_event__process_comm, - .namespaces = perf_event__process_namespaces, - .ordered_events = true, - }; struct perf_data file = { .path = kvm->file_name, .mode = PERF_DATA_MODE_READ, .force = kvm->force, }; - kvm->tool = eops; + perf_tool__init(&kvm->tool, /*ordered_events=*/true); + kvm->tool.sample = process_sample_event; + kvm->tool.comm = perf_event__process_comm; + kvm->tool.namespaces = perf_event__process_namespaces; + kvm->session = perf_session__new(&file, &kvm->tool); if (IS_ERR(kvm->session)) { pr_err("Initializing perf session failed\n"); @@ -1919,14 +1917,13 @@ static int kvm_events_live(struct perf_kvm_stat *kvm, /* event handling */ + perf_tool__init(&kvm->tool, /*ordered_events=*/true); kvm->tool.sample = process_sample_event; kvm->tool.comm = perf_event__process_comm; kvm->tool.exit = perf_event__process_exit; kvm->tool.fork = perf_event__process_fork; kvm->tool.lost = process_lost_event; kvm->tool.namespaces = perf_event__process_namespaces; - kvm->tool.ordered_events = true; - perf_tool__fill_defaults(&kvm->tool); /* set defaults */ kvm->display_time = 1; From patchwork Sat Jun 29 04:53:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716790 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D0A14C27C4F for ; Sat, 29 Jun 2024 04:56:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=SJsf6c3nLHtNKwj8s9NHyYgKgE50TTB53CM1nmVFjJs=; b=tSLtMwYdGr9jkgug0QaBYIsce+ FGDrhCxxgXNHrX8/iljL+gZPUv/sB/RZVLa895xXt1LmhdRjvwV4MWCTfvLZDb1z4lln2i8BvBFI+ oA7qzhLQ6Yamb/u8gVbkkUGFnf/SV2MbTb6V/p0y7LxrZZ8qElPXlkp29rLQrNsgIkl51Nm9e0vF1 8shAhEl6GZAgzcl1bZ6rZMPG9M/xsxTmPCHYj64PRjorQ+LwNbyzMFQow1D+k5ksMoc8R3ZTY3gc8 g8lHwMkgUq7wtPA6S+8G8xal6NasWzl4E8EMciABnzoA6NsnRzKgqLSg+b7uJTLytMtHx0TCHjRRw YYKh2IlQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ86-0000000Frzb-26z4; Sat, 29 Jun 2024 04:56:06 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6Z-0000000Fr84-2VoT for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:33 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-e036440617fso1827434276.1 for ; Fri, 28 Jun 2024 21:54:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636870; x=1720241670; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=SJsf6c3nLHtNKwj8s9NHyYgKgE50TTB53CM1nmVFjJs=; b=ZRDa63oIbPsxY+s6Y+LgwKXD/KacflpHU3HeMVOSJ9uyJMVBjl1uk1NQzC/u25qh20 /5rF16sEIE6CXSve3metAPH4Bd6DlEEayIzqiZ1VJxG9xwn/OyjCsz35H6MYg1WLXY/6 X02mknopty8fpS8AHk6CzF/0Hzfy7GB8GQUui8sDP7dsvda8rNdS4NpD+SSpkL20kvYd wG/zGzFkoFCWKW80c5pgOFEgVdBVTK3qq4W2gf49DlzDePq4a+L0RD43iALAp95msRee 1sbxmgdMLDW3t3Jfq6EfYV6QwqR3igAhoawaOsG76ijTyky2wM3ClJBFLnPY5Jnz+ab3 7TMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636870; x=1720241670; h=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=SJsf6c3nLHtNKwj8s9NHyYgKgE50TTB53CM1nmVFjJs=; b=SdK+b6NOFQs2L3tbctWAJKWDtiRcR8cgNiznQLVDOnuCnazzvqe5pfDsisBOhdADVh bA5FoRfkDT4eDZidBDgOPlhn59visv4vvKvpZm2VZVOYzq31n7+Zu1Ae45s4DBJZWJuv pjQTaZHQo4dIOt0ZLCAmztP2M8HgGuzsedbE97xMOlIuV0GogKcFU3kTyta2X2U716+s skOv630vuH7rMo02Dvp1rVpU8gWiP4n7VQnwp3Dx7PjjoSay9kOfFIAijFt+4rn5NNLL 4rKPdH6PSSfUmH5ls8QSdCd/OWtoR+fQV1LqfMO8tvGWBZlyF/BbVOQiZRv3QLECcTrq apYQ== X-Forwarded-Encrypted: i=1; AJvYcCU3JpAxmMaLu/4/LiSgl1o/FoYoL3DIVUwnP1lQDoccavx9Na6hRz343TuR12X1FyXctat0wOv1Fo5kS7wvRlYdMngrwCg3ZWgyESOZRKSC3ezgwr4= X-Gm-Message-State: AOJu0YzNkuCfl8u7FIRvpPFyOi6Iwv1cpL5OLFn+7xX0RvQOOsoX4AEc 5WpUlXlxH8tX/U7yYdoSATWvEGBxMhzJL/QX+dlhU7gB9FyXtGlhuxAYvnF3kDYX7s+g9Xf+uSH NOlQkcA== X-Google-Smtp-Source: AGHT+IHBuals/aehTdAhZ4NXFT1QkYgIb3fJfqmnR2TQzmGp3twPbjHBFtlF3mFyTyEe1cQ2t21rdGyN49BP X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a25:db85:0:b0:e03:572c:30d8 with SMTP id 3f1490d57ef6-e036ec5d6e6mr568276.11.1719636870256; Fri, 28 Jun 2024 21:54:30 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:32 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-11-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 10/28] perf lock: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215431_736700_E3E2EB88 X-CRM114-Status: GOOD ( 13.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-lock.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c index 6efa9d646637..2c216427e929 100644 --- a/tools/perf/builtin-lock.c +++ b/tools/perf/builtin-lock.c @@ -1933,22 +1933,21 @@ static bool force; static int __cmd_report(bool display_info) { int err = -EINVAL; - struct perf_tool eops = { - .attr = perf_event__process_attr, - .event_update = process_event_update, - .sample = process_sample_event, - .comm = perf_event__process_comm, - .mmap = perf_event__process_mmap, - .namespaces = perf_event__process_namespaces, - .tracing_data = perf_event__process_tracing_data, - .ordered_events = true, - }; + struct perf_tool eops; struct perf_data data = { .path = input_name, .mode = PERF_DATA_MODE_READ, .force = force, }; + perf_tool__init(&eops, /*ordered_events=*/true); + eops.attr = perf_event__process_attr; + eops.event_update = process_event_update; + eops.sample = process_sample_event; + eops.comm = perf_event__process_comm; + eops.mmap = perf_event__process_mmap; + eops.namespaces = perf_event__process_namespaces; + eops.tracing_data = perf_event__process_tracing_data; session = perf_session__new(&data, &eops); if (IS_ERR(session)) { pr_err("Initializing perf session failed\n"); @@ -2069,15 +2068,7 @@ static int check_lock_contention_options(const struct option *options, static int __cmd_contention(int argc, const char **argv) { int err = -EINVAL; - struct perf_tool eops = { - .attr = perf_event__process_attr, - .event_update = process_event_update, - .sample = process_sample_event, - .comm = perf_event__process_comm, - .mmap = perf_event__process_mmap, - .tracing_data = perf_event__process_tracing_data, - .ordered_events = true, - }; + struct perf_tool eops; struct perf_data data = { .path = input_name, .mode = PERF_DATA_MODE_READ, @@ -2100,6 +2091,14 @@ static int __cmd_contention(int argc, const char **argv) con.result = &lockhash_table[0]; + perf_tool__init(&eops, /*ordered_events=*/true); + eops.attr = perf_event__process_attr; + eops.event_update = process_event_update; + eops.sample = process_sample_event; + eops.comm = perf_event__process_comm; + eops.mmap = perf_event__process_mmap; + eops.tracing_data = perf_event__process_tracing_data; + session = perf_session__new(use_bpf ? NULL : &data, &eops); if (IS_ERR(session)) { pr_err("Initializing perf session failed\n"); From patchwork Sat Jun 29 04:53:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716791 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E6361C30653 for ; Sat, 29 Jun 2024 04:56:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Nt9mZXAuqIiRG3JkoyTKDkuyzTJ4dFDHgxDpLqHy/YM=; b=0UCG//hi7tRzj5iFwqM8kqwjty 28nY4+eNFHQJ9QRNwtpxa0TGHLUJlz3Pf0LVvarilnOUlhJ/paGLZ4nnI26hCMeTnjSjDo1HgQX2/ 8/B8bXWDrT8QRQWcAOKucd4tvPY+U9fEE7jxE53VHmpA2yqD5Ak61cctePl7VO/mQvuSXM3fKO6QZ D7WodC7w4pLc5YvRKJuQmI4q2YEulccUlYOHT6e2c7uQY5S+7w5A4quuGuRKS763bNuf5mAcwD/EV lZI3MqatEgwrVyU44vam/rmQurdYt9Hyw5O6P1KzMasIyN+4pI5x/Ri32LMKbXwR+BwX1qWOy7lCp d1+hGkIw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ8D-0000000Fs1L-1LDO; Sat, 29 Jun 2024 04:56:13 +0000 Received: from mail-yw1-x114a.google.com ([2607:f8b0:4864:20::114a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6c-0000000Fr9G-1bbV for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:36 +0000 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-645eb1025b5so20438997b3.2 for ; Fri, 28 Jun 2024 21:54:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636872; x=1720241672; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=Nt9mZXAuqIiRG3JkoyTKDkuyzTJ4dFDHgxDpLqHy/YM=; b=uMXbiLiLnXicejj2uBa4kbCji0zCkXOtgYKMpaInb1uBuXk5Frq+aFtSzSIpOjxAwj jXXxXAv8e+IYLxRiCKCJ6+gR80CTkb6duXciZA8Zvg1HCE9GXWc7eWBkQsVTZ7vsfCJq ImdkT5/7ZIwV8lV/5m/zB5OnjuJ3Ts+4fiwJWcicPMVwCvyaLajluvvs+qwn3iFAyir2 iH0eVBhKewwq2767aQZCbRNM05HeJSOgkKLgR9Zitoz0MFj4OsvBpqBosigWMgMT52iv +aBIgvHcehJ3rTTfORH+RDvGxD3a78s42j/KTpWd5FZk3yFkoQRF8yVBEuHK8Pm09v+N gM5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636872; x=1720241672; h=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=Nt9mZXAuqIiRG3JkoyTKDkuyzTJ4dFDHgxDpLqHy/YM=; b=Fh3pKtWxd51zSc7h3xCBkmYpaJMW0WRQi+JKwv65RKS3x4y7as9C9jny52HF1/Xzq3 qtLfVb79JRZhM8S68cVnCHDpPEZ9fdi8GIRdEIujUAJotbXgsDtkwnTX3pv5yiklmfCt rv3EPT0cLRluayHdKk9tV7bjHsA5g/JCI/SfkdGbOW+cryDjfkg14bv2qOEpCUOdnMnA KSilO0Pt8E7NdcJ8fd2QIPx0zlO+Ctn/XtZZMaZO/ZJCTpYJZIroRrnDmbHHfVGdmv3L lLrzI9OjE3mavrAtPIYdo17zbwk/Tu0JGwwP7yiV/5UW2it01D5KfsTfMBpBj53SEV+R mKmQ== X-Forwarded-Encrypted: i=1; AJvYcCWbbhz0pr0iPVAGTICgCCYIk82w1xutASUKfy/FVoICk6GWZfHH4xhXMSEgoy66F3baGF2SuneIGEC/uBP4kMnAz9ea+wmPyv4L+/INjk/J0Ftn0zI= X-Gm-Message-State: AOJu0YwS7Mlc4TVkELAezElIxFaRKwGJxEw9aQaN41GBFZGg4sNzwb7V Gy8Kofm8OBCacI3Pk8aEOgMEZz8S3Elm/k1eHSsHQpZFZC6ElAWEEP+E8fKuig7Yr4orhwxPyth lyaksdA== X-Google-Smtp-Source: AGHT+IG/i/nGorsDZPqwpN3jkDdzpKa0IkTfmGtlPZ9QyQPVv+PDNAraaATyncwHa7O+QG6cNNBWowsK6XZn X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a0d:ea83:0:b0:64b:7f7e:910f with SMTP id 00721157ae682-64c77cb5cbbmr5307b3.7.1719636872623; Fri, 28 Jun 2024 21:54:32 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:33 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-12-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 11/28] perf evlist: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215434_517836_E6BEF3A8 X-CRM114-Status: GOOD ( 15.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-evlist.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/perf/builtin-evlist.c b/tools/perf/builtin-evlist.c index 7117656939e7..818ab21c3f73 100644 --- a/tools/perf/builtin-evlist.c +++ b/tools/perf/builtin-evlist.c @@ -35,13 +35,13 @@ static int __cmd_evlist(const char *file_name, struct perf_attr_details *details .mode = PERF_DATA_MODE_READ, .force = details->force, }; - struct perf_tool tool = { - /* only needed for pipe mode */ - .attr = perf_event__process_attr, - .feature = process_header_feature, - }; + struct perf_tool tool; bool has_tracepoint = false; + perf_tool__init(&tool, /*ordered_events=*/false); + /* only needed for pipe mode */ + tool.attr = perf_event__process_attr; + tool.feature = process_header_feature; session = perf_session__new(&data, &tool); if (IS_ERR(session)) return PTR_ERR(session); From patchwork Sat Jun 29 04:53:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716792 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C8411C27C4F for ; Sat, 29 Jun 2024 04:56:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=DjilriXGHie+xuYuIC9WUfwlBbvl3toU+U96PkZ/IlY=; b=O4KEAFjOtKDo/Luz8YougBf65s o70VdHBYTqlfhOxDSQK2L4KcMcX7bT16TQI65bKcfdPKir+6dDvXI0GpOgwSCeO9q8cB0PdY6MiST x8GyEuwTvaLnZtHfAyb+d5dzTy06UlD/GTUzV5LJOQBQPZPq/i4o9Cu0Khqvve47/uwy2mOWNY/Mv 9nJPEodwBkEAUWqkl/Znyp2p+c7R+TYqSectGOvMy6zXeZYXqPU+l2+fcVOxpQhellA5+JEVy0TbX YY8VN1WZTb+xvGqCDWVxeysGV7etnMI6SXX5gc/ADjc6XV5Cg+tv4R1xIjrOhPG6JhVedz9ugFBMl zUCv5prg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ8K-0000000Fs4T-1UQT; Sat, 29 Jun 2024 04:56:20 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6e-0000000FrAm-3NTl for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:40 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-e0353bb2fecso2378344276.2 for ; Fri, 28 Jun 2024 21:54:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636875; x=1720241675; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=DjilriXGHie+xuYuIC9WUfwlBbvl3toU+U96PkZ/IlY=; b=1TvylfbH1B6E2yEuUOkDapZGgKo86bFO9GI8ja9zElS41GP5uBPdmAxftxkU1SkQpy H1xiTNGY6kc25pd7ITOx7oEYwZp59cbBgDclLymWCCEt70wWbd9tFHMkVbazkD87ymV3 3MoKvLgHwNWZHCVCj3Dl5DPik7nTFw7bztonXS7ZOBclgWdZ2Qzu51iuWRlhx0kfCISO gm+ZzeyGgzLsWaZj8tMln/Xs+8Z223x5xtGW6fT7BGiCgHLXsv6JijJlW3LE+BeJmkcF dz0GrB5l9mpzTd9tktcDgFero9qusaMRCoxU8+sNhGSzCzARDf8UBBZP37xlGcFWa/z6 FI3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636875; x=1720241675; h=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=DjilriXGHie+xuYuIC9WUfwlBbvl3toU+U96PkZ/IlY=; b=uiscLfY9YiL5gkpGMVNhotRJCLAx25eO6szYyOv/BTQPFP3YUO4QuGQ/CtK8r6W4iN HbMi7nMoX+G9l5vYii/77JX85skVybUTFm0+96w5Pax+zlzAOncki1UvYTl6aEsZM6tw NW6NBKjny/+D02+qvYk5mmtfDla1W2ENSh/FQHdGMPVqM9I9X91IhbVO6sCss/wSNK5i DDpv19S0QpoXzbJq8x6K50qnCWqH3lUJgdsrMN2JMqJP3GhQ5LWsn2cJ6u0aYPWATRUY d1VKUiCYFRQqr/aJaTYWT1HyqJaIE5+5zEJp4oLw4XrUKJWOw+XZeKO7SyjfGbcgEwLB zbyQ== X-Forwarded-Encrypted: i=1; AJvYcCUEn3NoUWUMOiuz/bYcuxDz4qGopNauBpMV3mbekdAMEq1MMGhD3j/T2gWAdb2u5IWDoawBKnTBu/0udIescy0gyQunvRPoCToo7h4Zwi4fpAgeuU8= X-Gm-Message-State: AOJu0YxiDIpFt8pnoum8JlwxsrEZXcafBgKjY1fvQlCnmLIu/Njlnyvy Bom1i10ayBE9XDK036WcRlT17T4if582cCdVHG8jOeuG0eCwFOoMkd+yEIOIrPPX6L4XU7m4uBW L1ZURdg== X-Google-Smtp-Source: AGHT+IFkdRqct5e4zoJ3ZaOW14kc+jwIBuhQ8VNwvOJufiSwkgJKUSw3c82OjDQcnF/y3Asy6G9TS4cfjz0G X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:1004:b0:e03:5d0e:7886 with SMTP id 3f1490d57ef6-e036f29783dmr522276.11.1719636874952; Fri, 28 Jun 2024 21:54:34 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:34 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-13-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 12/28] perf record: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215437_001191_04034BA3 X-CRM114-Status: GOOD ( 16.26 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-record.c | 33 ++++++++++++++++++++------------- tools/perf/util/tool.c | 10 +++++----- tools/perf/util/tool.h | 6 ++++++ 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index e8677f9e1ccb..4b9309b4c07e 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -193,6 +193,15 @@ static const char *affinity_tags[PERF_AFFINITY_MAX] = { "SYS", "NODE", "CPU" }; +static int build_id__process_mmap(const struct perf_tool *tool, union perf_event *event, + struct perf_sample *sample, struct machine *machine); +static int build_id__process_mmap2(const struct perf_tool *tool, union perf_event *event, + struct perf_sample *sample, struct machine *machine); +static int process_timestamp_boundary(const struct perf_tool *tool, + union perf_event *event, + struct perf_sample *sample, + struct machine *machine); + #ifndef HAVE_GETTID static inline pid_t gettid(void) { @@ -1458,7 +1467,7 @@ static int process_buildids(struct record *rec) * first/last samples. */ if (rec->buildid_all && !rec->timestamp_boundary) - rec->tool.sample = NULL; + rec->tool.sample = process_event_sample_stub; return perf_session__process_events(session); } @@ -2386,6 +2395,16 @@ static int __cmd_record(struct record *rec, int argc, const char **argv) signal(SIGUSR2, SIG_IGN); } + perf_tool__init(tool, /*ordered_events=*/true); + tool->sample = process_sample_event; + tool->fork = perf_event__process_fork; + tool->exit = perf_event__process_exit; + tool->comm = perf_event__process_comm; + tool->namespaces = perf_event__process_namespaces; + tool->mmap = build_id__process_mmap; + tool->mmap2 = build_id__process_mmap2; + tool->itrace_start = process_timestamp_boundary; + tool->aux = process_timestamp_boundary; session = perf_session__new(data, tool); if (IS_ERR(session)) { pr_err("Perf session creation failed.\n"); @@ -3326,18 +3345,6 @@ static struct record record = { .ctl_fd_ack = -1, .synth = PERF_SYNTH_ALL, }, - .tool = { - .sample = process_sample_event, - .fork = perf_event__process_fork, - .exit = perf_event__process_exit, - .comm = perf_event__process_comm, - .namespaces = perf_event__process_namespaces, - .mmap = build_id__process_mmap, - .mmap2 = build_id__process_mmap2, - .itrace_start = process_timestamp_boundary, - .aux = process_timestamp_boundary, - .ordered_events = true, - }, }; const char record_callchain_help[] = CALLCHAIN_RECORD_HELP diff --git a/tools/perf/util/tool.c b/tools/perf/util/tool.c index cbd9b888bd73..a4ca16e5eefe 100644 --- a/tools/perf/util/tool.c +++ b/tools/perf/util/tool.c @@ -99,11 +99,11 @@ static int process_event_synth_event_update_stub(const struct perf_tool *tool __ return 0; } -static int process_event_sample_stub(const struct perf_tool *tool __maybe_unused, - union perf_event *event __maybe_unused, - struct perf_sample *sample __maybe_unused, - struct evsel *evsel __maybe_unused, - struct machine *machine __maybe_unused) +int process_event_sample_stub(const struct perf_tool *tool __maybe_unused, + union perf_event *event __maybe_unused, + struct perf_sample *sample __maybe_unused, + struct evsel *evsel __maybe_unused, + struct machine *machine __maybe_unused) { dump_printf(": unhandled!\n"); return 0; diff --git a/tools/perf/util/tool.h b/tools/perf/util/tool.h index 897c6c44b6b2..fb7e32d98dda 100644 --- a/tools/perf/util/tool.h +++ b/tools/perf/util/tool.h @@ -93,4 +93,10 @@ void perf_tool__fill_defaults(struct perf_tool *tool); bool perf_tool__compressed_is_stub(const struct perf_tool *tool); +int process_event_sample_stub(const struct perf_tool *tool, + union perf_event *event, + struct perf_sample *sample, + struct evsel *evsel, + struct machine *machine); + #endif /* __PERF_TOOL_H */ From patchwork Sat Jun 29 04:53:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716793 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5318BC27C4F for ; Sat, 29 Jun 2024 04:56:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=i0qUI05DiVrsf9AQoaH9ZN9+rApwsKt6AnCoI2o0Nog=; b=POnRwtW9D+5nCo2HuW3WMjJoUO Oj+VG4kjnLEmSAdR5nAp7T8kD1wZU27tHWOuatCFteIbOiCHa6Hz/+bzMgdiw4I62vaLsREdGC9lB uf2s3AgOgtuireHMLpg9L9JhTRlgxIifpAWYDTpnRf/CFmk5f2z+9VdkNE0qKmtka3k1NOU+uzImF ZB9QeI1Pr6C0yYf5rrHZQKz3TU9kNAn/FwuIGL3AtbCwwtFTfv6YjlbxkxNx0Rhak4L5DVogg+dr4 4ddqR1gLHj4MX0eYvU13aMYYB2bZcxFV7Fy8wzmTnDRGhj6aZ5D6AW02GqKwa1ghDhYdmKAhMPBLM Lh0dNy4g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ8S-0000000Fs8Z-0x1N; Sat, 29 Jun 2024 04:56:28 +0000 Received: from mail-yw1-x114a.google.com ([2607:f8b0:4864:20::114a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6g-0000000FrCD-3Fdl for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:40 +0000 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-643acc141cbso14178547b3.1 for ; Fri, 28 Jun 2024 21:54:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636877; x=1720241677; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=i0qUI05DiVrsf9AQoaH9ZN9+rApwsKt6AnCoI2o0Nog=; b=3NzgWgUWztiukhSKwxwMTjYThnVCy/EEABAaKsDy7Pg5fVRf97R63BE8Q8Mjc/SR16 qYBobbvWzsk9aU5z+W5oFkWB0F1GpviV93BI3AoKvGtpBlueKjBJrZuyRopclIo04bht PV6hNcwfE4c6+RqY6kkXfubF5GxZLArXeZWSClEtoOIslvk1COKZijgjqohkhiwZQY8u PGkI6I5Ib3UhVABziSwZUc4Z+tbUxBuBtwHKUVbxQACfg/UcEPddJpxgaoNfD9+XHEhC bkA5NE/AysfbhG/nm+eANJNgASNBE6WEufZ4mLNX5/aVjwpcQgok43VAT73mJuXUiBHC SJLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636877; x=1720241677; h=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=i0qUI05DiVrsf9AQoaH9ZN9+rApwsKt6AnCoI2o0Nog=; b=Sdcqo4DTcgu18zim1ZuZGAZqUlPwT9xeHV6Ms+bwMmrWSsKi3FdDudXgcIwX7h4Amr 0sPazBZ9NxjvdwfGXoEWeNPZGSl6GlTiT71Qh15kD+ikEbVLSkO4ZlS0ZGZ1z3T3yimg jpjgauODJ7xuRunB21991RevxuOyQpYHrRwOmDHbBo5VznYWtiumUj2V2HjrRGBhnCs1 gco63h8nOsJUhHMoiIje8Y1rY3YpAAWZy4WvMK86zp6NxkpPMRkAhVbCWgBbY/0IdkVE FZYyFONAU08FgHNFqxuw89+18FWCl0hkbenq5VxcfetUmJvB4LuABdsq2ReMwejtxBJU Wb4Q== X-Forwarded-Encrypted: i=1; AJvYcCVJpfUPASqOTeiLK0KufUWHXXBkT7D4dmdPBhC0NhX9FLDO3m3AlBP2eyzFVqW0m2h722UzlduQiqfg8wGA+Iarhrh3EdARLOORu/lo4RjpWgkFaOE= X-Gm-Message-State: AOJu0YyD33bAJRvvm7YF/vFvtrEgmYBwecsJsUDNOYp4+MKhJ4/3rlvz y3sxNLeP8g2aol0jtYi+oFibFxS4kgBXgtcHFsa65HvQQrbUFUvaMr5BJZ719eTodAvBKG+fK/4 ao/b2Pw== X-Google-Smtp-Source: AGHT+IF/g2y2CFTuVjyjJKWPg4736Q64H5sousGzfXa3I3niK2LPyw7/hWkFTWLh+pq/bXwvqFAwkFMX62vr X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a81:8451:0:b0:627:edcb:cbe2 with SMTP id 00721157ae682-64af5dfeb07mr303857b3.5.1719636877125; Fri, 28 Jun 2024 21:54:37 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:35 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-14-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 13/28] perf c2c: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215438_917205_27E75FE1 X-CRM114-Status: GOOD ( 12.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-c2c.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c index 88c131d05186..cd2bd573bfc3 100644 --- a/tools/perf/builtin-c2c.c +++ b/tools/perf/builtin-c2c.c @@ -385,24 +385,6 @@ static int process_sample_event(const struct perf_tool *tool __maybe_unused, goto out; } -static struct perf_c2c c2c = { - .tool = { - .sample = process_sample_event, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .comm = perf_event__process_comm, - .exit = perf_event__process_exit, - .fork = perf_event__process_fork, - .lost = perf_event__process_lost, - .attr = perf_event__process_attr, - .auxtrace_info = perf_event__process_auxtrace_info, - .auxtrace = perf_event__process_auxtrace, - .auxtrace_error = perf_event__process_auxtrace_error, - .ordered_events = true, - .ordering_requires_timestamps = true, - }, -}; - static const char * const c2c_usage[] = { "perf c2c {record|report}", NULL @@ -3070,6 +3052,19 @@ static int perf_c2c__report(int argc, const char **argv) data.path = input_name; data.force = symbol_conf.force; + perf_tool__init(&c2c.tool, /*ordered_events=*/true); + c2c.tool.sample = process_sample_event; + c2c.tool.mmap = perf_event__process_mmap; + c2c.tool.mmap2 = perf_event__process_mmap2; + c2c.tool.comm = perf_event__process_comm; + c2c.tool.exit = perf_event__process_exit; + c2c.tool.fork = perf_event__process_fork; + c2c.tool.lost = perf_event__process_lost; + c2c.tool.attr = perf_event__process_attr; + c2c.tool.auxtrace_info = perf_event__process_auxtrace_info; + c2c.tool.auxtrace = perf_event__process_auxtrace; + c2c.tool.auxtrace_error = perf_event__process_auxtrace_error; + c2c.tool.ordering_requires_timestamps = true; session = perf_session__new(&data, &c2c.tool); if (IS_ERR(session)) { err = PTR_ERR(session); From patchwork Sat Jun 29 04:53:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716794 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 33142C27C4F for ; Sat, 29 Jun 2024 04:56:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3MSmntjEyHp1VfXd+WDcjggsLDUpv4S+apWQbP8i85Y=; b=iYC2F3BoAxNhRNtkhwnl32gN27 VDRPZsr2fhSIrnbvJA0HFFEZ23es7mvaxt6xCdVz6CJKWKXI4WCYtTFMXfF7G1S6XvuF6gd9KPYYJ 1O7KwEKwvx3biSGRf4K/iLrghG49RWvrZXntMVR0nHax45I0bGLXfVD6VurHPkw2mWCzlkcwISl5v dk1fEMCy9e/4/xYu6+tPhP+7MhSGkEcHPlO8Z7VZiCwqMZBXtVU1aDzBY3uU2LgejIAO4MJKwg1qH JzjO5+MdfXnHF2tyyl8egK0BHcraBz/5J05DIofXP/gVbc5CW5s+7A7M7X6MCQbS09fdDBNk4/8Hi JkaXlo9w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ8Z-0000000FsCL-1Z6x; Sat, 29 Jun 2024 04:56:35 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6j-0000000FrDI-3OJ2 for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:43 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-645eb1025b5so20439567b3.2 for ; Fri, 28 Jun 2024 21:54:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636879; x=1720241679; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=3MSmntjEyHp1VfXd+WDcjggsLDUpv4S+apWQbP8i85Y=; b=ZxTJujrToVdUlh1u+37/VKULSt36gOci7VNeT9zxwpYZ8tnY59YzuSJ2FeNHB1UKxp BZtgagptMbNWWajlP+FcNJbkcK0XYCct1HkjMwKmSm/FqArGal70kkFzpWvqmmOifN+b XWQfpUvpXrtrFh8L2wFafdQiw/9mqMAVih9G/PTq+oOn85FIJnvSw/J29pPqB3HBH0UG 6o+smDPkoihT91+o93TNUT4OLhO/oGZEgEu0JMi9Mtc7u8zgVndrEs2/e7Y2eytGQZBk i8DG6uzme7FRf70cS7gU1xoukNJ7agIICtB/ugIGifeLnP2SFChy8g7BvTQCZRAQ+Wl2 z92w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636879; x=1720241679; h=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=3MSmntjEyHp1VfXd+WDcjggsLDUpv4S+apWQbP8i85Y=; b=QXXyz2BdbGg85McOBs+6wPzo8/RKffOe67ixUDJMmz5hvgIiIPa7SDVwHCd/nNscaa jkbZ5X+i+py2ENuF06JI3p1/nfNBUWKyax89lltpUdAqY2dy1PitkuDJtFt07hLd2lFq 3CZyykNkFB9EKrQfXhTYTb06QP/ARjr+CtDp/oRHgPw+w5cVis4bLnxZOjKxSmOvNT7G +Tde3WLigsScv0QyK1c9CW+ByIyikuv7w4DrqTzU3Zk8BDwaQGmD4VTPFoAMKT2U6Zia DO8Wp3KVkHXvX0LmhBs8Q2KZePCIK5TntUgaIKgqYKu4Lia2fmXCFp/1TATCuIgVW4SW 1T2A== X-Forwarded-Encrypted: i=1; AJvYcCWfP5MIMa0LYzXC4EzUy+IYW2+BoOM9l9puRpVYlPsK2PEx6IG48TmRRQtIyzKROz318WYQ0i35sSA0eG7XpKNA8I0ad9mmTDJOppWaJKIG4ab39lU= X-Gm-Message-State: AOJu0Yy4eKQJok2PDEp8iUBSGyF3IdLrsyuuXiIkxsE53OcjLNWCW6sY nEen+9Lblf4CPDmp4+GebAJalKoU0+Gbbj02nfktzP5r3uAUquIOcReYx3HBeQWwQPoYjRAXWT/ MGN1yGg== X-Google-Smtp-Source: AGHT+IHd5kE0IfP/nRLN2cbftjl35zvC0mgizfDEnWFch8Sz6HpMO2QkhZzdMmEc/7weRSowcQlHEmYb1JQS X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a81:8485:0:b0:64a:8adc:f95c with SMTP id 00721157ae682-64c77cb6557mr6117b3.8.1719636879333; Fri, 28 Jun 2024 21:54:39 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:36 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-15-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 14/28] perf script: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215441_951666_5FE4C6FF X-CRM114-Status: GOOD ( 13.86 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-script.c | 65 +++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 394bce9f5338..b4fc2971335b 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -3899,38 +3899,7 @@ int cmd_script(int argc, const char **argv) const char *dlfilter_file = NULL; const char **__argv; int i, j, err = 0; - struct perf_script script = { - .tool = { - .sample = process_sample_event, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .comm = perf_event__process_comm, - .namespaces = perf_event__process_namespaces, - .cgroup = perf_event__process_cgroup, - .exit = perf_event__process_exit, - .fork = perf_event__process_fork, - .attr = process_attr, - .event_update = perf_event__process_event_update, -#ifdef HAVE_LIBTRACEEVENT - .tracing_data = perf_event__process_tracing_data, -#endif - .feature = process_feature_event, - .build_id = perf_event__process_build_id, - .id_index = perf_event__process_id_index, - .auxtrace_info = perf_script__process_auxtrace_info, - .auxtrace = perf_event__process_auxtrace, - .auxtrace_error = perf_event__process_auxtrace_error, - .stat = perf_event__process_stat_event, - .stat_round = process_stat_round_event, - .stat_config = process_stat_config_event, - .thread_map = process_thread_map_event, - .cpu_map = process_cpu_map_event, - .throttle = process_throttle_event, - .unthrottle = process_throttle_event, - .ordered_events = true, - .ordering_requires_timestamps = true, - }, - }; + struct perf_script script = {}; struct perf_data data = { .mode = PERF_DATA_MODE_READ, }; @@ -4102,10 +4071,8 @@ int cmd_script(int argc, const char **argv) data.path = input_name; data.force = symbol_conf.force; - if (unsorted_dump) { + if (unsorted_dump) dump_trace = true; - script.tool.ordered_events = false; - } if (symbol__validate_sym_arguments()) return -1; @@ -4296,6 +4263,34 @@ int cmd_script(int argc, const char **argv) use_browser = 0; } + perf_tool__init(&script.tool, !unsorted_dump); + script.tool.sample = process_sample_event; + script.tool.mmap = perf_event__process_mmap; + script.tool.mmap2 = perf_event__process_mmap2; + script.tool.comm = perf_event__process_comm; + script.tool.namespaces = perf_event__process_namespaces; + script.tool.cgroup = perf_event__process_cgroup; + script.tool.exit = perf_event__process_exit; + script.tool.fork = perf_event__process_fork; + script.tool.attr = process_attr; + script.tool.event_update = perf_event__process_event_update; +#ifdef HAVE_LIBTRACEEVENT + script.tool.tracing_data = perf_event__process_tracing_data; +#endif + script.tool.feature = process_feature_event; + script.tool.build_id = perf_event__process_build_id; + script.tool.id_index = perf_event__process_id_index; + script.tool.auxtrace_info = perf_script__process_auxtrace_info; + script.tool.auxtrace = perf_event__process_auxtrace; + script.tool.auxtrace_error = perf_event__process_auxtrace_error; + script.tool.stat = perf_event__process_stat_event; + script.tool.stat_round = process_stat_round_event; + script.tool.stat_config = process_stat_config_event; + script.tool.thread_map = process_thread_map_event; + script.tool.cpu_map = process_cpu_map_event; + script.tool.throttle = process_throttle_event; + script.tool.unthrottle = process_throttle_event; + script.tool.ordering_requires_timestamps = true; session = perf_session__new(&data, &script.tool); if (IS_ERR(session)) return PTR_ERR(session); From patchwork Sat Jun 29 04:53:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716795 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AF3F6C30653 for ; Sat, 29 Jun 2024 04:56:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Pl47ShAyi3UwZLaY95Gdqr35v3cT/0CCN4n04OcghVg=; b=dBCt+4OejRXXNlV9oRLdaLvQJG qiCRMloQmiXKYQtPcif8X8VqTWw9jdDaApr4IAGfwgxcg9LPXg3l8dmmN9OTD33HpJsBmZ0bo+ooL bg2pPBawoyDzCf1CSc7JYJ9s5nPYtV55Opp7Jm9C0TskmAguS18Ll96yEMMNgg+Hi/crgxGIW8nQU DfIUdp2QGj4oDBJq2JqxMh+/f5rTcp6vYd/VwpLy05r4zetus896Eq+acjTtd/S8j5eVlKzyZq8Q3 CGKqZ8mQvI5dTeznEysE8/dc+ImOhUEbTuttwakCMrRbJSO0Bn4ctD3mLUzi3JNjE6myPlSSHZ07Y n6DJEskg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ8g-0000000FsFn-2MlV; Sat, 29 Jun 2024 04:56:42 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6k-0000000FrEl-3kVI for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:45 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-e036150efc6so1832215276.2 for ; Fri, 28 Jun 2024 21:54:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636882; x=1720241682; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=Pl47ShAyi3UwZLaY95Gdqr35v3cT/0CCN4n04OcghVg=; b=Gz4ECUhM3/w1FfFVpNA6h393uoaYYwQesm7YgRlqHDFV7pfp637jSok2KJ3PIFUkBf V9gUjJzDDubSp9DtczLifdpT4Zu4r75j5tTUx+z4/0bW+INdEX4JmPxFKZ27LzezyRzB 4gaQN+Lyg3b074giA3vArIeSVfjRo+p9+Mciq//9AnNUOHne4TrR2l2VNjzkYMzYF3Yi EaMMKfF5HgDNsJ7bysfHMehT7hCvg+fU3prGyHjm06/wQd9ZlaWqiz6QXkOdNmKarVnt acdUKxjHxc3hRm4dEh9jFV2479qHvTZTyfyWKpPQEseWZuLRPE9hXAR+uSnq3iembuS8 Y5Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636882; x=1720241682; h=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=Pl47ShAyi3UwZLaY95Gdqr35v3cT/0CCN4n04OcghVg=; b=ro3PgKk6Ug7APIB48Gz2Cvmrb2Nc89zv7YDjlKjiR9ogrLxutb0YXc7oesGqpaqwqA Ohp8Dy0ukFjFhKcYB0+8b4eUAtJGNrE09H8ost6YkyaSRlN/8CV1UThTuMqGf9U28FSx wt9IHkK1vqwKT0KMC0xIsiRxNooLBR0n1K2LTkeaf2Vm3OQkqkSkWabxU3alaGT3MObZ tLQ/Thscbgn9wGtb24xG6bXOnNm7LkCTh7bbvcLNfl/eU8JOdnNxqxwVY9LUJaos6UWp iKKJmd6hBEMZAM0ichxoR6EOEL+TE9aej/5Ymsh92M3LpbUKeOKF7GHiFME8HNd7kEE0 v2Xw== X-Forwarded-Encrypted: i=1; AJvYcCXf7JWf4qSaC7n+DP7ECvEzV9BWiZ8zcIhUeRwE3yAvUyuspJ/mFbKI9onsdSAAZpBecyaqvSn/EgvL9ZGxiUbWhgUkTru8UydaviwsXPD63AXmPM4= X-Gm-Message-State: AOJu0Yz0/wvhd7WeTQlJfr53ovxYDVcnNMFVb6mekgFnHpQ2G5wdssvH /Sfqj430wZOPgNug54xdOs2CqrE26wlvpdz76TyVntvTGqq37LIWfGOLE5awN+irEJecVTsmeWZ TVK6amA== X-Google-Smtp-Source: AGHT+IHUSHzhHT95HvJspWwoNtad+/Y39YtVY3w1Kv6aTvtwrcnux5QeomCYcV5ciUCF98rKk/ztWmncL1Gg X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:1009:b0:df4:d6ca:fed0 with SMTP id 3f1490d57ef6-e036eaf6cbemr523276.4.1719636881634; Fri, 28 Jun 2024 21:54:41 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:37 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-16-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 15/28] perf inject: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215443_034476_27583391 X-CRM114-Status: GOOD ( 15.61 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-inject.c | 89 +++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 47 deletions(-) diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c index be74e2bf1f00..2866756d5060 100644 --- a/tools/perf/builtin-inject.c +++ b/tools/perf/builtin-inject.c @@ -2165,46 +2165,6 @@ static int __cmd_inject(struct perf_inject *inject) int cmd_inject(int argc, const char **argv) { struct perf_inject inject = { - .tool = { - .sample = perf_event__repipe_sample, - .read = perf_event__repipe_sample, - .mmap = perf_event__repipe, - .mmap2 = perf_event__repipe, - .comm = perf_event__repipe, - .namespaces = perf_event__repipe, - .cgroup = perf_event__repipe, - .fork = perf_event__repipe, - .exit = perf_event__repipe, - .lost = perf_event__repipe, - .lost_samples = perf_event__repipe, - .aux = perf_event__repipe, - .itrace_start = perf_event__repipe, - .aux_output_hw_id = perf_event__repipe, - .context_switch = perf_event__repipe, - .throttle = perf_event__repipe, - .unthrottle = perf_event__repipe, - .ksymbol = perf_event__repipe, - .bpf = perf_event__repipe, - .text_poke = perf_event__repipe, - .attr = perf_event__repipe_attr, - .event_update = perf_event__repipe_event_update, - .tracing_data = perf_event__repipe_op2_synth, - .finished_round = perf_event__repipe_oe_synth, - .build_id = perf_event__repipe_op2_synth, - .id_index = perf_event__repipe_op2_synth, - .auxtrace_info = perf_event__repipe_op2_synth, - .auxtrace_error = perf_event__repipe_op2_synth, - .time_conv = perf_event__repipe_op2_synth, - .thread_map = perf_event__repipe_op2_synth, - .cpu_map = perf_event__repipe_op2_synth, - .stat_config = perf_event__repipe_op2_synth, - .stat = perf_event__repipe_op2_synth, - .stat_round = perf_event__repipe_op2_synth, - .feature = perf_event__repipe_op2_synth, - .finished_init = perf_event__repipe_op2_synth, - .compressed = perf_event__repipe_op4_synth, - .auxtrace = perf_event__repipe_auxtrace, - }, .input_name = "-", .samples = LIST_HEAD_INIT(inject.samples), .output = { @@ -2269,6 +2229,7 @@ int cmd_inject(int argc, const char **argv) "perf inject []", NULL }; + bool ordered_events; if (!inject.itrace_synth_opts.set) { /* Disable eager loading of kernel symbols that adds overhead to perf inject. */ @@ -2333,7 +2294,47 @@ int cmd_inject(int argc, const char **argv) if (strcmp(inject.input_name, "-")) repipe = false; } - + ordered_events = inject.jit_mode || inject.sched_stat || + (inject.build_ids && !inject.build_id_all); + perf_tool__init(&inject.tool, ordered_events); + inject.tool.sample = perf_event__repipe_sample; + inject.tool.read = perf_event__repipe_sample; + inject.tool.mmap = perf_event__repipe; + inject.tool.mmap2 = perf_event__repipe; + inject.tool.comm = perf_event__repipe; + inject.tool.namespaces = perf_event__repipe; + inject.tool.cgroup = perf_event__repipe; + inject.tool.fork = perf_event__repipe; + inject.tool.exit = perf_event__repipe; + inject.tool.lost = perf_event__repipe; + inject.tool.lost_samples = perf_event__repipe; + inject.tool.aux = perf_event__repipe; + inject.tool.itrace_start = perf_event__repipe; + inject.tool.aux_output_hw_id = perf_event__repipe; + inject.tool.context_switch = perf_event__repipe; + inject.tool.throttle = perf_event__repipe; + inject.tool.unthrottle = perf_event__repipe; + inject.tool.ksymbol = perf_event__repipe; + inject.tool.bpf = perf_event__repipe; + inject.tool.text_poke = perf_event__repipe; + inject.tool.attr = perf_event__repipe_attr; + inject.tool.event_update = perf_event__repipe_event_update; + inject.tool.tracing_data = perf_event__repipe_op2_synth; + inject.tool.finished_round = perf_event__repipe_oe_synth; + inject.tool.build_id = perf_event__repipe_op2_synth; + inject.tool.id_index = perf_event__repipe_op2_synth; + inject.tool.auxtrace_info = perf_event__repipe_op2_synth; + inject.tool.auxtrace_error = perf_event__repipe_op2_synth; + inject.tool.time_conv = perf_event__repipe_op2_synth; + inject.tool.thread_map = perf_event__repipe_op2_synth; + inject.tool.cpu_map = perf_event__repipe_op2_synth; + inject.tool.stat_config = perf_event__repipe_op2_synth; + inject.tool.stat = perf_event__repipe_op2_synth; + inject.tool.stat_round = perf_event__repipe_op2_synth; + inject.tool.feature = perf_event__repipe_op2_synth; + inject.tool.finished_init = perf_event__repipe_op2_synth; + inject.tool.compressed = perf_event__repipe_op4_synth; + inject.tool.auxtrace = perf_event__repipe_auxtrace; inject.session = __perf_session__new(&data, repipe, output_fd(&inject), &inject.tool); @@ -2372,7 +2373,6 @@ int cmd_inject(int argc, const char **argv) * mmaps. We cannot generate the buildid hit list and * inject the jit mmaps at the same time for now. */ - inject.tool.ordered_events = true; inject.tool.ordering_requires_timestamps = true; if (known_build_ids != NULL) { inject.known_build_ids = @@ -2385,15 +2385,10 @@ int cmd_inject(int argc, const char **argv) } } - if (inject.sched_stat) { - inject.tool.ordered_events = true; - } - #ifdef HAVE_JITDUMP if (inject.jit_mode) { inject.tool.mmap2 = perf_event__jit_repipe_mmap2; inject.tool.mmap = perf_event__jit_repipe_mmap; - inject.tool.ordered_events = true; inject.tool.ordering_requires_timestamps = true; /* * JIT MMAP injection injects all MMAP events in one go, so it From patchwork Sat Jun 29 04:53:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716796 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 015F8C30653 for ; Sat, 29 Jun 2024 04:57:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=JwYcrkEXaidwd4Z5roU7UK2PAYIesHAmyGq2F/bho4E=; b=UdbMBkzwAayA5JlbchL5bnFU6p OE2x7wJIDqoYOb6UL6bPxqkOQJSKroHGnxzOAI7RRLDMuL+KpPP/JvpA9tZmpz1oMrZNsAeLCfO/+ mKk9c84B55NscXHUxRvJWyKEghutCYD36zNUamIi5jvU1bVNBG7KJkV4ew5hg9krLnJzoS0O8I0wx Ybh+qa62mhSky0FgPaoUY+FLN49U0nsE6xi7xpG3Vo5Lh3tADR3LewjHQvv3OMv1t2ByD9vBIaK2Y XqOyyXhURIswxLS1RDSYzZ9O0uPGBT4rNbQufHnA2z2I3h9zP87Q1msvUS2GyuAWrjRetB0m+ifFL y6ZWC9bQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ8o-0000000FsKR-3STv; Sat, 29 Jun 2024 04:56:50 +0000 Received: from mail-yw1-x114a.google.com ([2607:f8b0:4864:20::114a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6n-0000000FrHA-2Hww for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:47 +0000 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-643acc141cbso14180187b3.1 for ; Fri, 28 Jun 2024 21:54:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636884; x=1720241684; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=JwYcrkEXaidwd4Z5roU7UK2PAYIesHAmyGq2F/bho4E=; b=Vu1KLrbWpwz9s3i9PWnpOL3uRULUS+u9AqZyjq091U6SoCwVNDdUbRBEuxXMwBtF5B LDTGUHmwqfm2Y+jPJb3/JxbpJOl+bL3mKEP0uW9v4sfw+fiTUsOqchFDsbHiBHDJg/u0 yS7acjQ/Lxkbc9HgNDqjFJnjxkUA30usk1Kyw5Aw4iq5xsJwLOtUT/gO+pN599laZsq8 UlDDfhXNM69j4cZx2ugteAkyoQFcDPFJNXEFi46z3sEeDnPXVDv1sL0Nu73NWSdU9yZ5 CW0cHwc/um1O3xckcTRsiFW+ZUWa3XtmJNPWjlECwxi657bON8q90bCyTTd+njiUTWVG M0ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636884; x=1720241684; h=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=JwYcrkEXaidwd4Z5roU7UK2PAYIesHAmyGq2F/bho4E=; b=PTB9TM+iSXAByRfLSVqgDYpPWrTRdMIqvs8WIVG90mHE6IZLgm+FE02DGBIaCIPgNv II9ImO+EYxShU8XqaWm8aGVL6lqvDrjjjPErHWV7bIRjp1UtsswT3SrOz982HUsI5RGE JpBCM0+Z7MNe9j4H5tb9GAxIFleXCsnZ9KMKBFWGDkX/l840sJqo3dFdcOTGndi2wuvv UCr0OedHdE4KHI8KK9Fpnj6K9YYh/hFlGnyHQJaX4tGV1I1bbbF8uu+DgfV8QoZvyOjQ usO2buK+dhCXVlAhTTkpfoP8ww21kKoUW+xEs2InY4t5z41RrSqG5IfVMEmDb5Lb+pUs S5QA== X-Forwarded-Encrypted: i=1; AJvYcCXPU3caFdul/lczB+SVPabRV4mKS5kjFjEVsOAlOpn76CnU4TwDfVa6LF766Ku7oG9B7Oglfq7VeycaF45+pHkjPshhdjJ4s0b/ciSorMSOjXkaAmo= X-Gm-Message-State: AOJu0Yzw3KCf0dpSPUjA1i5rYIr+1xvj2un+ajOn+LnVP6lLapf3yEsB 1jH9TSVDvCPfrpaRZErM4fXFr9b5qduP4nMYI2bi+6np/3+YelUAYO3ZSS+Y3PJUqvUsMPj1kQD IW5sPyw== X-Google-Smtp-Source: AGHT+IFoH1LQLq/Q7zXZZNDrbDM7uUS6jL13oj5uD5gOMYkfL3tHUvM9RMCDuhIAY6WBZpQ2ynmy6kqUusL+ X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:690c:7647:b0:644:c4d6:add0 with SMTP id 00721157ae682-64af3134c36mr462217b3.1.1719636883810; Fri, 28 Jun 2024 21:54:43 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:38 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-17-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 16/28] perf report: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215446_022311_42F5FBAD X-CRM114-Status: GOOD ( 14.03 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-report.c | 55 ++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 2313bacea0d2..86501edd5a7d 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -799,7 +799,7 @@ static int process_attr(const struct perf_tool *tool __maybe_unused, static void stats_setup(struct report *rep) { - memset(&rep->tool, 0, sizeof(rep->tool)); + perf_tool__init(&rep->tool, /*ordered_events=*/false); rep->tool.attr = process_attr; rep->tool.sample = count_sample_event; rep->tool.lost_samples = count_lost_samples_event; @@ -817,8 +817,7 @@ static int stats_print(struct report *rep) static void tasks_setup(struct report *rep) { - memset(&rep->tool, 0, sizeof(rep->tool)); - rep->tool.ordered_events = true; + perf_tool__init(&rep->tool, /*ordered_events=*/true); if (rep->mmaps_mode) { rep->tool.mmap = perf_event__process_mmap; rep->tool.mmap2 = perf_event__process_mmap2; @@ -1273,30 +1272,6 @@ int cmd_report(int argc, const char **argv) NULL }; struct report report = { - .tool = { - .sample = process_sample_event, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .comm = perf_event__process_comm, - .namespaces = perf_event__process_namespaces, - .cgroup = perf_event__process_cgroup, - .exit = perf_event__process_exit, - .fork = perf_event__process_fork, - .lost = perf_event__process_lost, - .read = process_read_event, - .attr = process_attr, -#ifdef HAVE_LIBTRACEEVENT - .tracing_data = perf_event__process_tracing_data, -#endif - .build_id = perf_event__process_build_id, - .id_index = perf_event__process_id_index, - .auxtrace_info = perf_event__process_auxtrace_info, - .auxtrace = perf_event__process_auxtrace, - .event_update = perf_event__process_event_update, - .feature = process_feature_event, - .ordered_events = true, - .ordering_requires_timestamps = true, - }, .max_stack = PERF_MAX_STACK_DEPTH, .pretty_printing_style = "normal", .socket_filter = -1, @@ -1478,6 +1453,7 @@ int cmd_report(int argc, const char **argv) }; int ret = hists__init(); char sort_tmp[128]; + bool ordered_events = true; if (ret < 0) goto exit; @@ -1532,7 +1508,7 @@ int cmd_report(int argc, const char **argv) report.tasks_mode = true; if (dump_trace && report.disable_order) - report.tool.ordered_events = false; + ordered_events = false; if (quiet) perf_quiet_option(); @@ -1563,6 +1539,29 @@ int cmd_report(int argc, const char **argv) symbol_conf.skip_empty = report.skip_empty; repeat: + perf_tool__init(&report.tool, ordered_events); + report.tool.sample = process_sample_event; + report.tool.mmap = perf_event__process_mmap; + report.tool.mmap2 = perf_event__process_mmap2; + report.tool.comm = perf_event__process_comm; + report.tool.namespaces = perf_event__process_namespaces; + report.tool.cgroup = perf_event__process_cgroup; + report.tool.exit = perf_event__process_exit; + report.tool.fork = perf_event__process_fork; + report.tool.lost = perf_event__process_lost; + report.tool.read = process_read_event; + report.tool.attr = process_attr; +#ifdef HAVE_LIBTRACEEVENT + report.tool.tracing_data = perf_event__process_tracing_data; +#endif + report.tool.build_id = perf_event__process_build_id; + report.tool.id_index = perf_event__process_id_index; + report.tool.auxtrace_info = perf_event__process_auxtrace_info; + report.tool.auxtrace = perf_event__process_auxtrace; + report.tool.event_update = perf_event__process_event_update; + report.tool.feature = process_feature_event; + report.tool.ordering_requires_timestamps = true; + session = perf_session__new(&data, &report.tool); if (IS_ERR(session)) { ret = PTR_ERR(session); From patchwork Sat Jun 29 04:53:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716797 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8DB5FC27C4F for ; Sat, 29 Jun 2024 04:57:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=tYlBTwPn3+TIMd7izcUiVni6qR00lCI2TQ4vp279eEY=; b=WWE6qRt6lvBZNRRWqTnr4XCSd9 072warqHd6jrOTgGe0+wnA9EumWHhoWPJYIQ2V+t6asO3hDQIL/rwDLNTv9bSC6QrhxrRE9qa3BRb qVYmy5yik2S93hej3PqQUW6ofGwjpcG+O+/m2wHOiwFCI5/IcDyaN/IfGZBDaS65JzpOjJ1svz4+N BWpFel2HdPHNRewlQthFYqjpaWGWi5bOMKoEuwCVAIuYRTnWaGhZ0mtL87f05T+n3cFurdmL4n8ZH U56B6mAj3ehujE2uMenPmS0iQWtoEol5v6Sn8BR3lGyLcbQwLDjaxcXw2FwYMmMpqaQ/lp7HFNojZ QRTzHyRw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ8x-0000000FsOw-11n7; Sat, 29 Jun 2024 04:56:59 +0000 Received: from mail-yb1-xb4a.google.com ([2607:f8b0:4864:20::b4a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6p-0000000FrIv-28hF for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:49 +0000 Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-df771b5e942so2192092276.2 for ; Fri, 28 Jun 2024 21:54:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636886; x=1720241686; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=tYlBTwPn3+TIMd7izcUiVni6qR00lCI2TQ4vp279eEY=; b=pym4s30AOkNnWZPoAypWyRxOG1QVqJYyU55CQ2zRVEGuomXsgbNeR0aYBorHYPbTFX VnFFwM0GnxOe2c0wiGFklf3/0lfTEB/kMvxY11cfgT5DwEw7SXXRX4gKGqKoAItEgx5U 9OnyCO0COtCxpjbPv/DscMhZTGEB/XJyu+PMqhUEK5E/3DbjJavfpYB/7rVVDr5lCaWc HXXJEoZosUUcSx5iysmwAlOvqh316bs5WSH4b8J47l45XI69GBcHDATr/POuRrKGUB/O 55MvXNFiPyBQMpXe9oiGOvjpxhiEln4+kJ6ksU7Osj9HdyrcebtyciRtvetw3i8hKpXO J1ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636886; x=1720241686; h=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=tYlBTwPn3+TIMd7izcUiVni6qR00lCI2TQ4vp279eEY=; b=py8CXYmE56WBEkdTHSX8JP6DFWywrNhcmHQS102qaopyEni9mV0PyHuO8nkmzHgbNi 1lu6F4z41iWKH7PsUBfF4JqDtOl7ZSzMUeqU2Qnpl9d4e6i+lpRQFLqlCfkTWfAKJrP4 hVzR9VxOVAOihMGwxqSBj+AEEk3qVZioe5glPNVWPB89wOkCZhXmPZE0dY4WM5euVKDh OQCNduV11Af1fngCkTymnm+z3Vbuh5cblxCBzQQ0p8aQI/DB9+HhfpMzIAFZztW120tN lMAmPAG3FfqySaD/ZmOTAXcM9twc9IguknSYeyg4Ui4K3l1aekEXQBti2QPzL1nPa7G8 M0jw== X-Forwarded-Encrypted: i=1; AJvYcCW3fDpFlktlOV8ol823ZLXUCgxYf2z5JClw9q9z06tw1giEXkk5Ltkli6ajXeK7guhB6LYqh7v/9FKtdDReh7djjA0zKj4KBB/k+UPAOcmtUGEcNGE= X-Gm-Message-State: AOJu0YyCetWnV4ehRce8syHWOEdW5ztWFrT7CLQYuuuaZv/jQQqqNGMS riNPHDvWouCCRWs87pK5SYxecW4usJRVgWtWK23YwsrwbkCZ0zcDysCzsAdl3v7gZ1LsjBJau2G SzWB+TQ== X-Google-Smtp-Source: AGHT+IHlQ3lGTncxadGi4dpG3dzFKLZlZ5PNCPROQuxBGCgOp2Nj4DS8VTLWK+y0KutvPgqptznFewhLK3SB X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:1244:b0:e03:2bfe:40c9 with SMTP id 3f1490d57ef6-e036eadbdb8mr577276.3.1719636886110; Fri, 28 Jun 2024 21:54:46 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:39 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-18-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 17/28] perf stat: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215447_770484_09B72C2B X-CRM114-Status: GOOD ( 12.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-stat.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index d460c46f15fd..a3d77a55d17f 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -2271,15 +2271,6 @@ static const char * const stat_report_usage[] = { }; static struct perf_stat perf_stat = { - .tool = { - .attr = perf_event__process_attr, - .event_update = perf_event__process_event_update, - .thread_map = process_thread_map_event, - .cpu_map = process_cpu_map_event, - .stat_config = process_stat_config_event, - .stat = perf_event__process_stat_event, - .stat_round = process_stat_round_event, - }, .aggr_mode = AGGR_UNSET, .aggr_level = 0, }; @@ -2322,6 +2313,15 @@ static int __cmd_report(int argc, const char **argv) perf_stat.data.path = input_name; perf_stat.data.mode = PERF_DATA_MODE_READ; + perf_tool__init(&perf_stat.tool, /*ordered_events=*/false); + perf_stat.tool.attr = perf_event__process_attr; + perf_stat.tool.event_update = perf_event__process_event_update; + perf_stat.tool.thread_map = process_thread_map_event; + perf_stat.tool.cpu_map = process_cpu_map_event; + perf_stat.tool.stat_config = process_stat_config_event; + perf_stat.tool.stat = perf_event__process_stat_event; + perf_stat.tool.stat_round = process_stat_round_event; + session = perf_session__new(&perf_stat.data, &perf_stat.tool); if (IS_ERR(session)) return PTR_ERR(session); From patchwork Sat Jun 29 04:53:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716798 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A9430C27C4F for ; Sat, 29 Jun 2024 04:57:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=FW0UxSAdQlawsPFFt7Tz92UReMCnYyyYMlomigdWz2g=; b=uDpSZmNnLJ9jZncuMo956YxoqI Dd4gRTkQgyJWEkdrLZGKLfRue5dT46Lo5tTpAoHORoT1L/NXoGPHy37ZYJUM0kIRT97L31xMV0Eg2 tt8BXH1UrfQoAfs8WNEKu39dgJn6d1KjsVHe3QFYlwpsD7Q4ulLX7ma7UWpdsgx84jnYF/rKIMSVC ckeDoEKKn3l+ISR9TcZ5nixEGjmnnDq7a1Ss4pDU/cGZH6NnWCB0eHuHG9Jqbrr/RIFJoiio0Rfwc nQVvV5mQ0rryUGwDmxcW3pVDoxmjtSvxntL8hTY9eF1n+Agp7mg0YNsdiacCWfw0y+SESA06VDwXf izgcYC9g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ96-0000000FsUy-46b8; Sat, 29 Jun 2024 04:57:08 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6s-0000000FrKs-31ZZ for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:53 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-e033e353528so2017362276.0 for ; Fri, 28 Jun 2024 21:54:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636888; x=1720241688; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=FW0UxSAdQlawsPFFt7Tz92UReMCnYyyYMlomigdWz2g=; b=MhAe8vq6NY83WCsZMg7cB4xavlI+C+KFUTkt27EP0Q17pqjXJkqLlA4TUYZ8Jo3Swj WxnFwd0JqVcZ44bz5xt3EUlC132IvOz/L7xyN5mnKS81EYFUG3YGlbZ7hZkPV7dpj5Bq Zr5SLbdkZlMYWIoSdPRIwkhleegZQP1gV31NvUw+cfvnGxL6gk4LQ26rQauEGSeVfxz7 9nFQSnDUpbUChT2+vcJTfzFR0xce+7c4M/TX+nklLy/cdlpbZcaBjzXgQ1kBDQWADL/P e5gecpDF6Mvu/rBrT9QbxRgXj7ZprWbAwbnxG0+zGL9z/c63LWGWMWehpgk48ryfcl52 fMgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636888; x=1720241688; h=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=FW0UxSAdQlawsPFFt7Tz92UReMCnYyyYMlomigdWz2g=; b=OY9Kqdin6ioCIXP3PeBG3zGQkeGCYIDQxVMSUDPeDheQfQxmnB0snUddbtfsJbAz2k hjI7QlReNLjD4a3jt8VECYOILFP2BMFg/JKeOzAGKCHmaE2fbRQhEIJCVlRngqF9V9nN 92z2cfJsBIRLrfy/Cdrvm8xPWMzKL0umjz/VzK9uljohT430dW7rv2M/Ql1+PNnQO27r E6pN+kpNHm4XzSTg/eCAKT0G/WeBsI4Lr5cki8VJdeOwQl9/fF9Ss+lJMlP0kRX+0J0S Hzag3XPNEc14yY7GkUIkbiW3GBlrm7eiRV9ghOirIEAAl4NjPmScsUK4L+V9cdpk9sX1 QKbg== X-Forwarded-Encrypted: i=1; AJvYcCXf4TFLhZHzNfAr3iBs7p7r6ZdxQxagORgAyL18QfL0zL9eMjasKywRcyws0qLPyoJ+lvLU7oTbbL5Dh4u+GJZyNTF1pS08mwlRUb8r21a9uWQ0TFg= X-Gm-Message-State: AOJu0YyJPD4QDi+R7q9mpRPx9sLy7ILes/V0DazXermT9Bm8KngeiVvO CJmCflMyKA7S66uHsnUzwjQLo10E1rGCOrVTdCVHcRYM4JvLsgI/fpR3KWDVoUop/HbkH8cZnHu /G/plCw== X-Google-Smtp-Source: AGHT+IEWALptJNVip01y1rVwK0rhc28W4Rx/uGav2zwXL5e2P7GlQvYhrejiAYPPfwiLQM6W3tkvBTbmc7YC X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:1241:b0:e02:b48a:cb78 with SMTP id 3f1490d57ef6-e036ec5a9fcmr390276.12.1719636888387; Fri, 28 Jun 2024 21:54:48 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:40 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-19-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 18/28] perf annotate: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215450_877442_26811B82 X-CRM114-Status: GOOD ( 13.44 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-annotate.c | 42 +++++++++++++++++------------------ 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index c0685d2c8de1..598ab854b9f3 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c @@ -686,28 +686,7 @@ static const char * const annotate_usage[] = { int cmd_annotate(int argc, const char **argv) { - struct perf_annotate annotate = { - .tool = { - .sample = process_sample_event, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .comm = perf_event__process_comm, - .exit = perf_event__process_exit, - .fork = perf_event__process_fork, - .namespaces = perf_event__process_namespaces, - .attr = perf_event__process_attr, - .build_id = perf_event__process_build_id, -#ifdef HAVE_LIBTRACEEVENT - .tracing_data = perf_event__process_tracing_data, -#endif - .id_index = perf_event__process_id_index, - .auxtrace_info = perf_event__process_auxtrace_info, - .auxtrace = perf_event__process_auxtrace, - .feature = process_feature_event, - .ordered_events = true, - .ordering_requires_timestamps = true, - }, - }; + struct perf_annotate annotate = {}; struct perf_data data = { .mode = PERF_DATA_MODE_READ, }; @@ -864,6 +843,25 @@ int cmd_annotate(int argc, const char **argv) data.path = input_name; + perf_tool__init(&annotate.tool, /*ordered_events=*/true); + annotate.tool.sample = process_sample_event; + annotate.tool.mmap = perf_event__process_mmap; + annotate.tool.mmap2 = perf_event__process_mmap2; + annotate.tool.comm = perf_event__process_comm; + annotate.tool.exit = perf_event__process_exit; + annotate.tool.fork = perf_event__process_fork; + annotate.tool.namespaces = perf_event__process_namespaces; + annotate.tool.attr = perf_event__process_attr; + annotate.tool.build_id = perf_event__process_build_id; +#ifdef HAVE_LIBTRACEEVENT + annotate.tool.tracing_data = perf_event__process_tracing_data; +#endif + annotate.tool.id_index = perf_event__process_id_index; + annotate.tool.auxtrace_info = perf_event__process_auxtrace_info; + annotate.tool.auxtrace = perf_event__process_auxtrace; + annotate.tool.feature = process_feature_event; + annotate.tool.ordering_requires_timestamps = true; + annotate.session = perf_session__new(&data, &annotate.tool); if (IS_ERR(annotate.session)) return PTR_ERR(annotate.session); From patchwork Sat Jun 29 04:53:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716799 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7DEEDC30653 for ; Sat, 29 Jun 2024 04:57:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=xU2ePkaYwaxsMEC4nCf5nFkpnVScQ7Rq2Qy7spzAkPI=; b=zMaRrRW89l+pGIfnokGrjFdn7n 1eU3B+o9IdzRwM9nTlERmjzoi0eAbMhVEeU01wYbjHVc9ZevN7suxle9lH+sR9hZTLFqYJYoIZmZj en9GxRMXHX/Fa6txsLYX+QHaJhWEJR0IGVEOAgltkzvjBd8IwIYZBGn53bRGvplwMWAzkN5f9xKgd M8F5esG4dFgLHgpbqzCOydLLFXfJVlxsIbfR8JE/zi8SpNi8tIeAEPU7HhHRxCkBv0wi/V+9NNUeM 1WHauglo1RveNQPStzWi7D4jttl7YjWDd/LoNRBrsauRrsiz/csfsG1rtr0TsfyuTuXN4mI4EoSsG 5L7p9/kQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ9G-0000000Fsax-2UhT; Sat, 29 Jun 2024 04:57:18 +0000 Received: from mail-yb1-xb4a.google.com ([2607:f8b0:4864:20::b4a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6u-0000000FrMw-0qE8 for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:54 +0000 Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-e035d85f403so2076760276.0 for ; Fri, 28 Jun 2024 21:54:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636891; x=1720241691; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=xU2ePkaYwaxsMEC4nCf5nFkpnVScQ7Rq2Qy7spzAkPI=; b=XVaO9MAnxTioRSdAu0FllA5XvXIcM3M7a0vZ78VC1zXxOnoqq9D81kCgkLvlGznU8X Qb6ekbftI9Bocrpk8fTwBfWHZvsJhblQzJ6KSJS1PWpubIoO++gcMpK9PV2yAY8PsC8L anLZL3W7tN6UHJevULX8IHv4Awt//yrFbeI/1J/qDUKUZCjyqRtoD72KVu8szkM+6i5w kFGloQyTAaNK5+R+HxdJHKoCzfqeypUVdQuueF/lAqALp+nM8xHuRtgaNSxzGy62HtQ6 DeARysWHYi2VJwCFiMtRNV+/h/5qNHKHAKzefSdFA6VOARgbao6eZZSFRGt/+nEqvlcZ oLwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636891; x=1720241691; h=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=xU2ePkaYwaxsMEC4nCf5nFkpnVScQ7Rq2Qy7spzAkPI=; b=qQmjsOBAlTTRDwGh6U6/B5DC6g2JGl65Qezvp9FFLpMIsdckEGC4lZtvNomMdOpFTr jmH4IpiTszNKtqB3ON/dDGdvuTsJ9PbMUVrg+QlMGLfqhWBcC+tR8Q+i7f3BugxYgJX/ AT10dlvzSviOmcta1P2Rsz8JbfZqlQEYJTjvzzzCfZoYEonUCgOky7GrhKs8HE6EdIqU XFxy+X9bjJlkLQOlDH/T5cy158wIu7lKyuJXnGMT/qGKM+E0r5iRFelq0pE9ZtKnvnmb ApHO3Vbvk6KPNK91dypSyDgMyVA4SlJttPLHExHHGeU1tbaUKvaSjzgef5tUeOmAkFlW lygQ== X-Forwarded-Encrypted: i=1; AJvYcCU1gZpDGKwbe2ehWT0jRLG3NPpRPgn2hTO7VRyt+cHLZIkbFKytvfksUdPMp/XZmVsHsFbBuQVSDpEooaP3FuluY7jzWA0cqfiNSiZYSfNZCRdB/XM= X-Gm-Message-State: AOJu0YxukM+sQ+HCGKswM3FmDyXOZeHGepdNqmTsJrmwGY06e4u5VoTo psSRV3A5+qcMbN0yOu9VRyiEbittBMwmKuvUJGrJnEK6XUmKYLy+OWtMoOncvO8dFDjoL7ChAPQ i9uhBdQ== X-Google-Smtp-Source: AGHT+IEEzCHRAXRjWuifRznTNR+xXUr1B6FYJ/XrEjcgKBjsRIQ7SVEp4zOMvCJbSvzApWprz+jwV/4JbeL7 X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:1244:b0:e03:2bfe:40c9 with SMTP id 3f1490d57ef6-e036eadbdb8mr579276.3.1719636890559; Fri, 28 Jun 2024 21:54:50 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:41 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-20-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 19/28] perf sched: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215452_287796_B638DF49 X-CRM114-Status: GOOD ( 12.28 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-sched.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index 2d24250f60fa..2b227b01d64b 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -3013,7 +3013,6 @@ static int perf_sched__timehist(struct perf_sched *sched) sched->tool.tracing_data = perf_event__process_tracing_data; sched->tool.build_id = perf_event__process_build_id; - sched->tool.ordered_events = true; sched->tool.ordering_requires_timestamps = true; symbol_conf.use_callchain = sched->show_callchain; @@ -3511,14 +3510,6 @@ int cmd_sched(int argc, const char **argv) { static const char default_sort_order[] = "avg, max, switch, runtime"; struct perf_sched sched = { - .tool = { - .sample = perf_sched__process_tracepoint_sample, - .comm = perf_sched__process_comm, - .namespaces = perf_event__process_namespaces, - .lost = perf_event__process_lost, - .fork = perf_sched__process_fork_event, - .ordered_events = true, - }, .cmp_pid = LIST_HEAD_INIT(sched.cmp_pid), .sort_list = LIST_HEAD_INIT(sched.sort_list), .sort_order = default_sort_order, @@ -3635,6 +3626,13 @@ int cmd_sched(int argc, const char **argv) }; int ret; + perf_tool__init(&sched.tool, /*ordered_events=*/true); + sched.tool.sample = perf_sched__process_tracepoint_sample; + sched.tool.comm = perf_sched__process_comm; + sched.tool.namespaces = perf_event__process_namespaces; + sched.tool.lost = perf_event__process_lost; + sched.tool.fork = perf_sched__process_fork_event; + argc = parse_options_subcommand(argc, argv, sched_options, sched_subcommands, sched_usage, PARSE_OPT_STOP_AT_NON_OPTION); if (!argc) From patchwork Sat Jun 29 04:53:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716800 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DBE6BC27C4F for ; Sat, 29 Jun 2024 04:57:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=NfKlTlSCL2wXPfCkyXXt0BLFWNYsoBhoMOQYtSMfZQY=; b=bmocUeZeKeXFi4GBKisXhKRawP U2WYiciGVmAfLGvHXpDk37TdyM4TSPGmWJhjD0pcq0d4OxO+y5zWsdnxhMLavAw3gHywGX2FXEwgR 6E1P7B/n7nmzRZlYsB6v/ddKLXeK82sWJ5BGaWMQaD9S/uvMQPy03724olkBWITvZUQe27RP7Z+3k bSdK7y8LZBg+NH4jy0HLzvHoEsH/ylIhjTe2ijdMytlRli9LiKyCgGKrdORFkxyOPmlOW/mTj6+9E 1X8lZU61Y+JVIIRza1un8f7ChmOy3jB0snFxzKvhyhYQpCzM9Wtm1ycbWZ5gr9sIADRUa5D0+76zQ abkQetgA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ9O-0000000FsfG-3MRM; Sat, 29 Jun 2024 04:57:26 +0000 Received: from mail-yb1-xb4a.google.com ([2607:f8b0:4864:20::b4a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6w-0000000FrOH-0fy8 for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:55 +0000 Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-dc691f1f83aso777741276.1 for ; Fri, 28 Jun 2024 21:54:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636893; x=1720241693; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=NfKlTlSCL2wXPfCkyXXt0BLFWNYsoBhoMOQYtSMfZQY=; b=3FRoKHBf7BE19vwTaT7OAhpeIXl6Twzmxajh5Aa1bhvTNjTha8XdYB6b8GK4vtyYkN slKsf5x631DVFMcvyDsu0zbYKmzndIOnVnAJiVL1PcWpSAL5FmHxSsI7om/guTSr1RDs vybQ+EykedVVE1jHUwwzQw+F6rY9iZVbZohkM+2mqTZqyYCCAcUrEeFTZPmRMV69NKwF PURQgfyLQcfioE43trsNHjdFQIrU5qAw9qzsGRhhKphXU7n+WFhK6bLei71vslkN7B9p cYonemgDtNqFP4hK9WiOg9gm5CmAm2N7Ww5+YzKcA2e1lfHEfqJA88kjJsSsaqbJtU9J +ECA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636893; x=1720241693; h=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=NfKlTlSCL2wXPfCkyXXt0BLFWNYsoBhoMOQYtSMfZQY=; b=GbYFntvxs8VLRH4tIo/NmlBcjGxrHQor0zgO2Ij6T/cbyq16Dwlu1EQ1CdQhGHAjTa UXipQy4IIMroMisnawKo1PxD0BOvIoy2H+djnlURQnwfWR+MoBOxcax73eTl5FVLEmmL tMD5M+z+5Ga65xFGqFEHpxQ9dk0p4IOkBdPAMpBemXH3ar42BEGOKI1kfouOMccrXOSw 49ZE85lXDMph9GdwDO1cx2nq3lQHgC4RdzRZBMRj90RgVIcyI6zrm2wCuHlixxPuiZFh 4tdb8R7KwxxT4Naij7VbSlJ+rmLZv5bLibyHPQt8R6aE/++66+zlm71Ppfs2qqiCHSpS xbEg== X-Forwarded-Encrypted: i=1; AJvYcCXrQp/kaUMU8xrBmYy1Q99mPVxH2TjH9xfWLW1KaS51AAUa3Ic7Pw4jU0anTEBF1ORnuvsqXd7lIiLL/uXbV51uui8h6vNeqfgPljlv3cLvbb7/zXg= X-Gm-Message-State: AOJu0YysZ/s986MXvzSkF9WHEvl8gNFsx9nB8KDrO4QQCpqB2LzFfAXx E2GEXYM+YU30fOxVwFozQY9jTfemptJHiCfvKMePatbqXOk/JcG8bh6h3Z2zCZVws3FK2VkknyT mRfSu/g== X-Google-Smtp-Source: AGHT+IE3hvUi65nhptsIwThb+FEiJVyGB6CGhV5lHcENJmfmi33GBQd2LxbemtNkGqQcGwOe83UOXGl8G96S X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a25:ae83:0:b0:e03:6445:8ca with SMTP id 3f1490d57ef6-e0364450e73mr75710276.2.1719636892995; Fri, 28 Jun 2024 21:54:52 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:42 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-21-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 20/28] perf mem: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215454_231715_9419DA13 X-CRM114-Status: GOOD ( 13.44 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-mem.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/tools/perf/builtin-mem.c b/tools/perf/builtin-mem.c index c2038a32543c..c12ca0ec1237 100644 --- a/tools/perf/builtin-mem.c +++ b/tools/perf/builtin-mem.c @@ -285,7 +285,23 @@ static int report_raw_events(struct perf_mem *mem) .force = mem->force, }; int ret; - struct perf_session *session = perf_session__new(&data, &mem->tool); + struct perf_session *session; + + perf_tool__init(&mem->tool, /*ordered_events=*/true); + mem->tool.sample = process_sample_event; + mem->tool.mmap = perf_event__process_mmap; + mem->tool.mmap2 = perf_event__process_mmap2; + mem->tool.comm = perf_event__process_comm; + mem->tool.lost = perf_event__process_lost; + mem->tool.fork = perf_event__process_fork; + mem->tool.attr = perf_event__process_attr; + mem->tool.build_id = perf_event__process_build_id; + mem->tool.namespaces = perf_event__process_namespaces; + mem->tool.auxtrace_info = perf_event__process_auxtrace_info; + mem->tool.auxtrace = perf_event__process_auxtrace; + mem->tool.auxtrace_error = perf_event__process_auxtrace_error; + + session = perf_session__new(&data, &mem->tool); if (IS_ERR(session)) return PTR_ERR(session); @@ -449,21 +465,6 @@ int cmd_mem(int argc, const char **argv) { struct stat st; struct perf_mem mem = { - .tool = { - .sample = process_sample_event, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .comm = perf_event__process_comm, - .lost = perf_event__process_lost, - .fork = perf_event__process_fork, - .attr = perf_event__process_attr, - .build_id = perf_event__process_build_id, - .namespaces = perf_event__process_namespaces, - .auxtrace_info = perf_event__process_auxtrace_info, - .auxtrace = perf_event__process_auxtrace, - .auxtrace_error = perf_event__process_auxtrace_error, - .ordered_events = true, - }, .input_name = "perf.data", /* * default to both load an store sampling From patchwork Sat Jun 29 04:53:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716801 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E0CA7C27C4F for ; Sat, 29 Jun 2024 04:57:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=D520IbA5iH9wzM7pzjt2vV2BsWgfCNVquMDfYzdLQl0=; b=qQO4tBlxjyKYVE4gSGQaU/G1p8 zlC2xkjPEGrf+mMWwa3hsJbWGGa5KHqOO/M6BvzbNB2YrgBGpf3YT7p/EFmZjt4WHphHbjcTOMoYp zwluDzhd+A7mRIDDc5rt13/5eTx9JWAiu4BDUx2wt3j/ThUeeQhssirt2VFC2Eu4i4mVDcMesCr9f pUC8XSXNfcG53zI/M5nG9kuBmi8bnebtOIVJmNLuml8qvaR9xNOlOSggels/xJiEBkSCJxvpPVBII c2joKtub8bwoOqVEwP8lfWjCsbWNRV+CcWocP9UpZeizqZoZM5UhCrvHuQPUzF8OLalwyvyXNasT3 BhkC8d1g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ9Y-0000000Fsl8-10vV; Sat, 29 Jun 2024 04:57:36 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ6y-0000000FrQt-39Nh for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:54:58 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-62d032a07a9so22250267b3.2 for ; Fri, 28 Jun 2024 21:54:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636895; x=1720241695; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=D520IbA5iH9wzM7pzjt2vV2BsWgfCNVquMDfYzdLQl0=; b=PZT/CV/ONHa1f7QWkwdS57He3Mv67k8LwZqQQbcQeKB9UWfijprY9FS5ksTmWW27SQ CKWO71TKXdk4EnQndxQLo5N8p0kvpSgDtQPyyCmOIA1+pKj71FznIP2wkHZuhLDm/TrE AanFT+pITqcsaMM46sEovAnmpwKA6Ur/8N+ndk+pbVjTHwCxFWGCQZq8kvDbbUQpiqft d3/wkOMgrI4Ylqw1aJFXxTKn2jVxsF6N9wqUTDpYJSwEpGIGY80n33p1ae/sHhrP3u5a wHFTy1YYVGFSEMt2V5m/Gu/CwY5/mLJsUbtoupY5i63j0TkGOd9smnNGNgRLTzwOrpzb ysRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636895; x=1720241695; h=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=D520IbA5iH9wzM7pzjt2vV2BsWgfCNVquMDfYzdLQl0=; b=IGdcI7yfi19aRteWTuSCYP4Y7EOiLrTI5IXjfjz0uyPZTr1X/3bjZdONmZxOJZ3Xp4 56YT9vw4P8QgCTSwe9E4a/dQX2VsZ7oz3fJ+phFwjg6ovsKR5p3h2Na9KWTDe+bhpiiH lTuMJ806Wabs9ZYcihU7CKaufiiVF3yIhVC5Q9NpGzL3rka3oG8Z5zAu4mylNIIByjlh sOYJLkcAkQjOKkhDEZiOwzKZtQ7TFNvbvJTlrusxFo/QYVtfnz9dyZKfb7wgdzevUWph Yrew7OhX3VSwa5owSep9wseTDJwnezxj2VZGIlLpTEz+tQQia/t4tvImwraW5eysTdQ+ ZqWQ== X-Forwarded-Encrypted: i=1; AJvYcCXvxb3kv6XfRRzOuO1e4aBh+3jrL5DrGMVP2A8D3G9EK+fMPq758GIYJOiufdlIotcNBOq8+X2WCP5FIyuOAiUTnSf8MV0/BgqedG+HTNQUjGsdnq4= X-Gm-Message-State: AOJu0YzqDTFs5UYNOc2zQjkzU06GQiiiRB/IUAgeenJjHFoKaZNl/QGV 6WnpgXM/dvRT02ObvCohpB5ukhOjuit4vAdlAZlW8FhIWv35+4ZHkNFj9Z48XJnLZw4mDXqww9W 6oib+Ew== X-Google-Smtp-Source: AGHT+IHjGkctfrVaKHMf/S834AX9dLiEQUic95O2Gv5HigiTwS0uZAB3cdGsyXp40ykIKZIfie25wbvv2JJg X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a0d:e885:0:b0:61c:89a4:dd5f with SMTP id 00721157ae682-64c72b5434amr127907b3.0.1719636895234; Fri, 28 Jun 2024 21:54:55 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:43 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-22-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 21/28] perf timechart: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215456_834420_340584EF X-CRM114-Status: GOOD ( 13.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-timechart.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c index 5bf818baa662..218c8b44d7be 100644 --- a/tools/perf/builtin-timechart.c +++ b/tools/perf/builtin-timechart.c @@ -1606,10 +1606,16 @@ static int __cmd_timechart(struct timechart *tchart, const char *output_name) .mode = PERF_DATA_MODE_READ, .force = tchart->force, }; - - struct perf_session *session = perf_session__new(&data, &tchart->tool); + struct perf_session *session; int ret = -EINVAL; + perf_tool__init(&tchart->tool, /*ordered_events=*/true); + tchart->tool.comm = process_comm_event; + tchart->tool.fork = process_fork_event; + tchart->tool.exit = process_exit_event; + tchart->tool.sample = process_sample_event; + + session = perf_session__new(&data, &tchart->tool); if (IS_ERR(session)) return PTR_ERR(session); @@ -1924,13 +1930,6 @@ parse_time(const struct option *opt, const char *arg, int __maybe_unused unset) int cmd_timechart(int argc, const char **argv) { struct timechart tchart = { - .tool = { - .comm = process_comm_event, - .fork = process_fork_event, - .exit = process_exit_event, - .sample = process_sample_event, - .ordered_events = true, - }, .proc_num = 15, .min_time = NSEC_PER_MSEC, .merge_dist = 1000, From patchwork Sat Jun 29 04:53:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716806 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 36CBFC27C4F for ; Sat, 29 Jun 2024 04:58:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=0v3fokev8dqp3wp/KzvIIEo7fWRsPgHRVVSDRon34u4=; b=pmGyTdXWFdUOPxhk94RzR+MuQJ tUauTyq2xVGCFAIzmyu1xS8yyyKjDUSp1VA7ntuIhXJe/rVF9DA+ljbaG2TF5bygQQUKBQ08fVLCe I4bH+W7fiEnHpMGQodROr6CnYiySWCKGwSd21JHUbsGsmCz5KTUs2biz7rm9Io6RnsB423n2brza/ pC64Z40p4emTRsQ0eDb7E/Gv7KzXSyjG5AlaLH81sbQ8WIOsNif0Z/HKZUMtoXwf4kQOiufVqpzgS CsHQZAvaVCrsIbWKfRFIlrNFsqmpS2hsLO67Fdvo2ii+CuhI0EzEHRHupF++K1rjb07pBrXFzkXu0 lRa2OoZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQAE-0000000Ft9G-1wuf; Sat, 29 Jun 2024 04:58:18 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ71-0000000FrSh-08fF for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:55:00 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-e02b7adfb95so2311687276.2 for ; Fri, 28 Jun 2024 21:54:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636897; x=1720241697; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=0v3fokev8dqp3wp/KzvIIEo7fWRsPgHRVVSDRon34u4=; b=XQ3/O5zsOy1xJZYKRLW6PGIHxb/CTTAOGmRjUuTzitrCrwEMJkrNnjCMNq99OBGNDm DFq30zstZ6lVhspYMzq/iIWV+5laKviSpOMpwFnnNttNgMun6hxKf0ZXsTHvcc/5NWkh SnaXbYkIlJiEg14hj50wG9OE7kNy3j39ha9sFFjgJpdqkkQuOGkUAktyMLQxHlCbI8sq SRRGQvX8UCtcuOHl/B4wOnfAYqScFGCmNusGYBgWe+nbzbhnzwP96l5+CFgyURrTLmA3 wsNJ4rswWqwpPX7eg6jBwiIPr4QrMnI7sF0OqfpSSG/IbFPLhtxBmxpEKdnUAj+9sVwS xipw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636897; x=1720241697; h=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=0v3fokev8dqp3wp/KzvIIEo7fWRsPgHRVVSDRon34u4=; b=hLolIx99gIz8q1bOo3otPCXs6k58RWPQH9LFTMR95H6ElE8u3GnDgXDrgdWuYqXXNA ru4D4h17Ia5FNR/dfYE5Sg/YikVOrFJiqU4Qaqzz6zcqMi4InqsmAvYYLgtmFFps5H5X hLqZokVhUVDGJXUXuLppWelA6qIqLbbYs/It5ThoWsAEXvhNbwgCfn9bPR0bp9x5rvSW BbFSjEF60p6dzeWCEPj5cUXmWXXmrlgqG71LpsIXc+xHp4wjE/gjKXncLNGC+NtyRUbY 3zgEDl9A+geERdDRTDoU1iWCNqEO8hNxj1TxcXi2gel06M6/r9TG99ewn8F1vqwFvN/h Ba+w== X-Forwarded-Encrypted: i=1; AJvYcCWucSkly6o3nMHx5g4ZKKIq0150sLAqhRNMhtBVdJrfWQJ3/hedCwl39VREipj1lv+1Bxmw2ZFw1u2SscJ4gZPdAs+BfwkhkJUlKo8uHmNM8flSo9Y= X-Gm-Message-State: AOJu0YyYr3t06692xNEgQnDf0geBBK3NDvinmamHDA22nSWxpSV++rCn 71RO+FM7sMNYOaef4r/aqXhwC6rekdN9x+JtW8dR/9ix/xucMnEn41AZp2e4H4XQ14Lcm3lZkbz 86v1uKw== X-Google-Smtp-Source: AGHT+IFebbTbrBD46jrbbAKmEiQhr8CIpwzw2fa35jGiBLO5MmgTjOTYHAA/dOn6kgN3PXW8P1kNAUf1baWR X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:724:b0:e03:31ec:8a24 with SMTP id 3f1490d57ef6-e036ec2e117mr860276.8.1719636897584; Fri, 28 Jun 2024 21:54:57 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:44 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-23-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 22/28] perf diff: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215459_121743_7969AB1E X-CRM114-Status: GOOD ( 13.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-diff.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 4c0567882a7a..28c5208fcdc9 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -467,21 +467,7 @@ static int diff__process_sample_event(const struct perf_tool *tool, return ret; } -static struct perf_diff pdiff = { - .tool = { - .sample = diff__process_sample_event, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .comm = perf_event__process_comm, - .exit = perf_event__process_exit, - .fork = perf_event__process_fork, - .lost = perf_event__process_lost, - .namespaces = perf_event__process_namespaces, - .cgroup = perf_event__process_cgroup, - .ordered_events = true, - .ordering_requires_timestamps = true, - }, -}; +static struct perf_diff pdiff; static struct evsel *evsel_match(struct evsel *evsel, struct evlist *evlist) @@ -1959,6 +1945,18 @@ int cmd_diff(int argc, const char **argv) if (ret < 0) return ret; + perf_tool__init(&pdiff.tool, /*ordered_events=*/true); + pdiff.tool.sample = diff__process_sample_event; + pdiff.tool.mmap = perf_event__process_mmap; + pdiff.tool.mmap2 = perf_event__process_mmap2; + pdiff.tool.comm = perf_event__process_comm; + pdiff.tool.exit = perf_event__process_exit; + pdiff.tool.fork = perf_event__process_fork; + pdiff.tool.lost = perf_event__process_lost; + pdiff.tool.namespaces = perf_event__process_namespaces; + pdiff.tool.cgroup = perf_event__process_cgroup; + pdiff.tool.ordering_requires_timestamps = true; + perf_config(diff__config, NULL); argc = parse_options(argc, argv, options, diff_usage, 0); From patchwork Sat Jun 29 04:53:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716807 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D473CC27C4F for ; Sat, 29 Jun 2024 04:58:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=n6yEyi/glyHe8pWjJ+W5oLG0v6fQ7RZJQWnowp0gj9s=; b=miy1P0szrNg2xALgeX7cTubyrG XYmUO/ONnwC6JdYMwPCqJDZ1ffElgtyQOV0WnSaul2qnKWbCDWliLCQISmJFK7MqY2BES/TBnOWCX tX+mrbw5tpSdwteub+0Hw+AImCYqVAVeudHCkm0/87X7lrSxyJxiKepI5+aDcPoJ7rgOVNTvaMdz8 5A51kgAJvlbt0xA0Q5XlUUFVAti2uWcK3QeOtwmoEGXqC75ZCM/nuLKcJz+BuU6faDc6IF2MQXShn a0ZMGZe2KguOpUjX0a54csMzy5DYTlVDUpOPk93szRvvpX4Cbyx5WJsi/2kj/MZQo/To2d/B9VS75 QD2v8VlA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQAN-0000000FtDq-0A0e; Sat, 29 Jun 2024 04:58:27 +0000 Received: from mail-yw1-x114a.google.com ([2607:f8b0:4864:20::114a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ72-0000000FrUA-3xhU for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:55:04 +0000 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-62f3c5f5bf7so21128777b3.0 for ; Fri, 28 Jun 2024 21:55:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636899; x=1720241699; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=n6yEyi/glyHe8pWjJ+W5oLG0v6fQ7RZJQWnowp0gj9s=; b=Lrr3Oh/cf2N2RMZR6sdL3Nkl56nWmPop7auW8hDSQB2cO7Z6CZIQj4zXm4qkT79WOt QBCIkRp5iOAHX5do5sOJLwhZkg8mA1etBAiryLChROLoPzvbRwTobEo7kLHvzUy2gClx nHL1Ki9u7frnhC4oJFJYiIe0JTdXWg70Iam8NvPHwAwyeAX63k1OvWaCj0Cx6stAXwEe kbmfZgsrG5Dw/SyMdb0tBYuWK0aXgby3rVD7oWTmG/4QLworganAKYeY1JvoZCiuJ+KT gwWeMOyLINDEW495GBlV+EJMOhADx0rn/WGrWnazeCcVcB8J0Lf5g2WsQqEbR+bfQGb4 yubA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636899; x=1720241699; h=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=n6yEyi/glyHe8pWjJ+W5oLG0v6fQ7RZJQWnowp0gj9s=; b=nFZOjgrdR/Lumh8xWJGeiNLnS6VSrZAV38y683KeCYKS7xvrh3+9D5P7XHmtclaKJ7 usYZfr2KGoFPDjYvk8F4weF1LeZFFaXFV2xv47qkSE+PgqUXuKHw67dbMxZ9V9EtYYZm jCy/Ih5Z6g5timuVyHC2+O2dk3xk5ZY82kvVPol4t0w7bj+ZadnAmtx4fJjZQ865czKn cHWRsC9zGA9IwftqWhtP1wdRU3L7PuGNWKcEqbmhrhQrwj+YKYoFSf5aAc5619nsJE8o c3Xl66ER67qiqgdJqfgKtzs92PGXOKP7fQbveGFhAEPJNmML5Z7vmuaIRKGWgULwCp0N cFkQ== X-Forwarded-Encrypted: i=1; AJvYcCWchyPh4fyPEAy0/Gn+LyDLDRZLhS5q5BfefoqVrSOk8GL7oQ6F8U/yW7cD6o4wzclbZ7dR63XEvQN0LEh4REJpYA4+zzkjG1AEd48TJIXk+V5wm5Y= X-Gm-Message-State: AOJu0YwVWIren7YndijtZyThm4D8AIRBDuYQcKiV6T/EvToZvPTY4XJ3 sgSxj2xgigigOerdMXPm9hxYLncEdWYw50KITHih0X+Xzi0NLwdNUggzoeZl/Pqpzhdyzzc75sB wfnes8A== X-Google-Smtp-Source: AGHT+IGtfrZeP5PYTGGfKv+9uFwUUxybvKRI3Ehr0XzH84CTB3D94s32GM5l3MralwINvpyEQI0nBApiDALo X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:1142:b0:e03:3cfa:1aa7 with SMTP id 3f1490d57ef6-e036eabf996mr430276.1.1719636899526; Fri, 28 Jun 2024 21:54:59 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:45 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-24-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 23/28] perf data convert json: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215501_232795_763EA825 X-CRM114-Status: GOOD ( 12.45 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/util/data-convert-json.c | 43 ++++++++++++++--------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/tools/perf/util/data-convert-json.c b/tools/perf/util/data-convert-json.c index 905ea9823f9d..20bfb0884e9e 100644 --- a/tools/perf/util/data-convert-json.c +++ b/tools/perf/util/data-convert-json.c @@ -316,39 +316,36 @@ int bt_convert__perf2json(const char *input_name, const char *output_name, struct perf_session *session; int fd; int ret = -1; - struct convert_json c = { - .tool = { - .sample = process_sample_event, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .comm = perf_event__process_comm, - .namespaces = perf_event__process_namespaces, - .cgroup = perf_event__process_cgroup, - .exit = perf_event__process_exit, - .fork = perf_event__process_fork, - .lost = perf_event__process_lost, -#ifdef HAVE_LIBTRACEEVENT - .tracing_data = perf_event__process_tracing_data, -#endif - .build_id = perf_event__process_build_id, - .id_index = perf_event__process_id_index, - .auxtrace_info = perf_event__process_auxtrace_info, - .auxtrace = perf_event__process_auxtrace, - .event_update = perf_event__process_event_update, - .ordered_events = true, - .ordering_requires_timestamps = true, - }, .first = true, .events_count = 0, }; - struct perf_data data = { .mode = PERF_DATA_MODE_READ, .path = input_name, .force = opts->force, }; + perf_tool__init(&c.tool, /*ordered_events=*/true); + c.tool.sample = process_sample_event; + c.tool.mmap = perf_event__process_mmap; + c.tool.mmap2 = perf_event__process_mmap2; + c.tool.comm = perf_event__process_comm; + c.tool.namespaces = perf_event__process_namespaces; + c.tool.cgroup = perf_event__process_cgroup; + c.tool.exit = perf_event__process_exit; + c.tool.fork = perf_event__process_fork; + c.tool.lost = perf_event__process_lost; +#ifdef HAVE_LIBTRACEEVENT + c.tool.tracing_data = perf_event__process_tracing_data; +#endif + c.tool.build_id = perf_event__process_build_id; + c.tool.id_index = perf_event__process_id_index; + c.tool.auxtrace_info = perf_event__process_auxtrace_info; + c.tool.auxtrace = perf_event__process_auxtrace; + c.tool.event_update = perf_event__process_event_update; + c.tool.ordering_requires_timestamps = true; + if (opts->all) { pr_err("--all is currently unsupported for JSON output.\n"); goto err; From patchwork Sat Jun 29 04:53:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716808 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id ADC28C27C4F for ; Sat, 29 Jun 2024 04:58:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=QxE8zaj+b5/x1bVRBgpaGx+eOiWA4VqUOBFS7RhEkrQ=; b=FfcrbtpBo7kvYR78GX2xQNSxQX WdNKLYmbwiutgtKv0lBG6uE/GPMOHYUDT3A3LdcR4OZ/nDj4ps/6K/jqQAgNiQvg98r7Zg2pzAyxF qzSDIpWwlLRPraA1vJLdXmGR5F4xb9B/QtXYFLbYcAStZ63utwP7+dL+1z04moeoWj3E3yatNzIhm t9N5KfJTsX8Vx5x0TTtTSzNiXKjPjvyXk1Ivo7IZG1tyRqcFWYCvBLFCCBvRgg3paUFg2jwzaQHme 34diNlzle1W0OHEzbIZEP8z/utnzjSpupjGEChbreq+GJyvnE8eWXi0dQZHxAqLcmYubSNiZUdeYD VlVB6erg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQAV-0000000FtIi-17CT; Sat, 29 Jun 2024 04:58:35 +0000 Received: from mail-yw1-x114a.google.com ([2607:f8b0:4864:20::114a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ75-0000000FrVu-2bHF for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:55:05 +0000 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-62f43c95de4so21871737b3.3 for ; Fri, 28 Jun 2024 21:55:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636902; x=1720241702; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=QxE8zaj+b5/x1bVRBgpaGx+eOiWA4VqUOBFS7RhEkrQ=; b=UpKBDWIs2oZpgVMJzxSd3dUOOMsTpInsPRYp2G6xap6SAktTk5gbmxwNp3Mtka+7J1 N7cnrb2723aSllKZ5tH7StXvlnlWG63SIEBlbii2aPb9ZIF9HVMGSOdDhZkuMdbE3AmM oaolnOmSh7XmXK6LePo11/FuKjynBbfyL9YuhDU2jbpSDE3VNxCvEaSb8tchqZqFN2zt bjzoCaUXCJbzAHyXjC0kHtytD1YDrixi0U6vut/fPEJ5hGD2MsKAMcXVeulzZwtme6DS BOBfPoKV3m66fr8kkUdnPUkGpGfFVATpjd/i7nC7dYmnwGDGksqxOImefDPwHqBZO8d2 Aa2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636902; x=1720241702; h=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=QxE8zaj+b5/x1bVRBgpaGx+eOiWA4VqUOBFS7RhEkrQ=; b=lzezD+9uauV4iQBytRboJ/Tz9mLGL+dFzUZ94qhA3h+DPz5aNyx0v6/AQ+Bq1Bvo/K jz/xE3+LiUH/JXUpgHyRDJ+qeVrIPA15wXMGg0z0s/7kYrP7/GiZkTeupLWNAVhlw4dm inNP0M8VstZ16a0EWpyNPwHzwTTI+fKpBUWAuRiGCJLw9cH5Z65zPZ4n+SLNj7RJCzdD HoVaXRa7WL1xyqRDKZI/d86JEfxg8VVvvGipdKhJepHFtJ61Vn6Hg8ngQj8BXBW7Q8Zw iSUBqCNk4JKzq7OSyXjflK1U8EtKQaNArDK+fU0kMBOrCc/Gy8uuNU2mOB4xvFbig9bq jyUQ== X-Forwarded-Encrypted: i=1; AJvYcCUtz7vy9Mm1EcNNAuxKYLwYwzKASCY/gPgfBKPHIBcrziKgzzPJGAtWBNk/n2EE2Gts5mLMjYa5epNhSYu/DUgpn5ackhDk28QDXVGyLBiQKnMP8h8= X-Gm-Message-State: AOJu0Yy6SXqB8F1WhMhaqioioDCg5qPVf+flmsLdRZ0M21/v6G/JRulE gKOaOLeVVt2DPSpEkPeb12IHRkFbDJWgmhyc8s98sPb1UU974fof8xOyeMTygcqyo/4aj1dEC/B ymkDE9Q== X-Google-Smtp-Source: AGHT+IFYiat8zAOFqEhWzL8cJxNr/uK8cs0d5B+e6TJJDnVINuyMYTmdafGkH7qdb27g2EciP/a0Ubwb1XCu X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a81:83d1:0:b0:64a:bd29:c5cf with SMTP id 00721157ae682-64c711459cemr44947b3.1.1719636901688; Fri, 28 Jun 2024 21:55:01 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:46 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-25-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 24/28] perf data convert ctf: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215503_751066_5FEC787C X-CRM114-Status: GOOD ( 12.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/util/data-convert-bt.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/tools/perf/util/data-convert-bt.c b/tools/perf/util/data-convert-bt.c index 9e2170604b66..021e9b1d5cc5 100644 --- a/tools/perf/util/data-convert-bt.c +++ b/tools/perf/util/data-convert-bt.c @@ -1607,25 +1607,23 @@ int bt_convert__perf2ctf(const char *input, const char *path, .mode = PERF_DATA_MODE_READ, .force = opts->force, }; - struct convert c = { - .tool = { - .sample = process_sample_event, - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .comm = perf_event__process_comm, - .exit = perf_event__process_exit, - .fork = perf_event__process_fork, - .lost = perf_event__process_lost, - .tracing_data = perf_event__process_tracing_data, - .build_id = perf_event__process_build_id, - .namespaces = perf_event__process_namespaces, - .ordered_events = true, - .ordering_requires_timestamps = true, - }, - }; + struct convert c = {}; struct ctf_writer *cw = &c.writer; int err; + perf_tool__init(&c.tool, /*ordered_events=*/true); + c.tool.sample = process_sample_event; + c.tool.mmap = perf_event__process_mmap; + c.tool.mmap2 = perf_event__process_mmap2; + c.tool.comm = perf_event__process_comm; + c.tool.exit = perf_event__process_exit; + c.tool.fork = perf_event__process_fork; + c.tool.lost = perf_event__process_lost; + c.tool.tracing_data = perf_event__process_tracing_data; + c.tool.build_id = perf_event__process_build_id; + c.tool.namespaces = perf_event__process_namespaces; + c.tool.ordering_requires_timestamps = true; + if (opts->all) { c.tool.comm = process_comm_event; c.tool.exit = process_exit_event; From patchwork Sat Jun 29 04:53:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716809 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BEB2FC27C4F for ; Sat, 29 Jun 2024 04:58:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=noOlfQUa2/5XniX40b614TPnZq/cMjt6hUwCRNEoLZQ=; b=cRBXDLsIh9dcqgAMMl+7JCNWjj LOWJC9CR/rHIwVaN/elwj4XO3htdd+S8Ybl/k6tI9RNdwF9f1PxJVOay3+AH2a22YusUPaHuK9v+S vy9jTpCRgQWpuT02UyPXLX/dxNeQjvyeSTC8QQtxcaxKehU7jgVTIlH5fRNVf1mPRG45K5O6eBqMl vBbuCvYQ4wjBnq0bUv8U/r7s6ydge82zkj01/8qmsHby1hzmJh0TQgZQWcJV74oKZAityNTmCN6NO n8dNil8QHwjpt9Q2CfbOVhCTXGIJWycolTM73XuSFdzP06hLCEySQz5D1Ht/OMCLDWR98x+DA+wGH Rc8G/uew==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQAd-0000000FtNR-1yR1; Sat, 29 Jun 2024 04:58:43 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ77-0000000FrXh-2v4Z for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:55:07 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-dfa7a8147c3so2305647276.3 for ; Fri, 28 Jun 2024 21:55:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636904; x=1720241704; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=noOlfQUa2/5XniX40b614TPnZq/cMjt6hUwCRNEoLZQ=; b=DrB0yifIYq5Ko8SHURbfKsvyF1/zpfwyUfzhQ8rJShYbs65kdL8TVMtfv+gFXtyH6w DyeAppiTRlhaKIS9e47U9mGSQBa5kkT8+kuPBKagY72nSWRlhyhGDrK5sxP6mmqLjec5 OmaRrRN6DUUl0XftZjhYHM1ZjjNc7VbgOl4MWpj1Z92OuOWdsYne5EB/sRegLexjxPZ8 //p+TPW81hZvqBaGWgNRjhk1e6j4uQRd5rV748F9WArzJc6hzN77TmoJ4XoZa3zkVD1v yOtGuI2LmFyHP+qmPHDGD86hF5OiJiMllDz8yoxBc2yB1j7i5AejLvQhkh0CoU82gTzs H14w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636904; x=1720241704; h=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=noOlfQUa2/5XniX40b614TPnZq/cMjt6hUwCRNEoLZQ=; b=Iss8bUlSQytufvXOsWVTF68FGi1grFD5XR1tayB8Rq4igFWFm7KtmVfSGn76j2gcVb lxJf5ks8fgAjgJ41gxVBk/xJJFtGbW7OLuR9zzAKbbkcS11CVKSpwyBX4n1suC5Qw6CP 8Xjo2BMZuy5FSGc/3NLrWlQcbu/fj+EGhaf27MwzpaSQVTFOkmD+BgO2Y3vYZY0RCwPu 9XtmZzUEzylfprRUPQRTp+g06VII0FO6h4Yuf05GwkFqTGmGQJbH5HYh+B9756YOm7M2 HYuN8xY3MG+60QrLnVNitr5QMcR7m24KhEQq/nwnNz89ZkZ7jHC1HswkzOfOV7TksK6g +g7Q== X-Forwarded-Encrypted: i=1; AJvYcCXbQOhechn/nCKNVuR9qQbZPG7A69H9566i6T/Q/EYRHDAaY/Hm9a51o1lZG1FA3NvEHmuqsEAmZ97TK3vfpwc9CBjD3W2lpFQyeGJ9lOe5dxm5zig= X-Gm-Message-State: AOJu0YzGhGJP9+hb2SwUwuHLjOfgDGEnDfuU74W6L0Qelg60yymURi4q gLswTfGz1EMy8yubrkfUHOq8s/D4DFeDGMLtltYdU+WMUiTTDn1l2qGAhqgXHNPocUIdWnzTK37 +H/YadA== X-Google-Smtp-Source: AGHT+IEKYw++EBM3BOpjxqBCYOk7yHdmndAqP8d1uXeeoD7Shcgt85q+rgf6pDTYxLWW1zGq4YNyK5c40syM X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:1004:b0:e03:5d0e:7886 with SMTP id 3f1490d57ef6-e036f29783dmr534276.11.1719636904177; Fri, 28 Jun 2024 21:55:04 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:47 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-26-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 25/28] perf test event_update: Ensure tools is initialized From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215505_781809_01013269 X-CRM114-Status: GOOD ( 11.00 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Ensure tool is initialized to avoid lazy initialization pattern so that more uses of struct perf_tool can be made const. Signed-off-by: Ian Rogers --- tools/perf/tests/event_update.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/perf/tests/event_update.c b/tools/perf/tests/event_update.c index fdecad920f59..d6b4ce3ef4ee 100644 --- a/tools/perf/tests/event_update.c +++ b/tools/perf/tests/event_update.c @@ -103,6 +103,7 @@ static int test__event_update(struct test_suite *test __maybe_unused, int subtes TEST_ASSERT_VAL("failed to synthesize attr update scale", !perf_event__synthesize_event_update_scale(NULL, evsel, process_event_scale)); + perf_tool__init(&tmp.tool, /*ordered_events=*/false); tmp.name = evsel__name(evsel); TEST_ASSERT_VAL("failed to synthesize attr update name", From patchwork Sat Jun 29 04:53:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716810 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 00C3DC27C4F for ; Sat, 29 Jun 2024 04:59:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=tXeNLLIjOusU04UE8Hy39/PSXCvPCHHaHA66oarVl78=; b=MCbGEQvS2/7oQTE0iGKFfoA5mK 4LJWKFPLRSHHW4Om09YBDROsGRvjQMX3ikZNob04k47xRcR4FNF+UNmxQqaWRDccqUaeahS9JheRd F0m8JHivzBHr3q+6FILhbPwbYT6AnqetZXHz/AXGItFJvGtCqNoxRjtzi36nPyK88dyPxJtcsSznw TLGAekwN/GVxXLA+Wzya2eIJNTI06UGAakCwAeTepYMaW/qY91h2Arvo1hVEnL7cVXq11K0gWW4su yDHt33xgoUEOmNpEYE0KbuCo2xfWJBPTQLGGtkfEzS6Y3CxJWNJccnbslH5+kouj12v07wmSm0x3m ice6X9Xw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQAl-0000000FtSD-2L2k; Sat, 29 Jun 2024 04:58:51 +0000 Received: from mail-yw1-x114a.google.com ([2607:f8b0:4864:20::114a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ79-0000000FrZD-1cGg for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:55:08 +0000 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-62fb4a1f7bfso23209227b3.3 for ; Fri, 28 Jun 2024 21:55:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636906; x=1720241706; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=tXeNLLIjOusU04UE8Hy39/PSXCvPCHHaHA66oarVl78=; b=O082QPpNXt8TkQds/6bJx78PPfssliJ4nBPJqyFQNkNH3Oee2XSx6cqfCO9HP0rl8d 6hDNb2oJkmrE1t2B9/J24t9nm45PxzZ2oloVgm6c4nEGoyOHxM5MUqQOTpSvIexqFJli IRYUseL2Tx3HqmMrWWblRMi5GJ+AYXIo5B3J5AKR/BKA8JTisp2z0R+oPIiW/feBwnI0 sH1LIrR5N0qOlmjudWJDymd6q8Oi/7g4dI2qomIDAKpBQl+1eXEh3AX0qUSQGv0FmlQ4 QPRMjs0MnkFxQZO2A/G96DxfvyY59v/beu7OPFaoMDSBCbG4hmICZuyFpDXfzNavSXwe N3lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636906; x=1720241706; h=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=tXeNLLIjOusU04UE8Hy39/PSXCvPCHHaHA66oarVl78=; b=G/W8JDWJIx0cgTM2mb6gPXiBAXBxF08UqYM82kuyQhcH5mzovsZkvDgJDZfX+xeofy zLGxV5oBY29adPgSKqrwwYC1ZIcqKJska8Dn3JnwzsZsAkybQgidOQTxySaLJOMKynPk 3k3c8OZ4nHm6gHWj0GhZTmre9+VyTjVYUZ1Wz9mPdCWEJSZzxCq28A7mYONixvBCtpQ+ jnvvGD+myPArA+CmJixzC1y3rDtp20NTet8OigBEht+MfpETHAEtWBoXzhzqrdDxQY87 xv6ayYNm/kJo/jdgyRKdPwPbP6MPSZ4ZICvkppUa85HBJJfz2TbTVREuGeG7mh2mR2vK pIjg== X-Forwarded-Encrypted: i=1; AJvYcCXVSLDZIkf/Z0bGO7DKgrS4+DLsoNsRz4bicofTYyKLTQRL1tceTuB7POgVSkkF15YqNK3puuU9HLZvFT6wx1vllbiYyMf4TifUAnFRipVJ9ZefLpM= X-Gm-Message-State: AOJu0YxFayHEpShu0M4cwaWQpvR2nm3N/gOdlRbsFypq1Oq0dnlusYD3 M9H3b9AVsBW8wRiPc1mppd9YrrEY52kOD8NGMTy/8yU2jpw339EXNZAwRe1JAFFGsjQmt2gUXSF b2uQs6A== X-Google-Smtp-Source: AGHT+IElgs2HpFD5MWivgPA3hytPYyiaidrhsD3Cfduya8NVonmx78LKxebOFss3pklN6AQYkFlKfBM0tJNk X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a25:4a41:0:b0:e03:5050:acc5 with SMTP id 3f1490d57ef6-e036eb5cfc0mr1539276.7.1719636906221; Fri, 28 Jun 2024 21:55:06 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:48 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-27-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 26/28] perf kwork: Use perf_tool__init From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215507_556704_E7701E51 X-CRM114-Status: GOOD ( 12.61 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use perf_tool__init so that more uses of struct perf_tool can be const and not relying on perf_tool__fill_defaults. Signed-off-by: Ian Rogers --- tools/perf/builtin-kwork.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tools/perf/builtin-kwork.c b/tools/perf/builtin-kwork.c index 8ffaa80a2d1d..6a4281b8fd10 100644 --- a/tools/perf/builtin-kwork.c +++ b/tools/perf/builtin-kwork.c @@ -2322,12 +2322,6 @@ int cmd_kwork(int argc, const char **argv) { static struct perf_kwork kwork = { .class_list = LIST_HEAD_INIT(kwork.class_list), - .tool = { - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .sample = perf_kwork__process_tracepoint_sample, - .ordered_events = true, - }, .atom_page_list = LIST_HEAD_INIT(kwork.atom_page_list), .sort_list = LIST_HEAD_INIT(kwork.sort_list), .cmp_id = LIST_HEAD_INIT(kwork.cmp_id), @@ -2462,6 +2456,11 @@ int cmd_kwork(int argc, const char **argv) "record", "report", "latency", "timehist", "top", NULL }; + perf_tool__init(&kwork.tool, /*ordered_events=*/true); + kwork.tool.mmap = perf_event__process_mmap; + kwork.tool.mmap2 = perf_event__process_mmap2; + kwork.tool.sample = perf_kwork__process_tracepoint_sample; + argc = parse_options_subcommand(argc, argv, kwork_options, kwork_subcommands, kwork_usage, PARSE_OPT_STOP_AT_NON_OPTION); From patchwork Sat Jun 29 04:53:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716811 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 61895C30653 for ; Sat, 29 Jun 2024 04:59:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=CzceA3PnZIITcf46Xf33bNMRePSLAdcPAZsGB0bFPNM=; b=JMydBvGRiplLGUckgubjhYUf86 fh0lnQr5Zc2yrxS3PO1KfnW0RtwZ5P5A1T+/8k+avHx6kJINzwgALrnzcjfUIS9wbPiShPH5pfe/r BnJYv3WC2S19TKh4AD/RvUrH6NFwdG1XB/pNr+Cc7yt+2Cdib+kNvl+7PBQ0lj3iYvdZeLi7jgjgI UVsAMRKQ5sHswBsJYvKDnDMH5+/3SuGoHIb6ZP44Z7cLQ5BOS0n7wJUtql328yNcjWXi80ZsEztV0 vRlQr5e7OoQVwM1wlGJ9kIVKomGc2iOCyWSZuL+RYHJGGWesZaSX8LUEgsM3p1xBZkm2tY+HmcmO1 DGv10Xww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQAu-0000000FtXs-2T8L; Sat, 29 Jun 2024 04:59:00 +0000 Received: from mail-yb1-xb4a.google.com ([2607:f8b0:4864:20::b4a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ7B-0000000Frc0-3dL2 for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:55:11 +0000 Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-e03623b24ddso1776545276.1 for ; Fri, 28 Jun 2024 21:55:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636908; x=1720241708; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=CzceA3PnZIITcf46Xf33bNMRePSLAdcPAZsGB0bFPNM=; b=kYl7424nQUK5J2BvG0TzCt7vX9B/kTbdlNqRTepulgrJf88ir9eLb4YpDJOCnKj+kz J96xAHGZ9VBjnyxFqCvFDr3YxLRn1/NdkSVx+pgCw+oxZCFqd8eW+lif6MT0xoHsmV/Y kkHYIiacCy7WJBKwQjS6VhagFpBmU3AgwmgkwrqdLuC+jaMZbdmwXtzCUaWHdyTyoD5c pHbO7O6K+ygmcFPVcaUartN9ct/z4YYSHjyfFffPAnTHI3btVHCQIcoYgoU55B6OOm91 aCsBWzQrfb0My95mcC/vwlg0wt/a2uxQJoFEE2fvywMvVExJMKZpMbKuOL6uA7SVrPEh vVHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636908; x=1720241708; h=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=CzceA3PnZIITcf46Xf33bNMRePSLAdcPAZsGB0bFPNM=; b=Pw5C/rh+ux6D0brDfk+TjZ4V32gywE26mmSwWZzBIzqhl1KLxI2lFcT4pJZOXVPi2q bsxhXhqVJP9dBNbj9O7Haw63GtA5/uS04ube0CVw/JxyX1vSf+ET7M9mTUczUQP347XG FtzW+MvMsDAUyU9K6eYLeXFMGkn6mJ2jzn/grOA1FmcvyiDAVceXMNWp4RuwZg37qo0n ZhGh6siaxcQHQJsIDAH6OLjSFVdtgLHgw7rOJylQMYNE0OzMPxUlY45i4KjNEHIoEdbQ ETfi8Kc288JvhU5LzwxXB2WWjvm89V6EYLwekGLp6b3kJSe1NAt94lji2UvedqzAngx3 mRzA== X-Forwarded-Encrypted: i=1; AJvYcCXAobh+GXf6MBLvvosOccnpRfLZ54HMv/KcMsDib4P0e8VtCzw4t4MDl5/IV6cmq/BcB1zhsw2eZJEAmKnw2fEgdGnvtNGShOyWLcRPkq90DGb5GhM= X-Gm-Message-State: AOJu0Yy7egJRxvR7ppG+C6FKpkYagpMcAWLocD5DBotQrdokjx06cPMg Yu92S1Pw3tFEhUgha7qgh3S3Si7dFuGAGEPhAnx5fRlepcwlzHoBUjKT5auMH8uqh0RE32+D/LL oCRJPYA== X-Google-Smtp-Source: AGHT+IGF/SJXJ/sR+JmKyUtE7KPOf5EJWXpjDLqKIoIjmwh6hh573ZiZG4/nnUrG20dJHib8/wRPscsvi5Mh X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:102f:b0:dfa:6ea5:c8d5 with SMTP id 3f1490d57ef6-e036ec36959mr14094276.10.1719636908382; Fri, 28 Jun 2024 21:55:08 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:49 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-28-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 27/28] perf tool: Remove perf_tool__fill_defaults From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215510_119246_3256D623 X-CRM114-Status: GOOD ( 13.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Now all tools are fully initialized prior to use it has no use so remove. Signed-off-by: Ian Rogers --- tools/perf/util/session.c | 6 --- tools/perf/util/tool.c | 89 --------------------------------------- tools/perf/util/tool.h | 1 - 3 files changed, 96 deletions(-) diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 1490d33eab2b..6f5692902892 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -1780,8 +1780,6 @@ static int __perf_session__process_pipe_events(struct perf_session *session) ssize_t err; void *p; - perf_tool__fill_defaults(tool); - head = 0; cur_size = sizeof(union perf_event); @@ -2189,8 +2187,6 @@ static int __perf_session__process_events(struct perf_session *session) struct ui_progress prog; int err; - perf_tool__fill_defaults(tool); - if (rd.data_size == 0) return -1; @@ -2243,8 +2239,6 @@ static int __perf_session__process_dir_events(struct perf_session *session) u64 total_size = perf_data__size(session->data); struct reader *rd; - perf_tool__fill_defaults(tool); - ui_progress__init_size(&prog, total_size, "Sorting events..."); nr_readers = 1; diff --git a/tools/perf/util/tool.c b/tools/perf/util/tool.c index a4ca16e5eefe..3b7f390f26eb 100644 --- a/tools/perf/util/tool.c +++ b/tools/perf/util/tool.c @@ -288,95 +288,6 @@ void perf_tool__init(struct perf_tool *tool, bool ordered_events) tool->finished_init = process_event_op2_stub; } -void perf_tool__fill_defaults(struct perf_tool *tool) -{ - if (tool->sample == NULL) - tool->sample = process_event_sample_stub; - if (tool->mmap == NULL) - tool->mmap = process_event_stub; - if (tool->mmap2 == NULL) - tool->mmap2 = process_event_stub; - if (tool->comm == NULL) - tool->comm = process_event_stub; - if (tool->namespaces == NULL) - tool->namespaces = process_event_stub; - if (tool->cgroup == NULL) - tool->cgroup = process_event_stub; - if (tool->fork == NULL) - tool->fork = process_event_stub; - if (tool->exit == NULL) - tool->exit = process_event_stub; - if (tool->lost == NULL) - tool->lost = perf_event__process_lost; - if (tool->lost_samples == NULL) - tool->lost_samples = perf_event__process_lost_samples; - if (tool->aux == NULL) - tool->aux = perf_event__process_aux; - if (tool->itrace_start == NULL) - tool->itrace_start = perf_event__process_itrace_start; - if (tool->context_switch == NULL) - tool->context_switch = perf_event__process_switch; - if (tool->ksymbol == NULL) - tool->ksymbol = perf_event__process_ksymbol; - if (tool->bpf == NULL) - tool->bpf = perf_event__process_bpf; - if (tool->text_poke == NULL) - tool->text_poke = perf_event__process_text_poke; - if (tool->aux_output_hw_id == NULL) - tool->aux_output_hw_id = perf_event__process_aux_output_hw_id; - if (tool->read == NULL) - tool->read = process_event_sample_stub; - if (tool->throttle == NULL) - tool->throttle = process_event_stub; - if (tool->unthrottle == NULL) - tool->unthrottle = process_event_stub; - if (tool->attr == NULL) - tool->attr = process_event_synth_attr_stub; - if (tool->event_update == NULL) - tool->event_update = process_event_synth_event_update_stub; - if (tool->tracing_data == NULL) - tool->tracing_data = process_event_synth_tracing_data_stub; - if (tool->build_id == NULL) - tool->build_id = process_event_op2_stub; - if (tool->finished_round == NULL) { - if (tool->ordered_events) - tool->finished_round = perf_event__process_finished_round; - else - tool->finished_round = process_finished_round_stub; - } - if (tool->id_index == NULL) - tool->id_index = process_event_op2_stub; - if (tool->auxtrace_info == NULL) - tool->auxtrace_info = process_event_op2_stub; - if (tool->auxtrace == NULL) - tool->auxtrace = process_event_auxtrace_stub; - if (tool->auxtrace_error == NULL) - tool->auxtrace_error = process_event_op2_stub; - if (tool->thread_map == NULL) - tool->thread_map = process_event_thread_map_stub; - if (tool->cpu_map == NULL) - tool->cpu_map = process_event_cpu_map_stub; - if (tool->stat_config == NULL) - tool->stat_config = process_event_stat_config_stub; - if (tool->stat == NULL) - tool->stat = process_stat_stub; - if (tool->stat_round == NULL) - tool->stat_round = process_stat_round_stub; - if (tool->time_conv == NULL) - tool->time_conv = process_event_time_conv_stub; - if (tool->feature == NULL) - tool->feature = process_event_op2_stub; - if (tool->compressed == NULL) { -#ifdef HAVE_ZSTD_SUPPORT - tool->compressed = perf_session__process_compressed_event; -#else - tool->compressed = perf_session__process_compressed_event_stub; -#endif - } - if (tool->finished_init == NULL) - tool->finished_init = process_event_op2_stub; -} - bool perf_tool__compressed_is_stub(const struct perf_tool *tool) { return tool->compressed == perf_session__process_compressed_event_stub; diff --git a/tools/perf/util/tool.h b/tools/perf/util/tool.h index fb7e32d98dda..0874e7924687 100644 --- a/tools/perf/util/tool.h +++ b/tools/perf/util/tool.h @@ -89,7 +89,6 @@ struct perf_tool { }; void perf_tool__init(struct perf_tool *tool, bool ordered_events); -void perf_tool__fill_defaults(struct perf_tool *tool); bool perf_tool__compressed_is_stub(const struct perf_tool *tool); From patchwork Sat Jun 29 04:53:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13716812 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CD07AC27C4F for ; Sat, 29 Jun 2024 04:59:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :References:Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=5I8Dk3Jx18DLwgnut7bHcO920rFAKP8Txv5pQFBGNLA=; b=kuaDuCG46qdpwtqpJcZGVNlX+w StxL+BW1MFaGWqWBRVwF2C8Wwve+AQ0+Il6lVgv+5zQp2PjtdqNB/THAsWqbQ9k5QSQLfTvM3hUbg PGcI2w/eY3JDQ0Wf5hIp9no8RZPWEdmu1KqQuYZQAE5qf0FrGgRp2EnFfGFGatSIqfsCRMZvOBFs0 pwtCLMxC2xIjvF8jk4wcFrEd4gtI27ajGqTD2D7BR0hERXYiHylYxoV/NmWwf0FTjRSVsA5lsrkH0 7ZPAz+3skWV6Rxq1gAPpFYQeYhpqEb+OHVlW6wAkDxB5GrZ65z7U9LZc04LWzf5wHetIirr7McTu/ DENZqF7w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQB1-0000000FtcD-31yf; Sat, 29 Jun 2024 04:59:07 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNQ7E-0000000FreG-2YmA for linux-arm-kernel@lists.infradead.org; Sat, 29 Jun 2024 04:55:13 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-64a489c5042so20524967b3.1 for ; Fri, 28 Jun 2024 21:55:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719636911; x=1720241711; darn=lists.infradead.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=5I8Dk3Jx18DLwgnut7bHcO920rFAKP8Txv5pQFBGNLA=; b=VJKp3NUKh1pVmpPq5uoIWnqWB/7ZrkQTxCRAV6e681hkgEepFhwTEapzMakWUBz+cm yxLZ3d/8f32WKNAEgvcffATGmSNT2L+FqQgM0ZqnrndH6vJLCluw8nIdIH1bJuXsFbvZ asxTnKdVuUrwD13ylpc2Htz/pUkQk67JcALwAMYmQ+C/mVvc4V2UtAfks31DZ0BKMQfY I/8PD5ZKN9emBWKwirtukZur4jGpBxn+cAtXZwIbUd7MNhmjdVskuOi4TpYxT4nuUfKz uTejzzQxyqM4zzQJ/kfzhlWqNoS++JeO48CcDX1wY+e1nShM3YPVGrynvAeR80lSqJ/s 8VVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719636911; x=1720241711; h=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=5I8Dk3Jx18DLwgnut7bHcO920rFAKP8Txv5pQFBGNLA=; b=bdWHy6XnbHuaPkRbtkyZjszU+LGJ7UfZt/4iA38RSmHrmRfr98CK51JX0UX7+LvHiY gff/1xslqC4Vq/loGNy/LryAR0cki6VTdbvf7y1Yg0y+yObivqPy5wqULPxjb4mU9OOT CD6KuF4eUOKWNtsOuNLuqHfDj7V1pLRbhaIlFrU/PfBhf3er/0C6JqiO4LgYLPMBuSxJ gATSOnOhaPE1b0n8+lcONf833zjZHSvhKwyGQE5VwiQVUVmLVgWVI72CwZpLdq6iJQIt J5eZNZPDR21UZrffklEBBs6Dw4IBluf16j7F7+qvUeRwzh5Aunnz1OxMM2UNvwSl6Svw 0+OQ== X-Forwarded-Encrypted: i=1; AJvYcCUeeX5tyZuokJ/OZV5wM2RBf3NKev2cUvfCOmhgoX7hpYkPt7asApZtfPOAPJ/tNZ3W9JaJH5tlAuUBVT4kdtbZMnNVrSfJNZYtZEb2z8RBTGQ4EAg= X-Gm-Message-State: AOJu0YzL8KjTWrB3HphuLwk0ub3EIeTv44cPTzMrE/FGBJOYrpW+UBwY MldEZ9Hz0sQQzbVXNGeIYEolxf/WY1WeLh6n3JxJf0ohK8gEcz1JyT0dRtS8PLhejNbOAWSMGJA /IC+tNA== X-Google-Smtp-Source: AGHT+IHlhj9A+3l7M0c3Zsg//bzFK4sGoQmqySkzynjsb5X2abAc4H7qqAulmEHW+TVVXLld2Zhy5UyS6h0g X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:f9fe:7acd:496e:4edb]) (user=irogers job=sendgmr) by 2002:a05:6902:150d:b0:e03:554e:f396 with SMTP id 3f1490d57ef6-e036eb5c458mr765276.6.1719636910826; Fri, 28 Jun 2024 21:55:10 -0700 (PDT) Date: Fri, 28 Jun 2024 21:53:50 -0700 In-Reply-To: <20240629045350.285243-1-irogers@google.com> Message-Id: <20240629045350.285243-29-irogers@google.com> Mime-Version: 1.0 References: <20240629045350.285243-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.803.g4e1b14247a-goog Subject: [PATCH v3 28/28] perf session: Constify tool From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Nick Terrell , Nick Desaulniers , Oliver Upton , Anshuman Khandual , Song Liu , Ilkka Koskinen , Athira Rajeev , Huacai Chen , Yanteng Si , Sun Haiyong , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_215512_684698_B3267289 X-CRM114-Status: GOOD ( 14.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Make tool const now that all uses are const and perf_tool__fill_defaults won't be used. The aim is to better capture that sessions don't mutate tools. Signed-off-by: Ian Rogers --- tools/perf/util/session.c | 6 +++--- tools/perf/util/session.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 6f5692902892..e0eec409e951 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -1771,7 +1771,7 @@ static int __perf_session__process_decomp_events(struct perf_session *session); static int __perf_session__process_pipe_events(struct perf_session *session) { struct ordered_events *oe = &session->ordered_events; - struct perf_tool *tool = session->tool; + const struct perf_tool *tool = session->tool; union perf_event *event; uint32_t size, cur_size = 0; void *buf = NULL; @@ -2183,7 +2183,7 @@ static int __perf_session__process_events(struct perf_session *session) .in_place_update = session->data->in_place_update, }; struct ordered_events *oe = &session->ordered_events; - struct perf_tool *tool = session->tool; + const struct perf_tool *tool = session->tool; struct ui_progress prog; int err; @@ -2233,7 +2233,7 @@ static int __perf_session__process_events(struct perf_session *session) static int __perf_session__process_dir_events(struct perf_session *session) { struct perf_data *data = session->data; - struct perf_tool *tool = session->tool; + const struct perf_tool *tool = session->tool; int i, ret, readers, nr_readers; struct ui_progress prog; u64 total_size = perf_data__size(session->data); diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index 7f69baeae7fb..7c8dd6956330 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h @@ -43,7 +43,7 @@ struct perf_session { u64 one_mmap_offset; struct ordered_events ordered_events; struct perf_data *data; - struct perf_tool *tool; + const struct perf_tool *tool; u64 bytes_transferred; u64 bytes_compressed; struct zstd_data zstd_data;