From patchwork Tue Aug 6 20:41:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Yan X-Patchwork-Id: 13755297 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 18229C52D70 for ; Tue, 6 Aug 2024 20:44:42 +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-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=vIHDn+DnKuqbbXU/zw4KpQsPXXLqFocTxehjdZBbB8U=; b=Y7F5diSAh19RI47va64JXGP4Ye bnO9msewSOo5rBWqnaFNk2gmvnNLPrJRfL16wnDksxkWkgIR0qxfvIdqpTTxsSoivEM8rbOTIVkPr Ujb/jbqdd2Kxm4WYKDceJZ8Q52TkiIb4srA9dq71mrpDaTJs4IwmhT2JVke/R6vSseJO98NxaEyTO argbHsl0vwmQRxqAaY0JiIBxXn6IMptcyf7V1g48jrng7H7NNpWkbiONqrum5zc5yKijPvPp45bcj 0hZqvj6uOlITTdLWQMATNmICuLjFgAvFkAiY/nBQZQz6e/DkqCNriFJ8kfFelzc+MWm9vrk+JHeap eE+EfNaw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sbR2i-00000002r8u-1yM2; Tue, 06 Aug 2024 20:44:28 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sbR0F-00000002qOH-3hm3 for linux-arm-kernel@lists.infradead.org; Tue, 06 Aug 2024 20:41:57 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id AE3AF1063; Tue, 6 Aug 2024 13:42:17 -0700 (PDT) Received: from e132581.cambridge.arm.com (e132581.arm.com [10.2.76.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 1C8E63F766; Tue, 6 Aug 2024 13:41:49 -0700 (PDT) From: Leo Yan To: Arnaldo Carvalho de Melo , Namhyung Kim , Ian Rogers , Adrian Hunter , James Clark , Suzuki K Poulose , Mike Leach , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, "Liang, Kan" Cc: Leo Yan Subject: [PATCH v1 3/9] perf auxtrace: Refactor auxtrace__evsel_is_auxtrace() Date: Tue, 6 Aug 2024 21:41:24 +0100 Message-Id: <20240806204130.720977-4-leo.yan@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240806204130.720977-1-leo.yan@arm.com> References: <20240806204130.720977-1-leo.yan@arm.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240806_134156_054485_CC042059 X-CRM114-Status: GOOD ( 14.97 ) 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 auxtrace__evsel_is_auxtrace() function invokes the callback .evsel_is_auxtrace() to check if an event is an AUX trace. In the low-level code, every AUX trace module provides its callback to compare the PMU type. This commit refactors auxtrace__evsel_is_auxtrace() by simply calling evsel__is_aux_event() rather than using the callback function. As a result, the callback .evsel_is_auxtrace() is no longer needed, so the definition and implementations are removed. Signed-off-by: Leo Yan --- tools/perf/util/arm-spe.c | 9 --------- tools/perf/util/auxtrace.c | 4 ++-- tools/perf/util/auxtrace.h | 2 -- tools/perf/util/cs-etm.c | 13 +------------ tools/perf/util/hisi-ptt.c | 9 --------- tools/perf/util/intel-bts.c | 10 ---------- tools/perf/util/intel-pt.c | 10 ---------- tools/perf/util/s390-cpumsf.c | 9 --------- 8 files changed, 3 insertions(+), 63 deletions(-) diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c index afbd5869f6bf..27e393a0beec 100644 --- a/tools/perf/util/arm-spe.c +++ b/tools/perf/util/arm-spe.c @@ -1053,14 +1053,6 @@ static void arm_spe_free(struct perf_session *session) free(spe); } -static bool arm_spe_evsel_is_auxtrace(struct perf_session *session, - struct evsel *evsel) -{ - struct arm_spe *spe = container_of(session->auxtrace, struct arm_spe, auxtrace); - - return evsel->core.attr.type == spe->pmu_type; -} - static const char * const arm_spe_info_fmts[] = { [ARM_SPE_PMU_TYPE] = " PMU Type %"PRId64"\n", }; @@ -1344,7 +1336,6 @@ int arm_spe_process_auxtrace_info(union perf_event *event, spe->auxtrace.flush_events = arm_spe_flush; spe->auxtrace.free_events = arm_spe_free_events; spe->auxtrace.free = arm_spe_free; - spe->auxtrace.evsel_is_auxtrace = arm_spe_evsel_is_auxtrace; session->auxtrace = &spe->auxtrace; arm_spe_print_info(&auxtrace_info->priv[0]); diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c index c3f0ef4349fc..03462ff346e7 100644 --- a/tools/perf/util/auxtrace.c +++ b/tools/perf/util/auxtrace.c @@ -2874,8 +2874,8 @@ void auxtrace__free(struct perf_session *session) bool auxtrace__evsel_is_auxtrace(struct perf_session *session, struct evsel *evsel) { - if (!session->auxtrace || !session->auxtrace->evsel_is_auxtrace) + if (!session->auxtrace) return false; - return session->auxtrace->evsel_is_auxtrace(session, evsel); + return evsel__is_aux_event(evsel); } diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h index 95304368103b..f13c2de17653 100644 --- a/tools/perf/util/auxtrace.h +++ b/tools/perf/util/auxtrace.h @@ -221,8 +221,6 @@ struct auxtrace { struct perf_tool *tool); void (*free_events)(struct perf_session *session); void (*free)(struct perf_session *session); - bool (*evsel_is_auxtrace)(struct perf_session *session, - struct evsel *evsel); }; /** diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c index d3e9c64d17d4..dac0f7c7e44d 100644 --- a/tools/perf/util/cs-etm.c +++ b/tools/perf/util/cs-etm.c @@ -899,16 +899,6 @@ static void cs_etm__free(struct perf_session *session) zfree(&aux); } -static bool cs_etm__evsel_is_auxtrace(struct perf_session *session, - struct evsel *evsel) -{ - struct cs_etm_auxtrace *aux = container_of(session->auxtrace, - struct cs_etm_auxtrace, - auxtrace); - - return evsel->core.attr.type == aux->pmu_type; -} - static struct machine *cs_etm__get_machine(struct cs_etm_queue *etmq, ocsd_ex_level el) { @@ -2877,7 +2867,7 @@ static int cs_etm__setup_timeless_decoding(struct cs_etm_auxtrace *etm) * Find the cs_etm evsel and look at what its timestamp setting was */ evlist__for_each_entry(evlist, evsel) - if (cs_etm__evsel_is_auxtrace(etm->session, evsel)) { + if (evsel__is_aux_event(evsel)) { etm->timeless_decoding = !(evsel->core.attr.config & BIT(ETM_OPT_TS)); return 0; @@ -3380,7 +3370,6 @@ int cs_etm__process_auxtrace_info_full(union perf_event *event, etm->auxtrace.flush_events = cs_etm__flush_events; etm->auxtrace.free_events = cs_etm__free_events; etm->auxtrace.free = cs_etm__free; - etm->auxtrace.evsel_is_auxtrace = cs_etm__evsel_is_auxtrace; session->auxtrace = &etm->auxtrace; err = cs_etm__setup_timeless_decoding(etm); diff --git a/tools/perf/util/hisi-ptt.c b/tools/perf/util/hisi-ptt.c index 37ea987017f6..57dd98afb0d2 100644 --- a/tools/perf/util/hisi-ptt.c +++ b/tools/perf/util/hisi-ptt.c @@ -141,14 +141,6 @@ static void hisi_ptt_free(struct perf_session *session) free(ptt); } -static bool hisi_ptt_evsel_is_auxtrace(struct perf_session *session, - struct evsel *evsel) -{ - struct hisi_ptt *ptt = container_of(session->auxtrace, struct hisi_ptt, auxtrace); - - return evsel->core.attr.type == ptt->pmu_type; -} - static void hisi_ptt_print_info(__u64 type) { if (!dump_trace) @@ -181,7 +173,6 @@ int hisi_ptt_process_auxtrace_info(union perf_event *event, ptt->auxtrace.flush_events = hisi_ptt_flush; ptt->auxtrace.free_events = hisi_ptt_free_events; ptt->auxtrace.free = hisi_ptt_free; - ptt->auxtrace.evsel_is_auxtrace = hisi_ptt_evsel_is_auxtrace; session->auxtrace = &ptt->auxtrace; hisi_ptt_print_info(auxtrace_info->priv[0]); diff --git a/tools/perf/util/intel-bts.c b/tools/perf/util/intel-bts.c index ec1b3bd9f530..2b571e56f9c9 100644 --- a/tools/perf/util/intel-bts.c +++ b/tools/perf/util/intel-bts.c @@ -728,15 +728,6 @@ static void intel_bts_free(struct perf_session *session) free(bts); } -static bool intel_bts_evsel_is_auxtrace(struct perf_session *session, - struct evsel *evsel) -{ - struct intel_bts *bts = container_of(session->auxtrace, struct intel_bts, - auxtrace); - - return evsel->core.attr.type == bts->pmu_type; -} - struct intel_bts_synth { struct perf_tool dummy_tool; struct perf_session *session; @@ -892,7 +883,6 @@ int intel_bts_process_auxtrace_info(union perf_event *event, bts->auxtrace.flush_events = intel_bts_flush; bts->auxtrace.free_events = intel_bts_free_events; bts->auxtrace.free = intel_bts_free; - bts->auxtrace.evsel_is_auxtrace = intel_bts_evsel_is_auxtrace; session->auxtrace = &bts->auxtrace; intel_bts_print_info(&auxtrace_info->priv[0], INTEL_BTS_PMU_TYPE, diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c index d6d7b7512505..1608d0e38679 100644 --- a/tools/perf/util/intel-pt.c +++ b/tools/perf/util/intel-pt.c @@ -3589,15 +3589,6 @@ static void intel_pt_free(struct perf_session *session) free(pt); } -static bool intel_pt_evsel_is_auxtrace(struct perf_session *session, - struct evsel *evsel) -{ - struct intel_pt *pt = container_of(session->auxtrace, struct intel_pt, - auxtrace); - - return evsel->core.attr.type == pt->pmu_type; -} - static int intel_pt_process_auxtrace_event(struct perf_session *session, union perf_event *event, struct perf_tool *tool __maybe_unused) @@ -4356,7 +4347,6 @@ int intel_pt_process_auxtrace_info(union perf_event *event, pt->auxtrace.flush_events = intel_pt_flush; pt->auxtrace.free_events = intel_pt_free_events; pt->auxtrace.free = intel_pt_free; - pt->auxtrace.evsel_is_auxtrace = intel_pt_evsel_is_auxtrace; session->auxtrace = &pt->auxtrace; if (dump_trace) diff --git a/tools/perf/util/s390-cpumsf.c b/tools/perf/util/s390-cpumsf.c index 6fe478b0b61b..a9b0dea199d5 100644 --- a/tools/perf/util/s390-cpumsf.c +++ b/tools/perf/util/s390-cpumsf.c @@ -1048,14 +1048,6 @@ static void s390_cpumsf_free(struct perf_session *session) free(sf); } -static bool -s390_cpumsf_evsel_is_auxtrace(struct perf_session *session __maybe_unused, - struct evsel *evsel) -{ - return evsel->core.attr.type == PERF_TYPE_RAW && - evsel->core.attr.config == PERF_EVENT_CPUM_SF_DIAG; -} - static int s390_cpumsf_get_type(const char *cpuid) { int ret, family = 0; @@ -1152,7 +1144,6 @@ int s390_cpumsf_process_auxtrace_info(union perf_event *event, sf->auxtrace.flush_events = s390_cpumsf_flush; sf->auxtrace.free_events = s390_cpumsf_free_events; sf->auxtrace.free = s390_cpumsf_free; - sf->auxtrace.evsel_is_auxtrace = s390_cpumsf_evsel_is_auxtrace; session->auxtrace = &sf->auxtrace; if (dump_trace)