From: Ingo Molnar <mingo@kernel.org>
To: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
Cc: tglx@linutronix.de, bp@alien8.de, dave.hansen@linux.intel.com,
x86@kernel.org, peterz@infradead.org, mingo@redhat.com,
ananth.narayan@amd.com, gautham.shenoy@amd.com,
linux-perf-users@vger.kernel.org,
linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org,
sandipan.das@amd.com, alexander.shishkin@linux.intel.com,
irogers@google.com, gustavoars@kernel.org,
kprateek.nayak@amd.com, ravi.bangoria@amd.com
Subject: Re: [PATCH 2/2] perf/x86/rapl: Fix the energy-pkg event for AMD CPUs
Date: Fri, 3 May 2024 11:54:26 +0200 [thread overview]
Message-ID: <ZjS0Uio+nvZLLmyb@gmail.com> (raw)
In-Reply-To: <20240502095115.177713-3-Dhananjay.Ugwekar@amd.com>
* Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com> wrote:
> After commit ("x86/cpu/topology: Add support for the AMD 0x80000026 leaf"),
> on AMD processors that support extended CPUID leaf 0x80000026, the
> topology_die_cpumask() and topology_logical_die_id() macros, no longer
> return the package cpumask and package id, instead they return the CCD
> (Core Complex Die) mask and id respectively. This leads to the energy-pkg
> event scope to be modified to CCD instead of package.
>
> Replacing these macros with their package counterparts fixes the
> energy-pkg event for AMD CPUs.
>
> However due to the difference between the scope of energy-pkg event for
> Intel and AMD CPUs, we have to replace these macros conditionally only for
> AMD CPUs.
>
> On a 12 CCD 1 Package AMD Zen4 Genoa machine:
>
> Before:
> $ cat /sys/devices/power/cpumask
> 0,8,16,24,32,40,48,56,64,72,80,88.
>
> The expected cpumask here is supposed to be just "0", as it is a package
> scope event, only one CPU will be collecting the event for all the CPUs in
> the package.
>
> After:
> $ cat /sys/devices/power/cpumask
> 0
>
> Signed-off-by: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
> Fixes: 63edbaa48a57 ("x86/cpu/topology: Add support for the AMD 0x80000026 leaf")
> ---
> arch/x86/events/rapl.c | 30 ++++++++++++++++++++++++++----
> 1 file changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/events/rapl.c b/arch/x86/events/rapl.c
> index 46e673585560..d77bf7959a43 100644
> --- a/arch/x86/events/rapl.c
> +++ b/arch/x86/events/rapl.c
> @@ -102,6 +102,10 @@ static struct perf_pmu_events_attr event_attr_##v = { \
> .event_str = str, \
> };
>
> +#define rapl_pmu_is_pkg_scope() \
> + (boot_cpu_data.x86_vendor == X86_VENDOR_AMD || \
> + boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
> +
> struct rapl_pmu {
> raw_spinlock_t lock;
> int n_active;
> @@ -139,9 +143,21 @@ static unsigned int rapl_cntr_mask;
> static u64 rapl_timer_ms;
> static struct perf_msr *rapl_msrs;
>
> +static inline unsigned int get_rapl_pmu_idx(int cpu)
> +{
> + return rapl_pmu_is_pkg_scope() ? topology_logical_package_id(cpu) :
> + topology_logical_die_id(cpu);
> +}
> +
> +static inline cpumask_t *get_rapl_pmu_cpumask(int cpu)
> +{
> + return rapl_pmu_is_pkg_scope() ? topology_core_cpumask(cpu) :
> + topology_die_cpumask(cpu);
> +}
Note that this breaks the build with this config:
https://download.01.org/0day-ci/archive/20240503/202405030828.RgFuznL9-lkp@intel.com/config
I've removed the commit from perf/core for now.
Thanks,
Ingo
next prev parent reply other threads:[~2024-05-03 9:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-02 9:51 [PATCH 0/2] Fix energy-pkg event for AMD CPUs Dhananjay Ugwekar
2024-05-02 9:51 ` [PATCH 1/2] perf/x86/rapl: Rename maxdie to nr_rapl_pmu and dieid to rapl_pmu_idx Dhananjay Ugwekar
2024-05-02 11:43 ` [tip: perf/core] perf/x86/rapl: Rename 'maxdie' to nr_rapl_pmu and 'dieid' " tip-bot2 for Dhananjay Ugwekar
2024-05-02 9:51 ` [PATCH 2/2] perf/x86/rapl: Fix the energy-pkg event for AMD CPUs Dhananjay Ugwekar
2024-05-02 11:43 ` [tip: perf/core] " tip-bot2 for Dhananjay Ugwekar
2024-05-03 9:54 ` Ingo Molnar [this message]
2024-05-03 10:07 ` [PATCH 2/2] " Dhananjay Ugwekar
2024-05-04 4:09 ` [PATCH v2 " Dhananjay Ugwekar
2024-05-27 6:27 ` Dhananjay Ugwekar
2024-05-03 21:41 ` [PATCH " kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZjS0Uio+nvZLLmyb@gmail.com \
--to=mingo@kernel.org \
--cc=Dhananjay.Ugwekar@amd.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=ananth.narayan@amd.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=gautham.shenoy@amd.com \
--cc=gustavoars@kernel.org \
--cc=irogers@google.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=ravi.bangoria@amd.com \
--cc=sandipan.das@amd.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.