All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric
@ 2020-03-09  1:31 Jin Yao
  2020-03-30  0:38 ` Jin, Yao
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Jin Yao @ 2020-03-09  1:31 UTC (permalink / raw)
  To: acme, jolsa, peterz, mingo, alexander.shishkin
  Cc: Linux-kernel, ak, kan.liang, yao.jin, Jin Yao

The kernel utilization metric does multiplexing currently and is somewhat
unreliable. The problem is that it uses two instances of the fixed counter,
and the kernel has to multipleplex which causes errors. So should use
CPU_CLK_UNHALTED.THREAD instead.

Before:

  # perf stat -M Kernel_Utilization -- sleep 1

  Performance counter stats for 'sleep 1':

          1,419,425      cpu_clk_unhalted.ref_tsc:k
      <not counted>      cpu_clk_unhalted.ref_tsc	(0.00%)

After:

  # perf stat -M Kernel_Utilization -- sleep 1

  Performance counter stats for 'sleep 1':

            746,688      cpu_clk_unhalted.thread:k #      0.7 Kernel_Utilization
          1,088,348      cpu_clk_unhalted.thread

Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
---
 tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json     | 2 +-
 tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json | 2 +-
 tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json    | 2 +-
 tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json  | 2 +-
 tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json       | 2 +-
 tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json      | 2 +-
 tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json     | 2 +-
 tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json       | 2 +-
 tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json      | 2 +-
 tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json   | 2 +-
 tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json       | 2 +-
 tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json      | 2 +-
 12 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
index 45a34ce4fe89..8cdc7c13dc2a 100644
--- a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
@@ -297,7 +297,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
index 961fe4395758..16fd8a7490fc 100644
--- a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
@@ -115,7 +115,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
index 746734ce09be..1eb0415fa11a 100644
--- a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
@@ -297,7 +297,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
index f94653229dd4..a2c32db8f14e 100644
--- a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
@@ -315,7 +315,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
index 5402cd3120f9..f57c5f3506c2 100644
--- a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
@@ -267,7 +267,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
index 832f3cb40b34..311a005dc35b 100644
--- a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
@@ -267,7 +267,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
index d69b2a8fc0bc..28e25447d3ef 100644
--- a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
@@ -285,7 +285,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
index 5f465fd81315..db23db2e98be 100644
--- a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
@@ -285,7 +285,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
index 3e909b306003..dbb33e00b72a 100644
--- a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
@@ -171,7 +171,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
index 50c053235752..fb2d7b8875f8 100644
--- a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
@@ -171,7 +171,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
index e7feb60f9fa9..e3afc3178958 100644
--- a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
@@ -303,7 +303,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
index 21d7a0c2c2e8..12d1efba79bb 100644
--- a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
@@ -315,7 +315,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric
  2020-03-09  1:31 [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric Jin Yao
@ 2020-03-30  0:38 ` Jin, Yao
  2020-03-31 19:08   ` Arnaldo Carvalho de Melo
  2020-03-31 19:30 ` Liang, Kan
  2020-04-04  8:41 ` [tip: perf/urgent] perf pmu-events x86: " tip-bot2 for Jin Yao
  2 siblings, 1 reply; 7+ messages in thread
From: Jin, Yao @ 2020-03-30  0:38 UTC (permalink / raw)
  To: acme, jolsa, peterz, mingo, alexander.shishkin
  Cc: Linux-kernel, ak, kan.liang, yao.jin

Hi,

Any comments for this patch?

Thanks
Jin Yao

On 3/9/2020 9:31 AM, Jin Yao wrote:
> The kernel utilization metric does multiplexing currently and is somewhat
> unreliable. The problem is that it uses two instances of the fixed counter,
> and the kernel has to multipleplex which causes errors. So should use
> CPU_CLK_UNHALTED.THREAD instead.
> 
> Before:
> 
>    # perf stat -M Kernel_Utilization -- sleep 1
> 
>    Performance counter stats for 'sleep 1':
> 
>            1,419,425      cpu_clk_unhalted.ref_tsc:k
>        <not counted>      cpu_clk_unhalted.ref_tsc	(0.00%)
> 
> After:
> 
>    # perf stat -M Kernel_Utilization -- sleep 1
> 
>    Performance counter stats for 'sleep 1':
> 
>              746,688      cpu_clk_unhalted.thread:k #      0.7 Kernel_Utilization
>            1,088,348      cpu_clk_unhalted.thread
> 
> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
> ---
>   tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json     | 2 +-
>   tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json | 2 +-
>   tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json    | 2 +-
>   tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json  | 2 +-
>   tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json       | 2 +-
>   tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json      | 2 +-
>   tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json     | 2 +-
>   tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json       | 2 +-
>   tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json      | 2 +-
>   tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json   | 2 +-
>   tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json       | 2 +-
>   tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json      | 2 +-
>   12 files changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> index 45a34ce4fe89..8cdc7c13dc2a 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> @@ -297,7 +297,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> index 961fe4395758..16fd8a7490fc 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> @@ -115,7 +115,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> index 746734ce09be..1eb0415fa11a 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> @@ -297,7 +297,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> index f94653229dd4..a2c32db8f14e 100644
> --- a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> @@ -315,7 +315,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> index 5402cd3120f9..f57c5f3506c2 100644
> --- a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> @@ -267,7 +267,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> index 832f3cb40b34..311a005dc35b 100644
> --- a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> @@ -267,7 +267,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> index d69b2a8fc0bc..28e25447d3ef 100644
> --- a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> @@ -285,7 +285,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> index 5f465fd81315..db23db2e98be 100644
> --- a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> @@ -285,7 +285,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> index 3e909b306003..dbb33e00b72a 100644
> --- a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> @@ -171,7 +171,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> index 50c053235752..fb2d7b8875f8 100644
> --- a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> @@ -171,7 +171,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> index e7feb60f9fa9..e3afc3178958 100644
> --- a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> @@ -303,7 +303,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> index 21d7a0c2c2e8..12d1efba79bb 100644
> --- a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> @@ -315,7 +315,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric
  2020-03-30  0:38 ` Jin, Yao
@ 2020-03-31 19:08   ` Arnaldo Carvalho de Melo
  2020-03-31 20:04     ` Andi Kleen
  0 siblings, 1 reply; 7+ messages in thread
From: Arnaldo Carvalho de Melo @ 2020-03-31 19:08 UTC (permalink / raw)
  To: Jin, Yao
  Cc: jolsa, peterz, mingo, alexander.shishkin, Linux-kernel, ak,
	kan.liang, yao.jin

Em Mon, Mar 30, 2020 at 08:38:29AM +0800, Jin, Yao escreveu:
> Hi,
> 
> Any comments for this patch?

Can someone help Jin reviewing this x86 specific metric?

- Arnaldo
 
> Thanks
> Jin Yao
> 
> On 3/9/2020 9:31 AM, Jin Yao wrote:
> > The kernel utilization metric does multiplexing currently and is somewhat
> > unreliable. The problem is that it uses two instances of the fixed counter,
> > and the kernel has to multipleplex which causes errors. So should use
> > CPU_CLK_UNHALTED.THREAD instead.
> > 
> > Before:
> > 
> >    # perf stat -M Kernel_Utilization -- sleep 1
> > 
> >    Performance counter stats for 'sleep 1':
> > 
> >            1,419,425      cpu_clk_unhalted.ref_tsc:k
> >        <not counted>      cpu_clk_unhalted.ref_tsc	(0.00%)
> > 
> > After:
> > 
> >    # perf stat -M Kernel_Utilization -- sleep 1
> > 
> >    Performance counter stats for 'sleep 1':
> > 
> >              746,688      cpu_clk_unhalted.thread:k #      0.7 Kernel_Utilization
> >            1,088,348      cpu_clk_unhalted.thread
> > 
> > Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
> > ---
> >   tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json     | 2 +-
> >   tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json | 2 +-
> >   tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json    | 2 +-
> >   tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json  | 2 +-
> >   tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json       | 2 +-
> >   tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json      | 2 +-
> >   tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json     | 2 +-
> >   tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json       | 2 +-
> >   tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json      | 2 +-
> >   tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json   | 2 +-
> >   tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json       | 2 +-
> >   tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json      | 2 +-
> >   12 files changed, 12 insertions(+), 12 deletions(-)
> > 
> > diff --git a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> > index 45a34ce4fe89..8cdc7c13dc2a 100644
> > --- a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> > @@ -297,7 +297,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> > index 961fe4395758..16fd8a7490fc 100644
> > --- a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> > @@ -115,7 +115,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> > index 746734ce09be..1eb0415fa11a 100644
> > --- a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> > @@ -297,7 +297,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> > index f94653229dd4..a2c32db8f14e 100644
> > --- a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> > @@ -315,7 +315,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> > index 5402cd3120f9..f57c5f3506c2 100644
> > --- a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> > @@ -267,7 +267,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> > index 832f3cb40b34..311a005dc35b 100644
> > --- a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> > @@ -267,7 +267,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> > index d69b2a8fc0bc..28e25447d3ef 100644
> > --- a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> > @@ -285,7 +285,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> > index 5f465fd81315..db23db2e98be 100644
> > --- a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> > @@ -285,7 +285,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> > index 3e909b306003..dbb33e00b72a 100644
> > --- a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> > @@ -171,7 +171,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> > index 50c053235752..fb2d7b8875f8 100644
> > --- a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> > @@ -171,7 +171,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> > index e7feb60f9fa9..e3afc3178958 100644
> > --- a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> > @@ -303,7 +303,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > diff --git a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> > index 21d7a0c2c2e8..12d1efba79bb 100644
> > --- a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> > +++ b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> > @@ -315,7 +315,7 @@
> >       },
> >       {
> >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> >           "MetricGroup": "Summary",
> >           "MetricName": "Kernel_Utilization"
> >       },
> > 

-- 

- Arnaldo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric
  2020-03-09  1:31 [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric Jin Yao
  2020-03-30  0:38 ` Jin, Yao
@ 2020-03-31 19:30 ` Liang, Kan
  2020-03-31 19:33   ` Arnaldo Carvalho de Melo
  2020-04-04  8:41 ` [tip: perf/urgent] perf pmu-events x86: " tip-bot2 for Jin Yao
  2 siblings, 1 reply; 7+ messages in thread
From: Liang, Kan @ 2020-03-31 19:30 UTC (permalink / raw)
  To: Jin Yao, acme, jolsa, peterz, mingo, alexander.shishkin
  Cc: Linux-kernel, ak, kan.liang, yao.jin



On 3/8/2020 9:31 PM, Jin Yao wrote:
> The kernel utilization metric does multiplexing currently and is somewhat
> unreliable. The problem is that it uses two instances of the fixed counter,
> and the kernel has to multipleplex which causes errors. So should use
> CPU_CLK_UNHALTED.THREAD instead.
> 
> Before:
> 
>    # perf stat -M Kernel_Utilization -- sleep 1
> 
>    Performance counter stats for 'sleep 1':
> 
>            1,419,425      cpu_clk_unhalted.ref_tsc:k
>        <not counted>      cpu_clk_unhalted.ref_tsc	(0.00%)
> 
> After:
> 
>    # perf stat -M Kernel_Utilization -- sleep 1
> 
>    Performance counter stats for 'sleep 1':
> 
>              746,688      cpu_clk_unhalted.thread:k #      0.7 Kernel_Utilization
>            1,088,348      cpu_clk_unhalted.thread
> 
> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>


Reviewed-by: Kan Liang <kan.liang@linux.intel.com>

Thanks,
Kan

> ---
>   tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json     | 2 +-
>   tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json | 2 +-
>   tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json    | 2 +-
>   tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json  | 2 +-
>   tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json       | 2 +-
>   tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json      | 2 +-
>   tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json     | 2 +-
>   tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json       | 2 +-
>   tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json      | 2 +-
>   tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json   | 2 +-
>   tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json       | 2 +-
>   tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json      | 2 +-
>   12 files changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> index 45a34ce4fe89..8cdc7c13dc2a 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> @@ -297,7 +297,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> index 961fe4395758..16fd8a7490fc 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> @@ -115,7 +115,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> index 746734ce09be..1eb0415fa11a 100644
> --- a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> @@ -297,7 +297,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> index f94653229dd4..a2c32db8f14e 100644
> --- a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> @@ -315,7 +315,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> index 5402cd3120f9..f57c5f3506c2 100644
> --- a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> @@ -267,7 +267,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> index 832f3cb40b34..311a005dc35b 100644
> --- a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> @@ -267,7 +267,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> index d69b2a8fc0bc..28e25447d3ef 100644
> --- a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> @@ -285,7 +285,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> index 5f465fd81315..db23db2e98be 100644
> --- a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> @@ -285,7 +285,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> index 3e909b306003..dbb33e00b72a 100644
> --- a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> @@ -171,7 +171,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> index 50c053235752..fb2d7b8875f8 100644
> --- a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> @@ -171,7 +171,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> index e7feb60f9fa9..e3afc3178958 100644
> --- a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> @@ -303,7 +303,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> diff --git a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> index 21d7a0c2c2e8..12d1efba79bb 100644
> --- a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> +++ b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> @@ -315,7 +315,7 @@
>       },
>       {
>           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
>           "MetricGroup": "Summary",
>           "MetricName": "Kernel_Utilization"
>       },
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric
  2020-03-31 19:30 ` Liang, Kan
@ 2020-03-31 19:33   ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 7+ messages in thread
From: Arnaldo Carvalho de Melo @ 2020-03-31 19:33 UTC (permalink / raw)
  To: Liang, Kan
  Cc: Jin Yao, jolsa, peterz, mingo, alexander.shishkin, Linux-kernel,
	ak, kan.liang, yao.jin

Em Tue, Mar 31, 2020 at 03:30:25PM -0400, Liang, Kan escreveu:
> 
> 
> On 3/8/2020 9:31 PM, Jin Yao wrote:
> > The kernel utilization metric does multiplexing currently and is somewhat
> > unreliable. The problem is that it uses two instances of the fixed counter,
> > and the kernel has to multipleplex which causes errors. So should use
> > CPU_CLK_UNHALTED.THREAD instead.
> > 
> > Before:
> > 
> >    # perf stat -M Kernel_Utilization -- sleep 1
> > 
> >    Performance counter stats for 'sleep 1':
> > 
> >            1,419,425      cpu_clk_unhalted.ref_tsc:k
> >        <not counted>      cpu_clk_unhalted.ref_tsc	(0.00%)
> > 
> > After:
> > 
> >    # perf stat -M Kernel_Utilization -- sleep 1
> > 
> >    Performance counter stats for 'sleep 1':
> > 
> >              746,688      cpu_clk_unhalted.thread:k #      0.7 Kernel_Utilization
> >            1,088,348      cpu_clk_unhalted.thread
> > 
> > Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
> 
> 
> Reviewed-by: Kan Liang <kan.liang@linux.intel.com>

Thanks, applied.

- Arnaldo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric
  2020-03-31 19:08   ` Arnaldo Carvalho de Melo
@ 2020-03-31 20:04     ` Andi Kleen
  0 siblings, 0 replies; 7+ messages in thread
From: Andi Kleen @ 2020-03-31 20:04 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Jin, Yao, jolsa, peterz, mingo, alexander.shishkin, Linux-kernel,
	kan.liang, yao.jin

On Tue, Mar 31, 2020 at 04:08:04PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Mon, Mar 30, 2020 at 08:38:29AM +0800, Jin, Yao escreveu:
> > Hi,
> > 
> > Any comments for this patch?
> 
> Can someone help Jin reviewing this x86 specific metric?

Looks good to me.

Reviewed-by: Andi Kleen <ak@linux.intel.com>
> 
> - Arnaldo
>  
> > Thanks
> > Jin Yao
> > 
> > On 3/9/2020 9:31 AM, Jin Yao wrote:
> > > The kernel utilization metric does multiplexing currently and is somewhat
> > > unreliable. The problem is that it uses two instances of the fixed counter,
> > > and the kernel has to multipleplex which causes errors. So should use
> > > CPU_CLK_UNHALTED.THREAD instead.
> > > 
> > > Before:
> > > 
> > >    # perf stat -M Kernel_Utilization -- sleep 1
> > > 
> > >    Performance counter stats for 'sleep 1':
> > > 
> > >            1,419,425      cpu_clk_unhalted.ref_tsc:k
> > >        <not counted>      cpu_clk_unhalted.ref_tsc	(0.00%)
> > > 
> > > After:
> > > 
> > >    # perf stat -M Kernel_Utilization -- sleep 1
> > > 
> > >    Performance counter stats for 'sleep 1':
> > > 
> > >              746,688      cpu_clk_unhalted.thread:k #      0.7 Kernel_Utilization
> > >            1,088,348      cpu_clk_unhalted.thread
> > > 
> > > Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
> > > ---
> > >   tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json     | 2 +-
> > >   tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json | 2 +-
> > >   tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json    | 2 +-
> > >   tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json  | 2 +-
> > >   tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json       | 2 +-
> > >   tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json      | 2 +-
> > >   tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json     | 2 +-
> > >   tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json       | 2 +-
> > >   tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json      | 2 +-
> > >   tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json   | 2 +-
> > >   tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json       | 2 +-
> > >   tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json      | 2 +-
> > >   12 files changed, 12 insertions(+), 12 deletions(-)
> > > 
> > > diff --git a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> > > index 45a34ce4fe89..8cdc7c13dc2a 100644
> > > --- a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> > > @@ -297,7 +297,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> > > index 961fe4395758..16fd8a7490fc 100644
> > > --- a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
> > > @@ -115,7 +115,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> > > index 746734ce09be..1eb0415fa11a 100644
> > > --- a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
> > > @@ -297,7 +297,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> > > index f94653229dd4..a2c32db8f14e 100644
> > > --- a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
> > > @@ -315,7 +315,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> > > index 5402cd3120f9..f57c5f3506c2 100644
> > > --- a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
> > > @@ -267,7 +267,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> > > index 832f3cb40b34..311a005dc35b 100644
> > > --- a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
> > > @@ -267,7 +267,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> > > index d69b2a8fc0bc..28e25447d3ef 100644
> > > --- a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> > > @@ -285,7 +285,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> > > index 5f465fd81315..db23db2e98be 100644
> > > --- a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> > > @@ -285,7 +285,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> > > index 3e909b306003..dbb33e00b72a 100644
> > > --- a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> > > @@ -171,7 +171,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> > > index 50c053235752..fb2d7b8875f8 100644
> > > --- a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> > > @@ -171,7 +171,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> > > index e7feb60f9fa9..e3afc3178958 100644
> > > --- a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> > > @@ -303,7 +303,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > diff --git a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> > > index 21d7a0c2c2e8..12d1efba79bb 100644
> > > --- a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> > > +++ b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> > > @@ -315,7 +315,7 @@
> > >       },
> > >       {
> > >           "BriefDescription": "Fraction of cycles spent in Kernel mode",
> > > -        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
> > > +        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
> > >           "MetricGroup": "Summary",
> > >           "MetricName": "Kernel_Utilization"
> > >       },
> > > 
> 
> -- 
> 
> - Arnaldo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [tip: perf/urgent] perf pmu-events x86: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric
  2020-03-09  1:31 [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric Jin Yao
  2020-03-30  0:38 ` Jin, Yao
  2020-03-31 19:30 ` Liang, Kan
@ 2020-04-04  8:41 ` tip-bot2 for Jin Yao
  2 siblings, 0 replies; 7+ messages in thread
From: tip-bot2 for Jin Yao @ 2020-04-04  8:41 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Jin Yao, Andi Kleen, Kan Liang, Alexander Shishkin, Jin Yao,
	Jiri Olsa, Peter Zijlstra, Arnaldo Carvalho de Melo, x86, LKML

The following commit has been merged into the perf/urgent branch of tip:

Commit-ID:     8ed1faf0156e569c46f1b3d59e74c9cbd5e557ff
Gitweb:        https://git.kernel.org/tip/8ed1faf0156e569c46f1b3d59e74c9cbd5e557ff
Author:        Jin Yao <yao.jin@linux.intel.com>
AuthorDate:    Mon, 09 Mar 2020 09:31:25 +08:00
Committer:     Arnaldo Carvalho de Melo <acme@redhat.com>
CommitterDate: Fri, 03 Apr 2020 09:37:56 -03:00

perf pmu-events x86: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric

The kernel utilization metric does multiplexing currently and is somewhat
unreliable. The problem is that it uses two instances of the fixed counter,
and the kernel has to multipleplex which causes errors. So should use
CPU_CLK_UNHALTED.THREAD instead.

Before:

  # perf stat -M Kernel_Utilization -- sleep 1

  Performance counter stats for 'sleep 1':

          1,419,425      cpu_clk_unhalted.ref_tsc:k
      <not counted>      cpu_clk_unhalted.ref_tsc	(0.00%)

After:

  # perf stat -M Kernel_Utilization -- sleep 1

  Performance counter stats for 'sleep 1':

            746,688      cpu_clk_unhalted.thread:k #      0.7 Kernel_Utilization
          1,088,348      cpu_clk_unhalted.thread

Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jin Yao <yao.jin@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20200309013125.7559-1-yao.jin@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json     | 2 +-
 tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json | 2 +-
 tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json    | 2 +-
 tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json  | 2 +-
 tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json       | 2 +-
 tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json      | 2 +-
 tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json     | 2 +-
 tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json       | 2 +-
 tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json      | 2 +-
 tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json   | 2 +-
 tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json       | 2 +-
 tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json      | 2 +-
 12 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
index 45a34ce..8cdc7c1 100644
--- a/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
@@ -297,7 +297,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
index 961fe43..16fd8a7 100644
--- a/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
@@ -115,7 +115,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
index 746734c..1eb0415 100644
--- a/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json
@@ -297,7 +297,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
index a728c6e..7fde0d2 100644
--- a/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
@@ -316,7 +316,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
index 5402cd3..f57c5f3 100644
--- a/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/haswell/hsw-metrics.json
@@ -267,7 +267,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
index 832f3cb..311a005 100644
--- a/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/haswellx/hsx-metrics.json
@@ -267,7 +267,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
index d69b2a8..28e2544 100644
--- a/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
@@ -285,7 +285,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
index 5f465fd..db23db2 100644
--- a/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
@@ -285,7 +285,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
index 3e909b3..dbb33e0 100644
--- a/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
@@ -171,7 +171,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
index 50c0532..fb2d7b8 100644
--- a/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
@@ -171,7 +171,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
index f97e831..8704efe 100644
--- a/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
@@ -304,7 +304,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },
diff --git a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
index 35f5db1..b4f9113 100644
--- a/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
+++ b/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
@@ -316,7 +316,7 @@
     },
     {
         "BriefDescription": "Fraction of cycles spent in Kernel mode",
-        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC",
+        "MetricExpr": "CPU_CLK_UNHALTED.THREAD:k / CPU_CLK_UNHALTED.THREAD",
         "MetricGroup": "Summary",
         "MetricName": "Kernel_Utilization"
     },

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-04-04  8:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-09  1:31 [PATCH] perf/x86/pmu-events: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric Jin Yao
2020-03-30  0:38 ` Jin, Yao
2020-03-31 19:08   ` Arnaldo Carvalho de Melo
2020-03-31 20:04     ` Andi Kleen
2020-03-31 19:30 ` Liang, Kan
2020-03-31 19:33   ` Arnaldo Carvalho de Melo
2020-04-04  8:41 ` [tip: perf/urgent] perf pmu-events x86: " tip-bot2 for Jin Yao

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.