powercap: intel_rapl: Add support for Cannon Lake
Subsystems (3)
PATCH 1/3 powercap: intel_rapl: Add support for Cannon Lake
Cannon Lake microarchitecture is similar to Kaby Lake in terms of RAPL, this patch enables CNL RAPL support.
--- drivers/powercap/intel_rapl.c | 1 + 1 file changed, 1 insertion(+)
drivers/powercap/intel_rapl.c +1 -0
@@ -1162,6 +1162,7 @@ static const struct x86_cpu_id rapl_ids[] __initconst = {RAPL_CPU (INTEL_FAM6_SKYLAKE_X , rapl_defaults_hsw_server),RAPL_CPU (INTEL_FAM6_KABYLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_KABYLAKE_DESKTOP , rapl_defaults_core), +RAPL_CPU (INTEL_FAM6_CANNONLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_ATOM_SILVERMONT1 , rapl_defaults_byt), RAPL_CPU(INTEL_FAM6_ATOM_AIRMONT, rapl_defaults_cht),
Signature · 1 line
2.13.5
PATCH 2/3 perf/x86/intel: Add Cannon Lake support of RAPL profiling
This patch enables RAPL counters (energy consumption counters) support for Cannon Lake processors.
ESU and power domains refer to Intel Software Developers' Manual, Vol. 4, Order No. 335592.
Usage example:
$ perf list $ perf stat -a -e power/energy-cores/,power/energy-pkg/ sleep 10
--- arch/x86/events/intel/rapl.c | 2 ++ 1 file changed, 2 insertions(+)
arch/x86/events/intel/rapl.c +2 -0
@@ -774,6 +774,8 @@ static const struct x86_cpu_id rapl_cpu_match[] __initconst = {X86_RAPL_MODEL_MATCH (INTEL_FAM6_KABYLAKE_MOBILE , skl_rapl_init),X86_RAPL_MODEL_MATCH (INTEL_FAM6_KABYLAKE_DESKTOP , skl_rapl_init), +X86_RAPL_MODEL_MATCH (INTEL_FAM6_CANNONLAKE_MOBILE , skl_rapl_init), +X86_RAPL_MODEL_MATCH (INTEL_FAM6_ATOM_GOLDMONT , hsw_rapl_init), X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_DENVERTON, hsw_rapl_init),
Signature · 1 line
2.13.5
Re: [PATCH 2/3] perf/x86/intel: Add Cannon Lake support of RAPL profiling
Hi Harry,
Quoted 6 lines · Harry Pan
This patch enables RAPL counters (energy consumption counters) support for Cannon Lake processors.
ESU and power domains refer to Intel Software Developers' Manual, Vol. 4, Order No. 335592.
Quoted 6 lines
Usage example:
$ perf list $ perf stat -a -e power/energy-cores/,power/energy-pkg/ sleep 10Signed-off-by Harry Pan <[email protected]>
Quoted 10 lines
--- arch/x86/events/intel/rapl.c | 2 ++ 1 file changed, 2 insertions(+)arch/x86/events/intel/rapl.c +0
-0
arch/x86/events/intel/rapl.c static const struct x86_cpu_id rapl_cpu_match[] __initconst = { · line 781
Quoted 8 lines
arch/x86/events/intel/rapl.c +2
-0@@ -774,6 +774,8 @@ static const struct x86_cpu_id rapl_cpu_match[] __initconst = {X86_RAPL_MODEL_MATCH (INTEL_FAM6_KABYLAKE_MOBILE , skl_rapl_init),X86_RAPL_MODEL_MATCH (INTEL_FAM6_KABYLAKE_DESKTOP , skl_rapl_init), +X86_RAPL_MODEL_MATCH (INTEL_FAM6_CANNONLAKE_MOBILE , skl_rapl_init), +X86_RAPL_MODEL_MATCH (INTEL_FAM6_ATOM_GOLDMONT , hsw_rapl_init), X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_DENVERTON, hsw_rapl_init),
Thanks,
Signature · 7 lines
Benson Leung Staff Software Engineer Chrome OS Kernel Google Inc. [email protected] Chromium OS Project [email protected]
Puthikorn Voravootivat
Tested-byRe: [PATCH 2/3] perf/x86/intel: Add Cannon Lake support of RAPL profiling
Quoted 9 lines · Benson Leung
Hi Harry,
Quoted 6 lines · Harry Pan
This patch enables RAPL counters (energy consumption counters) support for Cannon Lake processors.
ESU and power domains refer to Intel Software Developers' Manual, Vol. 4, Order No. 335592.
Quoted 8 lines
Quoted 6 lines
Usage example:
$ perf list $ perf stat -a -e power/energy-cores/,power/energy-pkg/ sleep 10Signed-off-by Harry Pan <[email protected]>Reviewed-by Benson Leung <[email protected]>
Quoted 9 lines
arch/x86/events/intel/rapl.c static const struct x86_cpu_id rapl_cpu_match[]
Quoted 9 lines
--- arch/x86/events/intel/rapl.c | 2 ++ 1 file changed, 2 insertions(+)arch/x86/events/intel/rapl.c +0
-0@@ -774,6 +774,8 @@ static const struct x86_cpu_id rapl_cpu_match[]
__initconst = {
Quoted 4 lines
arch/x86/events/intel/rapl.c static const struct x86_cpu_id rapl_cpu_match[] __initconst = {
Quoted 4 lines
arch/x86/events/intel/rapl.c +1
-0X86_RAPL_MODEL_MATCH (INTEL_FAM6_KABYLAKE_MOBILE , skl_rapl_init),X86_RAPL_MODEL_MATCH (INTEL_FAM6_KABYLAKE_DESKTOP , skl_rapl_init), + X86_RAPL_MODEL_MATCH(INTEL_FAM6_CANNONLAKE_MOBILE,
skl_rapl_init),
Quoted 15 lines
arch/x86/events/intel/rapl.c static const struct x86_cpu_id rapl_cpu_match[] __initconst = { · line 781
Quoted 5 lines
arch/x86/events/intel/rapl.c +1
-0+X86_RAPL_MODEL_MATCH (INTEL_FAM6_ATOM_GOLDMONT , hsw_rapl_init), X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_DENVERTON, hsw_rapl_init),Thanks,
--
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
[email protected]
Chromium OS Project
[email protected]
tip-bot for Harry Pan
merge bot[tip:perf/core] perf/x86/intel: Add Cannon Lake support for RAPL profiling
In reply to Harry Panperf/x86/intel: Add Cannon Lake support for RAPL profiling
Commit-ID: 490d03e83da2a5e9d7db84b1ec30a9c95415787e Gitweb: https://git.kernel.org/tip/490d03e83da2a5e9d7db84b1ec30a9c95415787e Author: Harry Pan <[email protected]> AuthorDate: Fri, 9 Mar 2018 20:15:47 +0800 Committer: Ingo Molnar <[email protected]> CommitDate: Sat, 31 Mar 2018 11:28:36 +0200
perf/x86/intel: Add Cannon Lake support for RAPL profiling
This patch enables RAPL counters (energy consumption counters) support for Cannon Lake processors.
( ESU and power domains refer to Intel Software Developers' Manual,
Vol. 4, Order No. 335592. )
Usage example:
$ perf list $ perf stat -a -e power/energy-cores/,power/energy-pkg/ sleep 10
--- arch/x86/events/intel/rapl.c | 2 ++ 1 file changed, 2 insertions(+)
arch/x86/events/intel/rapl.c +2 -0
@@ -774,6 +774,8 @@ static const struct x86_cpu_id rapl_cpu_match[] __initconst = {X86_RAPL_MODEL_MATCH (INTEL_FAM6_KABYLAKE_MOBILE , skl_rapl_init),X86_RAPL_MODEL_MATCH (INTEL_FAM6_KABYLAKE_DESKTOP , skl_rapl_init), +X86_RAPL_MODEL_MATCH (INTEL_FAM6_CANNONLAKE_MOBILE , skl_rapl_init), +X86_RAPL_MODEL_MATCH (INTEL_FAM6_ATOM_GOLDMONT , hsw_rapl_init), X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_DENVERTON, hsw_rapl_init),
PATCH 3/3 perf/x86/intel: Enable C-state residency events for Cannon Lake
In reply to Harry PanCannon Lake supports C1/C3/C6/C7, PC2/PC3/PC6/PC7/PC8/PC9/PC10 state residency counters, this patch enables those counters.
The MSR information is based on Intel Software Developers' Manual, Vol. 4, Order No. 335592.
--- arch/x86/events/intel/cstate.c | 44 +++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-)
arch/x86/events/intel/cstate.c +31 -13
@@ -40,50 +40,51 @@* Model specific counters: * MSR_CORE_C1_RES: CORE C1 Residency Counter * perf code: 0x00 -* Available model: SLM,AMT,GLM +* Available model: SLM,AMT,GLM,CNL * Scope: Core (each processor core has a MSR) * MSR_CORE_C3_RESIDENCY: CORE C3 Residency Counter * perf code: 0x01 -* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM +* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM, +CNL * Scope: Core * MSR_CORE_C6_RESIDENCY: CORE C6 Residency Counter * perf code: 0x02 -* Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW -* SKL,KNL,GLM +* Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW, +* SKL,KNL,GLM,CNL * Scope: Core * MSR_CORE_C7_RESIDENCY: CORE C7 Residency Counter * perf code: 0x03 -* Available model: SNB,IVB,HSW,BDW,SKL +* Available model: SNB,IVB,HSW,BDW,SKL,CNL * Scope: Core * MSR_PKG_C2_RESIDENCY: Package C2 Residency Counter. * perf code: 0x00 -* Available model: SNB,IVB,HSW,BDW,SKL,KNL,GLM +* Available model: SNB,IVB,HSW,BDW,SKL,KNL,GLM,CNL * Scope: Package (physical package) * MSR_PKG_C3_RESIDENCY: Package C3 Residency Counter. * perf code: 0x01 -* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL -* GLM +* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL, +* GLM,CNL * Scope: Package (physical package) * MSR_PKG_C6_RESIDENCY: Package C6 Residency Counter. * perf code: 0x02 * Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW -* SKL,KNL,GLM +* SKL,KNL,GLM,CNL * Scope: Package (physical package) * MSR_PKG_C7_RESIDENCY: Package C7 Residency Counter. * perf code: 0x03 -* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL +* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,CNL * Scope: Package (physical package) * MSR_PKG_C8_RESIDENCY: Package C8 Residency Counter. * perf code: 0x04 -* Available model: HSW ULT only +* Available model: HSW ULT,CNL * Scope: Package (physical package) * MSR_PKG_C9_RESIDENCY: Package C9 Residency Counter. * perf code: 0x05 -* Available model: HSW ULT only +* Available model: HSW ULT,CNL * Scope: Package (physical package) * MSR_PKG_C10_RESIDENCY: Package C10 Residency Counter. * perf code: 0x06 -* Available model: HSW ULT, GLM +* Available model: HSW ULT,GLM,CNL * Scope: Package (physical package) * */
@@ -486,6 +487,21 @@ static const struct cstate_model hswult_cstates __initconst = { BIT(PERF_CSTATE_PKG_C10_RES), }; +static const struct cstate_model cnl_cstates__initconst = { + .core_events =BIT (PERF_CSTATE_CORE_C1_RES ) | +BIT (PERF_CSTATE_CORE_C3_RES ) | +BIT (PERF_CSTATE_CORE_C6_RES ) | +BIT (PERF_CSTATE_CORE_C7_RES ), + + .pkg_events =BIT (PERF_CSTATE_PKG_C2_RES ) | +BIT (PERF_CSTATE_PKG_C3_RES ) | +BIT (PERF_CSTATE_PKG_C6_RES ) | +BIT (PERF_CSTATE_PKG_C7_RES ) | +BIT (PERF_CSTATE_PKG_C8_RES ) | +BIT (PERF_CSTATE_PKG_C9_RES ) | +BIT (PERF_CSTATE_PKG_C10_RES ), +}; +static const struct cstate_model slm_cstates__initconst = { .core_events =BIT (PERF_CSTATE_CORE_C1_RES ) |BIT (PERF_CSTATE_CORE_C6_RES ),
@@ -557,6 +573,8 @@ static const struct x86_cpu_id intel_cstates_match[] __initconst = {X86_CSTATES_MODEL (INTEL_FAM6_KABYLAKE_MOBILE , snb_cstates),X86_CSTATES_MODEL (INTEL_FAM6_KABYLAKE_DESKTOP , snb_cstates), +X86_CSTATES_MODEL (INTEL_FAM6_CANNONLAKE_MOBILE , cnl_cstates), +X86_CSTATES_MODEL (INTEL_FAM6_XEON_PHI_KNL , knl_cstates), X86_CSTATES_MODEL(INTEL_FAM6_XEON_PHI_KNM, knl_cstates),
Signature · 1 line
2.13.5
Re: [PATCH 3/3] perf/x86/intel: Enable C-state residency events for Cannon Lake
Hi Harry,
Quoted 7 lines · Harry Pan
Cannon Lake supports C1/C3/C6/C7, PC2/PC3/PC6/PC7/PC8/PC9/PC10 state residency counters, this patch enables those counters.
The MSR information is based on Intel Software Developers' Manual, Vol. 4, Order No. 335592.
Signed-off-by Harry Pan <[email protected]>
Quoted 97 lines
--- arch/x86/events/intel/cstate.c | 44 +++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-)arch/x86/events/intel/cstate.c +29
-13@@ -40,50 +40,51 @@* Model specific counters: * MSR_CORE_C1_RES: CORE C1 Residency Counter * perf code: 0x00 -* Available model: SLM,AMT,GLM +* Available model: SLM,AMT,GLM,CNL * Scope: Core (each processor core has a MSR) * MSR_CORE_C3_RESIDENCY: CORE C3 Residency Counter * perf code: 0x01 -* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM +* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM, +CNL * Scope: Core * MSR_CORE_C6_RESIDENCY: CORE C6 Residency Counter * perf code: 0x02 -* Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW -* SKL,KNL,GLM +* Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW, +* SKL,KNL,GLM,CNL * Scope: Core * MSR_CORE_C7_RESIDENCY: CORE C7 Residency Counter * perf code: 0x03 -* Available model: SNB,IVB,HSW,BDW,SKL +* Available model: SNB,IVB,HSW,BDW,SKL,CNL * Scope: Core * MSR_PKG_C2_RESIDENCY: Package C2 Residency Counter. * perf code: 0x00 -* Available model: SNB,IVB,HSW,BDW,SKL,KNL,GLM +* Available model: SNB,IVB,HSW,BDW,SKL,KNL,GLM,CNL * Scope: Package (physical package) * MSR_PKG_C3_RESIDENCY: Package C3 Residency Counter. * perf code: 0x01 -* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL -* GLM +* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL, +* GLM,CNL * Scope: Package (physical package) * MSR_PKG_C6_RESIDENCY: Package C6 Residency Counter. * perf code: 0x02 * Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW -* SKL,KNL,GLM +* SKL,KNL,GLM,CNL * Scope: Package (physical package) * MSR_PKG_C7_RESIDENCY: Package C7 Residency Counter. * perf code: 0x03 -* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL +* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,CNL * Scope: Package (physical package) * MSR_PKG_C8_RESIDENCY: Package C8 Residency Counter. * perf code: 0x04 -* Available model: HSW ULT only +* Available model: HSW ULT,CNL * Scope: Package (physical package) * MSR_PKG_C9_RESIDENCY: Package C9 Residency Counter. * perf code: 0x05 -* Available model: HSW ULT only +* Available model: HSW ULT,CNL * Scope: Package (physical package) * MSR_PKG_C10_RESIDENCY: Package C10 Residency Counter. * perf code: 0x06 -* Available model: HSW ULT, GLM +* Available model: HSW ULT,GLM,CNL * Scope: Package (physical package) * */ @@ -486,6 +487,21 @@ static const struct cstate_model hswult_cstates __initconst = { BIT(PERF_CSTATE_PKG_C10_RES), }; +static const struct cstate_model cnl_cstates__initconst = { + .core_events =BIT (PERF_CSTATE_CORE_C1_RES ) | +BIT (PERF_CSTATE_CORE_C3_RES ) | +BIT (PERF_CSTATE_CORE_C6_RES ) | +BIT (PERF_CSTATE_CORE_C7_RES ), + + .pkg_events =BIT (PERF_CSTATE_PKG_C2_RES ) | +BIT (PERF_CSTATE_PKG_C3_RES ) | +BIT (PERF_CSTATE_PKG_C6_RES ) | +BIT (PERF_CSTATE_PKG_C7_RES ) | +BIT (PERF_CSTATE_PKG_C8_RES ) | +BIT (PERF_CSTATE_PKG_C9_RES ) | +BIT (PERF_CSTATE_PKG_C10_RES ), +}; +static const struct cstate_model slm_cstates__initconst = { .core_events =BIT (PERF_CSTATE_CORE_C1_RES ) |BIT (PERF_CSTATE_CORE_C6_RES ),
arch/x86/events/intel/cstate.c static const struct x86_cpu_id intel_cstates_match[] __initconst = { · line 580
Quoted 8 lines
arch/x86/events/intel/cstate.c +2
-0@@ -557,6 +573,8 @@ static const struct x86_cpu_id intel_cstates_match[] __initconst = {X86_CSTATES_MODEL (INTEL_FAM6_KABYLAKE_MOBILE , snb_cstates),X86_CSTATES_MODEL (INTEL_FAM6_KABYLAKE_DESKTOP , snb_cstates), +X86_CSTATES_MODEL (INTEL_FAM6_CANNONLAKE_MOBILE , cnl_cstates), +X86_CSTATES_MODEL (INTEL_FAM6_XEON_PHI_KNL , knl_cstates), X86_CSTATES_MODEL(INTEL_FAM6_XEON_PHI_KNM, knl_cstates),
Thank you!
Signature · 7 lines
Benson Leung Staff Software Engineer Chrome OS Kernel Google Inc. [email protected] Chromium OS Project [email protected]
Puthikorn Voravootivat
Tested-byRe: [PATCH 3/3] perf/x86/intel: Enable C-state residency events for Cannon Lake
Quoted 6 lines · Benson Leung
Hi Harry,
Quoted 3 lines · Harry Pan
Cannon Lake supports C1/C3/C6/C7, PC2/PC3/PC6/PC7/PC8/PC9/PC10 state residency counters, this patch enables those counters.
Quoted 6 lines
Quoted 4 lines
The MSR information is based on Intel Software Developers' Manual, Vol. 4, Order No. 335592.
Signed-off-by Harry Pan <[email protected]>Reviewed-by Benson Leung <[email protected]>
Quoted 2 lines
Quoted 2 lines
--- arch/x86/events/intel/cstate.c | 44
+++++++++++++++++++++++++++++-------------
Quoted 3 lines
Review
Quoted 3 lines
1 file changed, 31 insertions(+), 13 deletions(-)(quoted diff) +0
-0
b/arch/x86/events/intel/cstate.c
Quoted 5 lines
Quoted 5 lines
index
72db0664a53d..9aca448bb8e6100644arch/x86/events/intel/cstate.c +0
-0@@ -40,50 +40,51 @@* Model specific counters:
Quoted 8 lines
arch/x86/events/intel/cstate.c
Quoted 8 lines
arch/x86/events/intel/cstate.c +1
-2* MSR_CORE_C1_RES: CORE C1 Residency Counter * perf code: 0x00 -* Available model: SLM,AMT,GLM +* Available model: SLM,AMT,GLM,CNL * Scope: Core (each processor core has a MSR) * MSR_CORE_C3_RESIDENCY: CORE C3 Residency Counter * perf code: 0x01 -* Available model:
NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM
Quoted 1 line
arch/x86/events/intel/cstate.c line 47
Quoted 1 line
arch/x86/events/intel/cstate.c +1
-0+* Available model:
NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM,
Quoted 5 lines
arch/x86/events/intel/cstate.c
Quoted 5 lines
arch/x86/events/intel/cstate.c +1
-1+CNL * Scope: Core * MSR_CORE_C6_RESIDENCY: CORE C6 Residency Counter * perf code: 0x02 -* Available model:
SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW
Quoted 2 lines
arch/x86/events/intel/cstate.c line 52
Quoted 2 lines
arch/x86/events/intel/cstate.c +1
-1-* SKL,KNL,GLM +* Available model:
SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW,
Quoted 10 lines
arch/x86/events/intel/cstate.c
Quoted 10 lines
arch/x86/events/intel/cstate.c +2
-2+* SKL,KNL,GLM,CNL * Scope: Core * MSR_CORE_C7_RESIDENCY: CORE C7 Residency Counter * perf code: 0x03 -* Available model: SNB,IVB,HSW,BDW,SKL +* Available model: SNB,IVB,HSW,BDW,SKL,CNL * Scope: Core * MSR_PKG_C2_RESIDENCY: Package C2 Residency Counter. * perf code: 0x00 -* Available model:
SNB,IVB,HSW,BDW,SKL,KNL,GLM
Quoted 1 line
arch/x86/events/intel/cstate.c line 61
Quoted 1 line
arch/x86/events/intel/cstate.c +1
-0+* Available model:
SNB,IVB,HSW,BDW,SKL,KNL,GLM,CNL
Quoted 4 lines
arch/x86/events/intel/cstate.c
Quoted 4 lines
arch/x86/events/intel/cstate.c +0
-1* Scope: Package (physical package) * MSR_PKG_C3_RESIDENCY: Package C3 Residency Counter. * perf code: 0x01 -* Available model:
NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL
Quoted 2 lines
arch/x86/events/intel/cstate.c line 65
Quoted 2 lines
arch/x86/events/intel/cstate.c +1
-1-* GLM +* Available model:
NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL,
Quoted 5 lines
arch/x86/events/intel/cstate.c
Quoted 5 lines
arch/x86/events/intel/cstate.c +1
-0+* GLM,CNL * Scope: Package (physical package) * MSR_PKG_C6_RESIDENCY: Package C6 Residency Counter. * perf code: 0x02 * Available model:
SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW
Quoted 6 lines
arch/x86/events/intel/cstate.c
Quoted 6 lines
arch/x86/events/intel/cstate.c +1
-2-* SKL,KNL,GLM +* SKL,KNL,GLM,CNL * Scope: Package (physical package) * MSR_PKG_C7_RESIDENCY: Package C7 Residency Counter. * perf code: 0x03 -* Available model:
NHM,WSM,SNB,IVB,HSW,BDW,SKL
Quoted 1 line
arch/x86/events/intel/cstate.c line 75
Quoted 1 line
arch/x86/events/intel/cstate.c +1
-0+* Available model:
NHM,WSM,SNB,IVB,HSW,BDW,SKL,CNL
Quoted 11 lines
Quoted 11 lines
arch/x86/events/intel/cstate.c +2
-2* Scope: Package (physical package) * MSR_PKG_C8_RESIDENCY: Package C8 Residency Counter. * perf code: 0x04 -* Available model: HSW ULT only +* Available model: HSW ULT,CNL * Scope: Package (physical package) * MSR_PKG_C9_RESIDENCY: Package C9 Residency Counter. * perf code: 0x05 -* Available model: HSW ULT only +* Available model: HSW ULT,CNL * Scope: Package (physical package)
Quoted 8 lines
arch/x86/events/intel/cstate.c static const struct cstate_model hswult_cstates
Quoted 8 lines
arch/x86/events/intel/cstate.c +1
-1* MSR_PKG_C10_RESIDENCY: Package C10 Residency Counter. * perf code: 0x06 -* Available model: HSW ULT, GLM +* Available model: HSW ULT,GLM,CNL * Scope: Package (physical package) * */ @@ -486,6 +487,21 @@ static const struct cstate_model hswult_cstates
__initconst = {
Quoted 14 lines
Quoted 14 lines
arch/x86/events/intel/cstate.c +11
-0BIT(PERF_CSTATE_PKG_C10_RES), }; +static const struct cstate_model cnl_cstates__initconst = { + .core_events =BIT (PERF_CSTATE_CORE_C1_RES ) | +BIT (PERF_CSTATE_CORE_C3_RES ) | +BIT (PERF_CSTATE_CORE_C6_RES ) | +BIT (PERF_CSTATE_CORE_C7_RES ), + + .pkg_events =BIT (PERF_CSTATE_PKG_C2_RES ) | +BIT (PERF_CSTATE_PKG_C3_RES ) | +BIT (PERF_CSTATE_PKG_C6_RES ) | +BIT (PERF_CSTATE_PKG_C7_RES ) | + BIT(PERF_CSTATE_PKG_C8_RES) |
Quoted 8 lines
arch/x86/events/intel/cstate.c static const struct x86_cpu_id
Quoted 8 lines
arch/x86/events/intel/cstate.c +4
-0+BIT (PERF_CSTATE_PKG_C9_RES ) | + BIT(PERF_CSTATE_PKG_C10_RES), +}; +static const struct cstate_model slm_cstates__initconst = { .core_events =BIT (PERF_CSTATE_CORE_C1_RES ) | BIT(PERF_CSTATE_CORE_C6_RES),@@ -557,6 +573,8 @@ static const struct x86_cpu_id
intel_cstates_match[] __initconst = {
Quoted 19 lines
arch/x86/events/intel/cstate.c static const struct x86_cpu_id intel_cstates_match[] __initconst = { · line 580
Quoted 9 lines
arch/x86/events/intel/cstate.c +2
-0X86_CSTATES_MODEL (INTEL_FAM6_KABYLAKE_MOBILE , snb_cstates),X86_CSTATES_MODEL (INTEL_FAM6_KABYLAKE_DESKTOP , snb_cstates), +X86_CSTATES_MODEL (INTEL_FAM6_CANNONLAKE_MOBILE , cnl_cstates), +X86_CSTATES_MODEL (INTEL_FAM6_XEON_PHI_KNL , knl_cstates), X86_CSTATES_MODEL(INTEL_FAM6_XEON_PHI_KNM, knl_cstates),Thank you!
--
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
[email protected]
Chromium OS Project
[email protected]
tip-bot for Harry Pan
merge bot[tip:perf/core] perf/x86/intel: Enable C-state residency events for Cannon Lake
In reply to Harry Panperf/x86/intel: Enable C-state residency events for Cannon Lake
Commit-ID: 1159e09476536250c2a0173d4298d15114df7a89 Gitweb: https://git.kernel.org/tip/1159e09476536250c2a0173d4298d15114df7a89 Author: Harry Pan <[email protected]> AuthorDate: Fri, 9 Mar 2018 20:15:48 +0800 Committer: Ingo Molnar <[email protected]> CommitDate: Sat, 31 Mar 2018 11:28:36 +0200
perf/x86/intel: Enable C-state residency events for Cannon Lake
Cannon Lake supports C1/C3/C6/C7, PC2/PC3/PC6/PC7/PC8/PC9/PC10 state residency counters, this patch enables those counters.
( The MSR information is based on Intel Software Developers' Manual,
Vol. 4, Order No. 335592. )
--- arch/x86/events/intel/cstate.c | 44 +++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-)
arch/x86/events/intel/cstate.c +31 -13
@@ -40,50 +40,51 @@* Model specific counters: * MSR_CORE_C1_RES: CORE C1 Residency Counter * perf code: 0x00 -* Available model: SLM,AMT,GLM +* Available model: SLM,AMT,GLM,CNL * Scope: Core (each processor core has a MSR) * MSR_CORE_C3_RESIDENCY: CORE C3 Residency Counter * perf code: 0x01 -* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM +* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM, +CNL * Scope: Core * MSR_CORE_C6_RESIDENCY: CORE C6 Residency Counter * perf code: 0x02 -* Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW -* SKL,KNL,GLM +* Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW, +* SKL,KNL,GLM,CNL * Scope: Core * MSR_CORE_C7_RESIDENCY: CORE C7 Residency Counter * perf code: 0x03 -* Available model: SNB,IVB,HSW,BDW,SKL +* Available model: SNB,IVB,HSW,BDW,SKL,CNL * Scope: Core * MSR_PKG_C2_RESIDENCY: Package C2 Residency Counter. * perf code: 0x00 -* Available model: SNB,IVB,HSW,BDW,SKL,KNL,GLM +* Available model: SNB,IVB,HSW,BDW,SKL,KNL,GLM,CNL * Scope: Package (physical package) * MSR_PKG_C3_RESIDENCY: Package C3 Residency Counter. * perf code: 0x01 -* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL -* GLM +* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL, +* GLM,CNL * Scope: Package (physical package) * MSR_PKG_C6_RESIDENCY: Package C6 Residency Counter. * perf code: 0x02 * Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW -* SKL,KNL,GLM +* SKL,KNL,GLM,CNL * Scope: Package (physical package) * MSR_PKG_C7_RESIDENCY: Package C7 Residency Counter. * perf code: 0x03 -* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL +* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,CNL * Scope: Package (physical package) * MSR_PKG_C8_RESIDENCY: Package C8 Residency Counter. * perf code: 0x04 -* Available model: HSW ULT only +* Available model: HSW ULT,CNL * Scope: Package (physical package) * MSR_PKG_C9_RESIDENCY: Package C9 Residency Counter. * perf code: 0x05 -* Available model: HSW ULT only +* Available model: HSW ULT,CNL * Scope: Package (physical package) * MSR_PKG_C10_RESIDENCY: Package C10 Residency Counter. * perf code: 0x06 -* Available model: HSW ULT, GLM +* Available model: HSW ULT,GLM,CNL * Scope: Package (physical package) * */
@@ -486,6 +487,21 @@ static const struct cstate_model hswult_cstates __initconst = { BIT(PERF_CSTATE_PKG_C10_RES), }; +static const struct cstate_model cnl_cstates__initconst = { + .core_events =BIT (PERF_CSTATE_CORE_C1_RES ) | +BIT (PERF_CSTATE_CORE_C3_RES ) | +BIT (PERF_CSTATE_CORE_C6_RES ) | +BIT (PERF_CSTATE_CORE_C7_RES ), + + .pkg_events =BIT (PERF_CSTATE_PKG_C2_RES ) | +BIT (PERF_CSTATE_PKG_C3_RES ) | +BIT (PERF_CSTATE_PKG_C6_RES ) | +BIT (PERF_CSTATE_PKG_C7_RES ) | +BIT (PERF_CSTATE_PKG_C8_RES ) | +BIT (PERF_CSTATE_PKG_C9_RES ) | +BIT (PERF_CSTATE_PKG_C10_RES ), +}; +static const struct cstate_model slm_cstates__initconst = { .core_events =BIT (PERF_CSTATE_CORE_C1_RES ) |BIT (PERF_CSTATE_CORE_C6_RES ),
@@ -557,6 +573,8 @@ static const struct x86_cpu_id intel_cstates_match[] __initconst = {X86_CSTATES_MODEL (INTEL_FAM6_KABYLAKE_MOBILE , snb_cstates),X86_CSTATES_MODEL (INTEL_FAM6_KABYLAKE_DESKTOP , snb_cstates), +X86_CSTATES_MODEL (INTEL_FAM6_CANNONLAKE_MOBILE , cnl_cstates), +X86_CSTATES_MODEL (INTEL_FAM6_XEON_PHI_KNL , knl_cstates), X86_CSTATES_MODEL(INTEL_FAM6_XEON_PHI_KNM, knl_cstates),
Hi Harry,
Quoted 4 lines · Harry Pan
Cannon Lake microarchitecture is similar to Kaby Lake in terms of RAPL, this patch enables CNL RAPL support.
Signed-off-by Harry Pan <[email protected]>
Quoted 10 lines
--- drivers/powercap/intel_rapl.c | 1 + 1 file changed, 1 insertion(+)drivers/powercap/intel_rapl.c +0
-0
drivers/powercap/intel_rapl.c static const struct x86_cpu_id rapl_ids[] __initconst = { · line 1168
Quoted 7 lines
drivers/powercap/intel_rapl.c +1
-0@@ -1162,6 +1162,7 @@ static const struct x86_cpu_id rapl_ids[] __initconst = {RAPL_CPU (INTEL_FAM6_SKYLAKE_X , rapl_defaults_hsw_server),RAPL_CPU (INTEL_FAM6_KABYLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_KABYLAKE_DESKTOP , rapl_defaults_core), +RAPL_CPU (INTEL_FAM6_CANNONLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_ATOM_SILVERMONT1 , rapl_defaults_byt), RAPL_CPU(INTEL_FAM6_ATOM_AIRMONT, rapl_defaults_cht),
Thanks!
Signature · 7 lines
Benson Leung Staff Software Engineer Chrome OS Kernel Google Inc. [email protected] Chromium OS Project [email protected]
Quoted 21 lines · Harry Pan
Cannon Lake microarchitecture is similar to Kaby Lake in terms of RAPL, this patch enables CNL RAPL support.
Signed-off-by Harry Pan <[email protected]>--- drivers/powercap/intel_rapl.c | 1 + 1 file changed, 1 insertion(+)drivers/powercap/intel_rapl.c +1
-0@@ -1162,6 +1162,7 @@ static const struct x86_cpu_id rapl_ids[] __initconst = {RAPL_CPU (INTEL_FAM6_SKYLAKE_X , rapl_defaults_hsw_server),RAPL_CPU (INTEL_FAM6_KABYLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_KABYLAKE_DESKTOP , rapl_defaults_core), +RAPL_CPU (INTEL_FAM6_CANNONLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_ATOM_SILVERMONT1 , rapl_defaults_byt), RAPL_CPU(INTEL_FAM6_ATOM_AIRMONT, rapl_defaults_cht),
Signature · 7 lines
Benson Leung Staff Software Engineer Chrome OS Kernel Google Inc. [email protected] Chromium OS Project [email protected]
Puthikorn Voravootivat
Tested-byQuoted 7 lines · Benson Leung
Quoted 4 lines · Harry Pan
Cannon Lake microarchitecture is similar to Kaby Lake in terms of RAPL, this patch enables CNL RAPL support.
Signed-off-by Harry Pan <[email protected]>
Quoted 5 lines
Review
Quoted 5 lines
--- drivers/powercap/intel_rapl.c | 1 + 1 file changed, 1 insertion(+)(quoted diff) +0
-0
b/drivers/powercap/intel_rapl.c
Quoted 4 lines
drivers/powercap/intel_rapl.c static const struct x86_cpu_id rapl_ids[]
Quoted 4 lines
index
35636e1d8a3d..295d8dcba48c100644drivers/powercap/intel_rapl.c +0
-0@@ -1162,6 +1162,7 @@ static const struct x86_cpu_id rapl_ids[]
__initconst = {
Quoted 17 lines
drivers/powercap/intel_rapl.c static const struct x86_cpu_id rapl_ids[] __initconst = { · line 1168
Quoted 8 lines
drivers/powercap/intel_rapl.c +1
-0RAPL_CPU (INTEL_FAM6_SKYLAKE_X , rapl_defaults_hsw_server),RAPL_CPU (INTEL_FAM6_KABYLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_KABYLAKE_DESKTOP , rapl_defaults_core), +RAPL_CPU (INTEL_FAM6_CANNONLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_ATOM_SILVERMONT1 , rapl_defaults_byt), RAPL_CPU(INTEL_FAM6_ATOM_AIRMONT, rapl_defaults_cht),--
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
[email protected]
Chromium OS Project
[email protected]
Rafael J. Wysocki
maintainerQuoted 4 lines · Harry Pan
Cannon Lake microarchitecture is similar to Kaby Lake in terms of RAPL, this patch enables CNL RAPL support.
Signed-off-by Harry Pan <[email protected]>
I have applied an analogous patch from Joe Konno that was posted earlier.
Thanks!
Quoted 19 lines
--- drivers/powercap/intel_rapl.c | 1 + 1 file changed, 1 insertion(+)drivers/powercap/intel_rapl.c +1
-1@@ -1162,6 +1162,7 @@ static const struct x86_cpu_id rapl_ids[] __initconst = {RAPL_CPU (INTEL_FAM6_SKYLAKE_X , rapl_defaults_hsw_server),RAPL_CPU (INTEL_FAM6_KABYLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_KABYLAKE_DESKTOP , rapl_defaults_core), +RAPL_CPU (INTEL_FAM6_CANNONLAKE_MOBILE , rapl_defaults_core),RAPL_CPU (INTEL_FAM6_ATOM_SILVERMONT1 , rapl_defaults_byt), RAPL_CPU(INTEL_FAM6_ATOM_AIRMONT, rapl_defaults_cht), --2.13.5