Skip to content

Commit 210cc5f

Browse files
Kan LiangIngo Molnar
authored andcommitted
perf/x86/intel/uncore: Add uncore support for Snow Ridge server
The uncore subsystem on Snow Ridge is similar as previous SKX server. The uncore units on Snow Ridge include Ubox, Chabox, IIO, IRP, M2PCIE, PCU, M2M, PCIE3 and IMC. - The config register encoding and pci device IDs are changed. - For CHA, the umask_ext and filter_tid fields are changed. - For IIO, the ch_mask and fc_mask fields are changed. - For M2M, the mask_ext field is changed. - Add new PCIe3 unit for PCIe3 root port which provides the interface between PCIe devices, plugged into the PCIe port, and the components (in M2IOSF). - IMC can only be accessed via MMIO on Snow Ridge now. Current common code doesn't support it yet. IMC will be supported in following patches. - There are 9 free running counters for IIO CLOCKS and bandwidth In. - Full uncore event list is not published yet. Event constrain is not included in this patch. It will be added later separately. Signed-off-by: Kan Liang <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Cc: [email protected] Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
1 parent 543ac28 commit 210cc5f

File tree

3 files changed

+411
-0
lines changed

3 files changed

+411
-0
lines changed

arch/x86/events/intel/uncore.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1375,6 +1375,11 @@ static const struct intel_uncore_init_fun icl_uncore_init __initconst = {
13751375
.pci_init = skl_uncore_pci_init,
13761376
};
13771377

1378+
static const struct intel_uncore_init_fun snr_uncore_init __initconst = {
1379+
.cpu_init = snr_uncore_cpu_init,
1380+
.pci_init = snr_uncore_pci_init,
1381+
};
1382+
13781383
static const struct x86_cpu_id intel_uncore_match[] __initconst = {
13791384
X86_UNCORE_MODEL_MATCH(INTEL_FAM6_NEHALEM_EP, nhm_uncore_init),
13801385
X86_UNCORE_MODEL_MATCH(INTEL_FAM6_NEHALEM, nhm_uncore_init),
@@ -1404,6 +1409,7 @@ static const struct x86_cpu_id intel_uncore_match[] __initconst = {
14041409
X86_UNCORE_MODEL_MATCH(INTEL_FAM6_ICELAKE_MOBILE, icl_uncore_init),
14051410
X86_UNCORE_MODEL_MATCH(INTEL_FAM6_ICELAKE_NNPI, icl_uncore_init),
14061411
X86_UNCORE_MODEL_MATCH(INTEL_FAM6_ICELAKE_DESKTOP, icl_uncore_init),
1412+
X86_UNCORE_MODEL_MATCH(INTEL_FAM6_ATOM_TREMONT_X, snr_uncore_init),
14071413
{},
14081414
};
14091415

arch/x86/events/intel/uncore.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,8 @@ int knl_uncore_pci_init(void);
538538
void knl_uncore_cpu_init(void);
539539
int skx_uncore_pci_init(void);
540540
void skx_uncore_cpu_init(void);
541+
int snr_uncore_pci_init(void);
542+
void snr_uncore_cpu_init(void);
541543

542544
/* uncore_nhmex.c */
543545
void nhmex_uncore_cpu_init(void);

0 commit comments

Comments
 (0)