Skip to content

Commit 5c10b04

Browse files
Harry PanIngo Molnar
authored andcommitted
perf/x86/intel: Enable C-state residency events for Apollo Lake
Goldmont microarchitecture supports C1/C3/C6, PC2/PC3/PC6/PC10 state residency counters, the patch enables them for Apollo Lake platform. The MSR information is based on Intel Software Developers' Manual, Vol. 4, Order No. 335592, Table 2-6 and 2-12. Signed-off-by: Harry Pan <[email protected]> Cc: Alexander Shishkin <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Stephane Eranian <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Vince Weaver <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
1 parent fc5d7e5 commit 5c10b04

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

arch/x86/events/intel/cstate.c

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,33 +40,34 @@
4040
* Model specific counters:
4141
* MSR_CORE_C1_RES: CORE C1 Residency Counter
4242
* perf code: 0x00
43-
* Available model: SLM,AMT
43+
* Available model: SLM,AMT,GLM
4444
* Scope: Core (each processor core has a MSR)
4545
* MSR_CORE_C3_RESIDENCY: CORE C3 Residency Counter
4646
* perf code: 0x01
47-
* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL
47+
* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM
4848
* Scope: Core
4949
* MSR_CORE_C6_RESIDENCY: CORE C6 Residency Counter
5050
* perf code: 0x02
5151
* Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW
52-
* SKL,KNL
52+
* SKL,KNL,GLM
5353
* Scope: Core
5454
* MSR_CORE_C7_RESIDENCY: CORE C7 Residency Counter
5555
* perf code: 0x03
5656
* Available model: SNB,IVB,HSW,BDW,SKL
5757
* Scope: Core
5858
* MSR_PKG_C2_RESIDENCY: Package C2 Residency Counter.
5959
* perf code: 0x00
60-
* Available model: SNB,IVB,HSW,BDW,SKL,KNL
60+
* Available model: SNB,IVB,HSW,BDW,SKL,KNL,GLM
6161
* Scope: Package (physical package)
6262
* MSR_PKG_C3_RESIDENCY: Package C3 Residency Counter.
6363
* perf code: 0x01
6464
* Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL
65+
* GLM
6566
* Scope: Package (physical package)
6667
* MSR_PKG_C6_RESIDENCY: Package C6 Residency Counter.
6768
* perf code: 0x02
6869
* Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW
69-
* SKL,KNL
70+
* SKL,KNL,GLM
7071
* Scope: Package (physical package)
7172
* MSR_PKG_C7_RESIDENCY: Package C7 Residency Counter.
7273
* perf code: 0x03
@@ -82,7 +83,7 @@
8283
* Scope: Package (physical package)
8384
* MSR_PKG_C10_RESIDENCY: Package C10 Residency Counter.
8485
* perf code: 0x06
85-
* Available model: HSW ULT only
86+
* Available model: HSW ULT, GLM
8687
* Scope: Package (physical package)
8788
*
8889
*/
@@ -504,6 +505,17 @@ static const struct cstate_model knl_cstates __initconst = {
504505
};
505506

506507

508+
static const struct cstate_model glm_cstates __initconst = {
509+
.core_events = BIT(PERF_CSTATE_CORE_C1_RES) |
510+
BIT(PERF_CSTATE_CORE_C3_RES) |
511+
BIT(PERF_CSTATE_CORE_C6_RES),
512+
513+
.pkg_events = BIT(PERF_CSTATE_PKG_C2_RES) |
514+
BIT(PERF_CSTATE_PKG_C3_RES) |
515+
BIT(PERF_CSTATE_PKG_C6_RES) |
516+
BIT(PERF_CSTATE_PKG_C10_RES),
517+
};
518+
507519

508520
#define X86_CSTATES_MODEL(model, states) \
509521
{ X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long) &(states) }
@@ -546,6 +558,8 @@ static const struct x86_cpu_id intel_cstates_match[] __initconst = {
546558

547559
X86_CSTATES_MODEL(INTEL_FAM6_XEON_PHI_KNL, knl_cstates),
548560
X86_CSTATES_MODEL(INTEL_FAM6_XEON_PHI_KNM, knl_cstates),
561+
562+
X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT, glm_cstates),
549563
{ },
550564
};
551565
MODULE_DEVICE_TABLE(x86cpu, intel_cstates_match);

0 commit comments

Comments
 (0)