Re: [PATCH] perf pmu-events: Fix the missing "cpu_clk_unhalted.core"

From: Jin, Yao
Date: Mon Aug 05 2019 - 20:20:18 EST




On 7/30/2019 9:43 AM, Jin, Yao wrote:


On 7/30/2019 2:16 AM, Andi Kleen wrote:
diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c
index 1a91a197cafb..d413761621b0 100644
--- a/tools/perf/pmu-events/jevents.c
+++ b/tools/perf/pmu-events/jevents.c
@@ -453,6 +453,7 @@ static struct fixed {
ÂÂÂÂÂ { "inst_retired.any_p", "event=0xc0" },
ÂÂÂÂÂ { "cpu_clk_unhalted.ref", "event=0x0,umask=0x03" },
ÂÂÂÂÂ { "cpu_clk_unhalted.thread", "event=0x3c" },
+ÂÂÂ { "cpu_clk_unhalted.core", "event=0x3c" },

Not sure this is correct for non Atom.

On Atom thread==core, but that is not true with SMT/HyperThreading.

The big cores currently don't have this event, so it would
match incorrectly.

This has to be handled on the event list level, perhaps with
some enhancements.

-Andi


Hi Andi,

It is used to handle the fixed counter encodings between JSON and perf. If big cores don't have this event, nothing will be generated in perf list.

In big cores pipeline.json, there is only "CPU_CLK_UNHALTED.THREAD", and there is no "CPU_CLK_UNHALTED.CORE" defined. So at least for now, CPU_CLK_UNHALTED.CORE will not be generated for big core.

Thanks
Jin Yao

Hi Andi,

Does this fix and the above explanation make sense?

Thanks
Jin Yao