perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake
Subsystems (2)
PATCH 1/2 perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake
From: Kan Liang <[email protected]>
KabyLake and CoffeeLake has the same client uncore events as SkyLake.
Add the PCI IDs for KabyLake Y, U, S processor line and CoffeeLake U, H, S processor line.
--- arch/x86/events/intel/uncore_snb.c | 115 ++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 1 deletion(-)
arch/x86/events/intel/uncore_snb.c +114 -1
@@ -15,6 +15,25 @@#define PCI_DEVICE_ID_INTEL_SKL_HQ_IMC 0x1910#define PCI_DEVICE_ID_INTEL_SKL_SD_IMC 0x190f#define PCI_DEVICE_ID_INTEL_SKL_SQ_IMC 0x191f +#define PCI_DEVICE_ID_INTEL_KBL_Y_IMC 0x590c +#define PCI_DEVICE_ID_INTEL_KBL_U_IMC 0x5904 +#define PCI_DEVICE_ID_INTEL_KBL_UQ_IMC 0x5914 +#define PCI_DEVICE_ID_INTEL_KBL_SD_IMC 0x590f +#define PCI_DEVICE_ID_INTEL_KBL_SQ_IMC 0x591f +#define PCI_DEVICE_ID_INTEL_CFL_2U_IMC 0x3ecc +#define PCI_DEVICE_ID_INTEL_CFL_4U_IMC 0x3ed0 +#define PCI_DEVICE_ID_INTEL_CFL_4H_IMC 0x3e10 +#define PCI_DEVICE_ID_INTEL_CFL_6H_IMC 0x3ec4 +#define PCI_DEVICE_ID_INTEL_CFL_2S_D_IMC 0x3e0f +#define PCI_DEVICE_ID_INTEL_CFL_4S_D_IMC 0x3e1f +#define PCI_DEVICE_ID_INTEL_CFL_6S_D_IMC 0x3ec2 +#define PCI_DEVICE_ID_INTEL_CFL_8S_D_IMC 0x3e30 +#define PCI_DEVICE_ID_INTEL_CFL_4S_W_IMC 0x3e18 +#define PCI_DEVICE_ID_INTEL_CFL_6S_W_IMC 0x3ec6 +#define PCI_DEVICE_ID_INTEL_CFL_8S_W_IMC 0x3e31 +#define PCI_DEVICE_ID_INTEL_CFL_4S_S_IMC 0x3e33 +#define PCI_DEVICE_ID_INTEL_CFL_6S_S_IMC 0x3eca +#define PCI_DEVICE_ID_INTEL_CFL_8S_S_IMC 0x3e32/* SNB event control */ #define SNB_UNC_CTL_EV_SEL_MASK 0x000000ff
@@ -569,7 +588,82 @@ static const struct pci_device_id skl_uncore_pci_ids[] = { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SKL_SQ_IMC), .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), }, - + {/* IMC */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_KBL_Y_IMC), + .driver_data =UNCORE_PCI_DEV_DATA (SNB_PCI_UNCORE_IMC ,0 ), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_U_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_UQ_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_SD_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_SQ_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_2U_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4U_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4H_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6H_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_2S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_8S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4S_W_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6S_W_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_8S_W_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4S_S_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6S_S_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_8S_S_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, { /* end: all zeroes */ }, };
@@ -618,6 +712,25 @@ static const struct imc_uncore_pci_dev desktop_imc_pci_ids[] = {IMC_DEV (SKL_HQ_IMC , &skl_uncore_pci_driver),/* 6th Gen Core H Quad Core */ IMC_DEV (SKL_SD_IMC , &skl_uncore_pci_driver),/* 6th Gen Core S Dual Core */ IMC_DEV (SKL_SQ_IMC , &skl_uncore_pci_driver),/* 6th Gen Core S Quad Core */ +IMC_DEV (KBL_Y_IMC , &skl_uncore_pci_driver),/* 7th Gen Core Y */ +IMC_DEV (KBL_U_IMC , &skl_uncore_pci_driver),/* 7th Gen Core U */ +IMC_DEV (KBL_UQ_IMC , &skl_uncore_pci_driver),/* 7th Gen Core U Quad Core */ +IMC_DEV (KBL_SD_IMC , &skl_uncore_pci_driver),/* 7th Gen Core S Dual Core */ +IMC_DEV (KBL_SQ_IMC , &skl_uncore_pci_driver),/* 7th Gen Core S Quad Core */ +IMC_DEV (CFL_2U_IMC , &skl_uncore_pci_driver),/* 8th Gen Core U 2 Cores */ +IMC_DEV (CFL_4U_IMC , &skl_uncore_pci_driver),/* 8th Gen Core U 4 Cores */ +IMC_DEV (CFL_4H_IMC , &skl_uncore_pci_driver),/* 8th Gen Core H 4 Cores */ +IMC_DEV (CFL_6H_IMC , &skl_uncore_pci_driver),/* 8th Gen Core H 6 Cores */ +IMC_DEV (CFL_2S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 2 Cores Desktop */ +IMC_DEV (CFL_4S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 4 Cores Desktop */ +IMC_DEV (CFL_6S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 6 Cores Desktop */ +IMC_DEV (CFL_8S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 8 Cores Desktop */ +IMC_DEV (CFL_4S_W_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 4 Cores Work Station */ +IMC_DEV (CFL_6S_W_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 6 Cores Work Station */ +IMC_DEV (CFL_8S_W_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 8 Cores Work Station */ +IMC_DEV (CFL_4S_S_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 4 Cores Server */ +IMC_DEV (CFL_6S_S_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 6 Cores Server */ + IMC_DEV(CFL_8S_S_IMC, &skl_uncore_pci_driver), /* 8th Gen Core S 8 Cores Server */ { /* end marker */ } };
Signature · 1 line
2.17.1
PATCH 2/2 perf/x86/intel/uncore: Support CoffeeLake 8th CBOX
From: Kan Liang <[email protected]>
Coffee Lake has 8 core product which has 8 Cboxes. The 8th CBOX is mapped into different MSR space.
Increase the num_boxes to 8 to handle the new products. It will not impact the previous platforms, SkyLake, KabyLake and earlier CoffeeLake. Because the num_boxes will be recalculated in uncore_cpu_init and doesn't exceed the x86_max_cores.
Introduce a new box flag bit to indicate the 8th CBOX.
--- arch/x86/events/intel/uncore.h | 33 ++++++++++++++++++++++-------- arch/x86/events/intel/uncore_snb.c | 6 +++++- 2 files changed, 30 insertions(+), 9 deletions(-)
arch/x86/events/intel/uncore.h +25 -8
@@ -129,8 +129,15 @@ struct intel_uncore_box {struct intel_uncore_extra_reg shared_regs[0 ]; }; -#define UNCORE_BOX_FLAG_INITIATED 0 -#define UNCORE_BOX_FLAG_CTL_OFFS8 1/* event config registers are 8-byte apart */ +/* CFL uncore 8th cbox MSRs */ +#define CFL_UNC_CBO_7_PERFEVTSEL0 0xf70 +#define CFL_UNC_CBO_7_PER_CTR0 0xf76 + +#define UNCORE_BOX_FLAG_INITIATED 0 +/* event config registers are 8-byte apart */ +#define UNCORE_BOX_FLAG_CTL_OFFS8 1 +/* CFL 8th CBOX has different MSR space */ +#define UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS 2struct uncore_event_desc {struct kobj_attribute attr;
@@ -297,17 +304,27 @@ unsigned int uncore_freerunning_counter(struct intel_uncore_box *box,static inline unsigned uncore_msr_event_ctl (struct intel_uncore_box *box,int idx) { -return box->pmu->type->event_ctl + - (box->pmu->type->pair_ctr_ctl ?2 * idx : idx) + -uncore_msr_box_offset (box); +if (test_bit (UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS , &box->flags)) { +return CFL_UNC_CBO_7_PERFEVTSEL0 + + (box->pmu->type->pair_ctr_ctl ?2 * idx : idx); + }else { +return box->pmu->type->event_ctl + + (box->pmu->type->pair_ctr_ctl ?2 * idx : idx) + +uncore_msr_box_offset (box); + } }static inline unsigned uncore_msr_perf_ctr (struct intel_uncore_box *box,int idx) { -return box->pmu->type->perf_ctr + - (box->pmu->type->pair_ctr_ctl ?2 * idx : idx) + -uncore_msr_box_offset (box); +if (test_bit (UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS , &box->flags)) { +return CFL_UNC_CBO_7_PER_CTR0 + + (box->pmu->type->pair_ctr_ctl ?2 * idx : idx); + }else { +return box->pmu->type->perf_ctr + + (box->pmu->type->pair_ctr_ctl ?2 * idx : idx) + +uncore_msr_box_offset (box); + } } static inline
arch/x86/events/intel/uncore_snb.c +5 -1
@@ -221,6 +221,10 @@ static void skl_uncore_msr_init_box(struct intel_uncore_box *box)wrmsrl (SKL_UNC_PERF_GLOBAL_CTL ,SNB_UNC_GLOBAL_CTL_EN |SKL_UNC_GLOBAL_CTL_CORE_ALL ); } + +/* The 8th CBOX has different MSR space */ +if (box->pmu->pmu_idx ==7 ) +__set_bit (UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS , &box->flags); }static void skl_uncore_msr_enable_box (struct intel_uncore_box *box)
@@ -247,7 +251,7 @@ static struct intel_uncore_ops skl_uncore_msr_ops = {static struct intel_uncore_type skl_uncore_cbox = { .name ="cbox" , .num_counters =4 , - .num_boxes =5 , + .num_boxes =8 , .perf_ctr_bits =44 , .fixed_ctr_bits =48 , .perf_ctr =SNB_UNC_CBO_0_PER_CTR0 ,
Signature · 1 line
2.17.1
tip-bot for Kan Liang
merge bot[tip:perf/urgent] perf/x86/intel/uncore: Support CoffeeLake 8th CBOX
perf/x86/intel/uncore: Support CoffeeLake 8th CBOX
Commit-ID: 4d47d6407ac7b4b442a4e717488a3bb137398b6c Gitweb: https://git.kernel.org/tip/4d47d6407ac7b4b442a4e717488a3bb137398b6c Author: Kan Liang <[email protected]> AuthorDate: Fri, 19 Oct 2018 10:04:19 -0700 Committer: Ingo Molnar <[email protected]> CommitDate: Mon, 12 Nov 2018 05:03:26 +0100
perf/x86/intel/uncore: Support CoffeeLake 8th CBOX
Coffee Lake has 8 core products which has 8 Cboxes. The 8th CBOX is mapped into different MSR space.
Increase the num_boxes to 8 to handle the new products. It will not impact the previous platforms, SkyLake, KabyLake and earlier CoffeeLake. Because the num_boxes will be recalculated in uncore_cpu_init and doesn't exceed the x86_max_cores.
Introduce a new box flag bit to indicate the 8th CBOX.
--- arch/x86/events/intel/uncore.h | 33 +++++++++++++++++++++++++-------- arch/x86/events/intel/uncore_snb.c | 6 +++++- 2 files changed, 30 insertions(+), 9 deletions(-)
arch/x86/events/intel/uncore.h +25 -8
@@ -129,8 +129,15 @@ struct intel_uncore_box {struct intel_uncore_extra_reg shared_regs[0 ]; }; -#define UNCORE_BOX_FLAG_INITIATED 0 -#define UNCORE_BOX_FLAG_CTL_OFFS8 1/* event config registers are 8-byte apart */ +/* CFL uncore 8th cbox MSRs */ +#define CFL_UNC_CBO_7_PERFEVTSEL0 0xf70 +#define CFL_UNC_CBO_7_PER_CTR0 0xf76 + +#define UNCORE_BOX_FLAG_INITIATED 0 +/* event config registers are 8-byte apart */ +#define UNCORE_BOX_FLAG_CTL_OFFS8 1 +/* CFL 8th CBOX has different MSR space */ +#define UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS 2struct uncore_event_desc {struct kobj_attribute attr;
@@ -297,17 +304,27 @@ unsigned int uncore_freerunning_counter(struct intel_uncore_box *box,static inline unsigned uncore_msr_event_ctl (struct intel_uncore_box *box,int idx) { -return box->pmu->type->event_ctl + - (box->pmu->type->pair_ctr_ctl ?2 * idx : idx) + -uncore_msr_box_offset (box); +if (test_bit (UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS , &box->flags)) { +return CFL_UNC_CBO_7_PERFEVTSEL0 + + (box->pmu->type->pair_ctr_ctl ?2 * idx : idx); + }else { +return box->pmu->type->event_ctl + + (box->pmu->type->pair_ctr_ctl ?2 * idx : idx) + +uncore_msr_box_offset (box); + } }static inline unsigned uncore_msr_perf_ctr (struct intel_uncore_box *box,int idx) { -return box->pmu->type->perf_ctr + - (box->pmu->type->pair_ctr_ctl ?2 * idx : idx) + -uncore_msr_box_offset (box); +if (test_bit (UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS , &box->flags)) { +return CFL_UNC_CBO_7_PER_CTR0 + + (box->pmu->type->pair_ctr_ctl ?2 * idx : idx); + }else { +return box->pmu->type->perf_ctr + + (box->pmu->type->pair_ctr_ctl ?2 * idx : idx) + +uncore_msr_box_offset (box); + } } static inline
arch/x86/events/intel/uncore_snb.c +5 -1
@@ -221,6 +221,10 @@ static void skl_uncore_msr_init_box(struct intel_uncore_box *box)wrmsrl (SKL_UNC_PERF_GLOBAL_CTL ,SNB_UNC_GLOBAL_CTL_EN |SKL_UNC_GLOBAL_CTL_CORE_ALL ); } + +/* The 8th CBOX has different MSR space */ +if (box->pmu->pmu_idx ==7 ) +__set_bit (UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS , &box->flags); }static void skl_uncore_msr_enable_box (struct intel_uncore_box *box)
@@ -247,7 +251,7 @@ static struct intel_uncore_ops skl_uncore_msr_ops = {static struct intel_uncore_type skl_uncore_cbox = { .name ="cbox" , .num_counters =4 , - .num_boxes =5 , + .num_boxes =8 , .perf_ctr_bits =44 , .fixed_ctr_bits =48 , .perf_ctr =SNB_UNC_CBO_0_PER_CTR0 ,
Hi All,
Ping.
Any comments for the series.
Thanks,
Kan
Quoted 153 lines · On 10/19/2018 1:04 PM, [email protected] wrote:
From: Kan Liang <[email protected]>
KabyLake and CoffeeLake has the same client uncore events as SkyLake.
Add the PCI IDs for KabyLake Y, U, S processor line and CoffeeLake U, H, S processor line.
Signed-off-by Kan Liang <[email protected]>--- arch/x86/events/intel/uncore_snb.c | 115 ++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 1 deletion(-)arch/x86/events/intel/uncore_snb.c +114
-1@@ -15,6 +15,25 @@#define PCI_DEVICE_ID_INTEL_SKL_HQ_IMC 0x1910#define PCI_DEVICE_ID_INTEL_SKL_SD_IMC 0x190f#define PCI_DEVICE_ID_INTEL_SKL_SQ_IMC 0x191f +#define PCI_DEVICE_ID_INTEL_KBL_Y_IMC 0x590c +#define PCI_DEVICE_ID_INTEL_KBL_U_IMC 0x5904 +#define PCI_DEVICE_ID_INTEL_KBL_UQ_IMC 0x5914 +#define PCI_DEVICE_ID_INTEL_KBL_SD_IMC 0x590f +#define PCI_DEVICE_ID_INTEL_KBL_SQ_IMC 0x591f +#define PCI_DEVICE_ID_INTEL_CFL_2U_IMC 0x3ecc +#define PCI_DEVICE_ID_INTEL_CFL_4U_IMC 0x3ed0 +#define PCI_DEVICE_ID_INTEL_CFL_4H_IMC 0x3e10 +#define PCI_DEVICE_ID_INTEL_CFL_6H_IMC 0x3ec4 +#define PCI_DEVICE_ID_INTEL_CFL_2S_D_IMC 0x3e0f +#define PCI_DEVICE_ID_INTEL_CFL_4S_D_IMC 0x3e1f +#define PCI_DEVICE_ID_INTEL_CFL_6S_D_IMC 0x3ec2 +#define PCI_DEVICE_ID_INTEL_CFL_8S_D_IMC 0x3e30 +#define PCI_DEVICE_ID_INTEL_CFL_4S_W_IMC 0x3e18 +#define PCI_DEVICE_ID_INTEL_CFL_6S_W_IMC 0x3ec6 +#define PCI_DEVICE_ID_INTEL_CFL_8S_W_IMC 0x3e31 +#define PCI_DEVICE_ID_INTEL_CFL_4S_S_IMC 0x3e33 +#define PCI_DEVICE_ID_INTEL_CFL_6S_S_IMC 0x3eca +#define PCI_DEVICE_ID_INTEL_CFL_8S_S_IMC 0x3e32/* SNB event control */ #define SNB_UNC_CTL_EV_SEL_MASK 0x000000ff@@ -569,7 +588,82 @@ static const struct pci_device_id skl_uncore_pci_ids[] = { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SKL_SQ_IMC), .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), }, - + {/* IMC */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_KBL_Y_IMC), + .driver_data =UNCORE_PCI_DEV_DATA (SNB_PCI_UNCORE_IMC ,0 ), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_U_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_UQ_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_SD_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_SQ_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_2U_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4U_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4H_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6H_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_2S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_8S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4S_W_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6S_W_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_8S_W_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4S_S_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6S_S_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_8S_S_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, { /* end: all zeroes */ }, };@@ -618,6 +712,25 @@ static const struct imc_uncore_pci_dev desktop_imc_pci_ids[] = {IMC_DEV (SKL_HQ_IMC , &skl_uncore_pci_driver),/* 6th Gen Core H Quad Core */ IMC_DEV (SKL_SD_IMC , &skl_uncore_pci_driver),/* 6th Gen Core S Dual Core */ IMC_DEV (SKL_SQ_IMC , &skl_uncore_pci_driver),/* 6th Gen Core S Quad Core */ +IMC_DEV (KBL_Y_IMC , &skl_uncore_pci_driver),/* 7th Gen Core Y */ +IMC_DEV (KBL_U_IMC , &skl_uncore_pci_driver),/* 7th Gen Core U */ +IMC_DEV (KBL_UQ_IMC , &skl_uncore_pci_driver),/* 7th Gen Core U Quad Core */ +IMC_DEV (KBL_SD_IMC , &skl_uncore_pci_driver),/* 7th Gen Core S Dual Core */ +IMC_DEV (KBL_SQ_IMC , &skl_uncore_pci_driver),/* 7th Gen Core S Quad Core */ +IMC_DEV (CFL_2U_IMC , &skl_uncore_pci_driver),/* 8th Gen Core U 2 Cores */ +IMC_DEV (CFL_4U_IMC , &skl_uncore_pci_driver),/* 8th Gen Core U 4 Cores */ +IMC_DEV (CFL_4H_IMC , &skl_uncore_pci_driver),/* 8th Gen Core H 4 Cores */ +IMC_DEV (CFL_6H_IMC , &skl_uncore_pci_driver),/* 8th Gen Core H 6 Cores */ +IMC_DEV (CFL_2S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 2 Cores Desktop */ +IMC_DEV (CFL_4S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 4 Cores Desktop */ +IMC_DEV (CFL_6S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 6 Cores Desktop */ +IMC_DEV (CFL_8S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 8 Cores Desktop */ +IMC_DEV (CFL_4S_W_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 4 Cores Work Station */ +IMC_DEV (CFL_6S_W_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 6 Cores Work Station */ +IMC_DEV (CFL_8S_W_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 8 Cores Work Station */ +IMC_DEV (CFL_4S_S_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 4 Cores Server */ +IMC_DEV (CFL_6S_S_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 6 Cores Server */ + IMC_DEV(CFL_8S_S_IMC, &skl_uncore_pci_driver), /* 8th Gen Core S 8 Cores Server */ { /* end marker */ } };
Peter Zijlstra
maintainerQuoted 4 lines · Kan
Hi All,
Ping.
Any comments for the series.
Got them now. Thanks!
tip-bot for Kan Liang
merge bot[tip:perf/urgent] perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs
In reply to [email protected]perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs
Commit-ID: c10a8de0d32e95b0b8c7c17b6dc09baea5a5a899 Gitweb: https://git.kernel.org/tip/c10a8de0d32e95b0b8c7c17b6dc09baea5a5a899 Author: Kan Liang <[email protected]> AuthorDate: Fri, 19 Oct 2018 10:04:18 -0700 Committer: Ingo Molnar <[email protected]> CommitDate: Mon, 12 Nov 2018 05:03:24 +0100
perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs
KabyLake and CoffeeLake CPUs have the same client uncore events as SkyLake.
Add the PCI IDs for the KabyLake Y, U, S processor lines and CoffeeLake U, H, S processor lines.
--- arch/x86/events/intel/uncore_snb.c | 115 ++++++++++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 1 deletion(-)
arch/x86/events/intel/uncore_snb.c +114 -1
@@ -15,6 +15,25 @@#define PCI_DEVICE_ID_INTEL_SKL_HQ_IMC 0x1910#define PCI_DEVICE_ID_INTEL_SKL_SD_IMC 0x190f#define PCI_DEVICE_ID_INTEL_SKL_SQ_IMC 0x191f +#define PCI_DEVICE_ID_INTEL_KBL_Y_IMC 0x590c +#define PCI_DEVICE_ID_INTEL_KBL_U_IMC 0x5904 +#define PCI_DEVICE_ID_INTEL_KBL_UQ_IMC 0x5914 +#define PCI_DEVICE_ID_INTEL_KBL_SD_IMC 0x590f +#define PCI_DEVICE_ID_INTEL_KBL_SQ_IMC 0x591f +#define PCI_DEVICE_ID_INTEL_CFL_2U_IMC 0x3ecc +#define PCI_DEVICE_ID_INTEL_CFL_4U_IMC 0x3ed0 +#define PCI_DEVICE_ID_INTEL_CFL_4H_IMC 0x3e10 +#define PCI_DEVICE_ID_INTEL_CFL_6H_IMC 0x3ec4 +#define PCI_DEVICE_ID_INTEL_CFL_2S_D_IMC 0x3e0f +#define PCI_DEVICE_ID_INTEL_CFL_4S_D_IMC 0x3e1f +#define PCI_DEVICE_ID_INTEL_CFL_6S_D_IMC 0x3ec2 +#define PCI_DEVICE_ID_INTEL_CFL_8S_D_IMC 0x3e30 +#define PCI_DEVICE_ID_INTEL_CFL_4S_W_IMC 0x3e18 +#define PCI_DEVICE_ID_INTEL_CFL_6S_W_IMC 0x3ec6 +#define PCI_DEVICE_ID_INTEL_CFL_8S_W_IMC 0x3e31 +#define PCI_DEVICE_ID_INTEL_CFL_4S_S_IMC 0x3e33 +#define PCI_DEVICE_ID_INTEL_CFL_6S_S_IMC 0x3eca +#define PCI_DEVICE_ID_INTEL_CFL_8S_S_IMC 0x3e32/* SNB event control */ #define SNB_UNC_CTL_EV_SEL_MASK 0x000000ff
@@ -569,7 +588,82 @@ static const struct pci_device_id skl_uncore_pci_ids[] = { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SKL_SQ_IMC), .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), }, - + {/* IMC */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_KBL_Y_IMC), + .driver_data =UNCORE_PCI_DEV_DATA (SNB_PCI_UNCORE_IMC ,0 ), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_U_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_UQ_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_SD_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_KBL_SQ_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_2U_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4U_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4H_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6H_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_2S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_8S_D_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4S_W_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6S_W_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_8S_W_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_4S_S_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_6S_S_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, + { /* IMC */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCI_DEVICE_ID_INTEL_CFL_8S_S_IMC ), + .driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0), + }, { /* end: all zeroes */ }, };
@@ -618,6 +712,25 @@ static const struct imc_uncore_pci_dev desktop_imc_pci_ids[] = {IMC_DEV (SKL_HQ_IMC , &skl_uncore_pci_driver),/* 6th Gen Core H Quad Core */ IMC_DEV (SKL_SD_IMC , &skl_uncore_pci_driver),/* 6th Gen Core S Dual Core */ IMC_DEV (SKL_SQ_IMC , &skl_uncore_pci_driver),/* 6th Gen Core S Quad Core */ +IMC_DEV (KBL_Y_IMC , &skl_uncore_pci_driver),/* 7th Gen Core Y */ +IMC_DEV (KBL_U_IMC , &skl_uncore_pci_driver),/* 7th Gen Core U */ +IMC_DEV (KBL_UQ_IMC , &skl_uncore_pci_driver),/* 7th Gen Core U Quad Core */ +IMC_DEV (KBL_SD_IMC , &skl_uncore_pci_driver),/* 7th Gen Core S Dual Core */ +IMC_DEV (KBL_SQ_IMC , &skl_uncore_pci_driver),/* 7th Gen Core S Quad Core */ +IMC_DEV (CFL_2U_IMC , &skl_uncore_pci_driver),/* 8th Gen Core U 2 Cores */ +IMC_DEV (CFL_4U_IMC , &skl_uncore_pci_driver),/* 8th Gen Core U 4 Cores */ +IMC_DEV (CFL_4H_IMC , &skl_uncore_pci_driver),/* 8th Gen Core H 4 Cores */ +IMC_DEV (CFL_6H_IMC , &skl_uncore_pci_driver),/* 8th Gen Core H 6 Cores */ +IMC_DEV (CFL_2S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 2 Cores Desktop */ +IMC_DEV (CFL_4S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 4 Cores Desktop */ +IMC_DEV (CFL_6S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 6 Cores Desktop */ +IMC_DEV (CFL_8S_D_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 8 Cores Desktop */ +IMC_DEV (CFL_4S_W_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 4 Cores Work Station */ +IMC_DEV (CFL_6S_W_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 6 Cores Work Station */ +IMC_DEV (CFL_8S_W_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 8 Cores Work Station */ +IMC_DEV (CFL_4S_S_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 4 Cores Server */ +IMC_DEV (CFL_6S_S_IMC , &skl_uncore_pci_driver),/* 8th Gen Core S 6 Cores Server */ + IMC_DEV(CFL_8S_S_IMC, &skl_uncore_pci_driver), /* 8th Gen Core S 8 Cores Server */ { /* end marker */ } };