Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp2516672rdb; Fri, 8 Dec 2023 10:15:49 -0800 (PST) X-Google-Smtp-Source: AGHT+IFzbXNB2/kEjJPOaV6E77E2J0lPE7SSeM2K3qDLsdXH+AfLscAYRy4Z3y3VEVOFW6NH3afT X-Received: by 2002:a05:6a20:daa0:b0:190:37f5:f7da with SMTP id iy32-20020a056a20daa000b0019037f5f7damr482188pzb.59.1702059349267; Fri, 08 Dec 2023 10:15:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702059349; cv=none; d=google.com; s=arc-20160816; b=hMAXHKzj33vP7Z/xWLIhIXQ3AY4PERvcLJLG8BU22YUjg4YAfDk8l5Eel4NjFybM1F 74XMC5g8THQD7zavZUW/ttyYIAvbKN8iFWgLR/8lg6sqsf/0NXXy6FPI+93wbfQDOuXh zE9YX4x+lKEZbpQqgI14BFs+yabdmnwaJv6i6UiPu8dUKnE/X/3vVbtVOO0atKHsv2Et JAHyaw5fDfFHfTL9X/y5ZtBPK5cDSQv/Nd49fbtDpVwZkYmTv2B3zcM2b+3QIXCsHkz9 YD/JlywKrSIMMXvTMQgZDDjlqP723DPCoJVQMc5OJUoBnqBiRqx8mRZ2QvyyaovnomJs 7jRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=NHyViBdPgjVqcCMi/whumG7pODbS5DS5rtoY7WSf60Q=; fh=9A0xNneJc+TyQLwZWPCy7o8D9fu/VlvE3PEMDRALYHg=; b=DcvlHYPdyim/4oq7+MfN5ThU9/DFD8OjZ6OXDsT7/lW8FDIGzjpFzRPStP9V/+Jxlx sbDsQHi9ma/+/cknMqI/gih6KwlNEvxoHNQ07tzq+wU63Al07ZxIfeULfSs1+WPm9KLT BWnIr2M8qGMOA7ePIoWEx8ww9ipJ1UfnnH9NPHVrdwFpftWvm42EuE9ADeiR+3UgIGRB +FUWfNoznuzUqRkmf8fZ4bW6GPDJDQcXvlvuFe+H7csfy9fA50lteuogxQPkStOfuokS O8qdlSo5pX8r0K4L5PS81LUm7+W+SlNo+6WyQVsi3Iq9H4dEwwJaXCK59DSOPDNJL9++ ASXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=LsQI8hDd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id ei7-20020a056a0080c700b006ce7343f066si1878602pfb.372.2023.12.08.10.15.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 10:15:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=LsQI8hDd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id A936681E7816; Fri, 8 Dec 2023 10:15:46 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1574486AbjLHSPL (ORCPT + 99 others); Fri, 8 Dec 2023 13:15:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233799AbjLHSO7 (ORCPT ); Fri, 8 Dec 2023 13:14:59 -0500 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 213D22135; Fri, 8 Dec 2023 10:14:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702059274; x=1733595274; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=S0DU6UXRnqkwipMQJ+g0tYyAb8FzOeAi6xMp0rCqaJY=; b=LsQI8hDdxm2whJoiTrYdACZyxGZXrUmIa3435B4I6dpbwXcNL6G7RinX S9ioTk+OhVETHChUVh9Jw4V8HcpuwNhHBuU7OHiNGBqkEgS6S0GHhYkyF hg7bbHkNVLCWiNA6rH9MEvseWQPls3H0b+gsG9Tq/06Xx3CHa+c0Dg8yP L2dRTC5++NWzXXisf4QMZFqiIoXWYsFxtB4LkvyliBY73Iha3v6J8l4wi axTXF0Nd9vcK3e8zQj0ZU+pU1d7ZU390jl2uxsny/2PK63K6QQxijKb+0 Ph+PyumENXb3w91zGDo4Yt8HwsBJHMJIRLNzBmGVj6zYA0nuynByOdi5p A==; X-IronPort-AV: E=McAfee;i="6600,9927,10918"; a="373945582" X-IronPort-AV: E=Sophos;i="6.04,261,1695711600"; d="scan'208";a="373945582" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Dec 2023 10:14:33 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10918"; a="1103644637" X-IronPort-AV: E=Sophos;i="6.04,261,1695711600"; d="scan'208";a="1103644637" Received: from linux.intel.com ([10.54.29.200]) by fmsmga005.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Dec 2023 10:14:32 -0800 Received: from [10.212.91.62] (unknown [10.212.91.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by linux.intel.com (Postfix) with ESMTPS id C7F4D580DA9; Fri, 8 Dec 2023 10:14:29 -0800 (PST) Message-ID: <98863f44-4a35-4910-8db0-dbbf0474f6ae@linux.intel.com> Date: Fri, 8 Dec 2023 13:14:28 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V2 1/5] perf mem: Add mem_events into the supported perf_pmu To: Leo Yan Cc: acme@kernel.org, irogers@google.com, peterz@infradead.org, mingo@redhat.com, namhyung@kernel.org, jolsa@kernel.org, adrian.hunter@intel.com, john.g.garry@oracle.com, will@kernel.org, james.clark@arm.com, mike.leach@linaro.org, yuhaixin.yhx@linux.alibaba.com, renyu.zj@linux.alibaba.com, tmricht@linux.ibm.com, ravi.bangoria@amd.com, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20231207192338.400336-1-kan.liang@linux.intel.com> <20231207192338.400336-2-kan.liang@linux.intel.com> <20231208102922.GB769184@leoy-huanghe.lan> Content-Language: en-US From: "Liang, Kan" In-Reply-To: <20231208102922.GB769184@leoy-huanghe.lan> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Fri, 08 Dec 2023 10:15:46 -0800 (PST) On 2023-12-08 5:29 a.m., Leo Yan wrote: > On Thu, Dec 07, 2023 at 11:23:34AM -0800, kan.liang@linux.intel.com wrote: >> From: Kan Liang >> >> With the mem_events, perf doesn't need to read sysfs for each PMU to >> find the mem-events-supported PMU. The patch also makes it possible to >> clean up the related __weak functions later. >> >> The patch is only to add the mem_events into the perf_pmu for all ARCHs. >> It will be used in the later cleanup patches. >> >> Reviewed-by: Ian Rogers >> Tested-by: Ravi Bangoria >> Signed-off-by: Kan Liang >> --- >> tools/perf/arch/arm64/util/mem-events.c | 4 ++-- >> tools/perf/arch/arm64/util/mem-events.h | 7 +++++++ >> tools/perf/arch/arm64/util/pmu.c | 6 ++++++ >> tools/perf/arch/s390/util/pmu.c | 3 +++ >> tools/perf/arch/x86/util/mem-events.c | 4 ++-- >> tools/perf/arch/x86/util/mem-events.h | 9 +++++++++ >> tools/perf/arch/x86/util/pmu.c | 7 +++++++ >> tools/perf/util/mem-events.c | 2 +- >> tools/perf/util/mem-events.h | 1 + >> tools/perf/util/pmu.c | 4 +++- >> tools/perf/util/pmu.h | 7 +++++++ >> 11 files changed, 48 insertions(+), 6 deletions(-) >> create mode 100644 tools/perf/arch/arm64/util/mem-events.h >> create mode 100644 tools/perf/arch/x86/util/mem-events.h >> >> diff --git a/tools/perf/arch/arm64/util/mem-events.c b/tools/perf/arch/arm64/util/mem-events.c >> index 3bcc5c7035c2..aaa4804922b4 100644 >> --- a/tools/perf/arch/arm64/util/mem-events.c >> +++ b/tools/perf/arch/arm64/util/mem-events.c >> @@ -4,7 +4,7 @@ >> >> #define E(t, n, s) { .tag = t, .name = n, .sysfs_name = s } >> >> -static struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX] = { >> +struct perf_mem_event perf_mem_events_arm[PERF_MEM_EVENTS__MAX] = { >> E("spe-load", "arm_spe_0/ts_enable=1,pa_enable=1,load_filter=1,store_filter=0,min_latency=%u/", "arm_spe_0"), >> E("spe-store", "arm_spe_0/ts_enable=1,pa_enable=1,load_filter=0,store_filter=1/", "arm_spe_0"), >> E("spe-ldst", "arm_spe_0/ts_enable=1,pa_enable=1,load_filter=1,store_filter=1,min_latency=%u/", "arm_spe_0"), >> @@ -17,7 +17,7 @@ struct perf_mem_event *perf_mem_events__ptr(int i) >> if (i >= PERF_MEM_EVENTS__MAX) >> return NULL; >> >> - return &perf_mem_events[i]; >> + return &perf_mem_events_arm[i]; > > I recognized that it's hard code to "arm_spe_0", which might break if > system registers different Arm SPE groups. But this is not the issue > introduced by this patch, we might need to consider to fix it later. > >> } >> >> const char *perf_mem_events__name(int i, const char *pmu_name __maybe_unused) >> diff --git a/tools/perf/arch/arm64/util/mem-events.h b/tools/perf/arch/arm64/util/mem-events.h >> new file mode 100644 >> index 000000000000..5fc50be4be38 >> --- /dev/null >> +++ b/tools/perf/arch/arm64/util/mem-events.h >> @@ -0,0 +1,7 @@ >> +/* SPDX-License-Identifier: GPL-2.0 */ >> +#ifndef _ARM64_MEM_EVENTS_H >> +#define _ARM64_MEM_EVENTS_H >> + >> +extern struct perf_mem_event perf_mem_events_arm[PERF_MEM_EVENTS__MAX]; >> + >> +#endif /* _ARM64_MEM_EVENTS_H */ >> diff --git a/tools/perf/arch/arm64/util/pmu.c b/tools/perf/arch/arm64/util/pmu.c >> index 2a4eab2d160e..06ec9b838807 100644 >> --- a/tools/perf/arch/arm64/util/pmu.c >> +++ b/tools/perf/arch/arm64/util/pmu.c >> @@ -8,6 +8,12 @@ >> #include >> #include >> >> +void perf_pmu__arch_init(struct perf_pmu *pmu) >> +{ >> + if (!strcmp(pmu->name, "arm_spe_0")) >> + pmu->mem_events = perf_mem_events_arm; > > This is not right and it should cause building failure on aarch64. > > aarch64 reuses aarch32's file arch/arm/util/pmu.c, and this file has > already defined perf_pmu__arch_init(), you should add above change in > the file arch/arm/util/pmu.c. > Sure. > Now I cannot access a machine for testing Arm SPE, but I will play > a bit for this patch set to ensure it can pass compilation. After > that, I will seek Arm maintainers/reviewers help for the test. > Thanks. I guess I will hold the v3 until the test is done in case there are other issues found in ARM. Thanks, Kan