Skip to contentSkip to conversation

perf/x86/intel/uncore: Fix PCI BDF address of M3UPI on SKX

PATCH In review [email protected] 3 participants 4 messages Sep 21, 2018 – Oct 2, 2018

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 perf/x86/intel/uncore: Fix PCI BDF address of M3UPI on SKX

From: Kan Liang <[email protected]>

The counters on M3UPI Link 0 and Link 3 don't count. Writing 0 to these counters may causes system crash on some machines.

The PCI BDF addresses of M3UPI in current code are incorrect. The correct addresses should be
D18:F1 0x204D
D18:F2 0x204E
D18:F5 0x204D

---
 arch/x86/events/intel/uncore_snbep.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
arch/x86/events/intel/uncore_snbep.c +6 -6
index 51d7c11..3b3fc92 100644
@@ -3931,16 +3931,16 @@ static const struct pci_device_id skx_uncore_pci_ids[] = {
 		.driver_data = UNCORE_PCI_DEV_FULL_DATA(21, 5, SKX_PCI_UNCORE_M2PCIE, 3),
 	},
 	{ /* M3UPI0 Link 0 */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204C),
-		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 0, SKX_PCI_UNCORE_M3UPI, 0),
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204D),
+		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 1, SKX_PCI_UNCORE_M3UPI, 0),
 	},
 	{ /* M3UPI0 Link 1 */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204D),
-		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 1, SKX_PCI_UNCORE_M3UPI, 1),
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204E),
+		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 2, SKX_PCI_UNCORE_M3UPI, 1),
 	},
 	{ /* M3UPI1 Link 2 */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204C),
-		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 4, SKX_PCI_UNCORE_M3UPI, 2),
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204D),
+		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 5, SKX_PCI_UNCORE_M3UPI, 2),
 	},
 	{ /* end: all zeroes */ }
 };
Signature · 1 line
2.7.4
maintainer
#1 lore raw
Quoted 10 lines · On Fri, Sep 21, 2018 at 07:07:06AM -0700, [email protected] wrote:

From: Kan Liang <[email protected]>

The counters on M3UPI Link 0 and Link 3 don't count. Writing 0 to these counters may causes system crash on some machines.

The PCI BDF addresses of M3UPI in current code are incorrect. The correct addresses should be
D18:F1 0x204D
D18:F2 0x204E
D18:F5 0x204D

Should this have a Fixes: tag?

author
#2 lore raw
Quoted 6 lines · Peter Zijlstra
Quoted 5 lines · On Fri, Sep 21, 2018 at 07:07:06AM -0700, [email protected] wrote:

From: Kan Liang <[email protected]>

The counters on M3UPI Link 0 and Link 3 don't count. Writing 0 to these counters may causes system crash on some machines.

Quoted 8 lines
Quoted 5 lines

The PCI BDF addresses of M3UPI in current code are incorrect. The correct addresses should be
D18:F1 0x204D
D18:F2 0x204E
D18:F5 0x204D

Should this have a Fixes: tag?

Yes, sorry for missing it.
Here it is.

Fixes cd34cd97b7b4 ("perf/x86/intel/uncore: Add Skylake server uncore support")

Thanks,
Kan

#3 lore raw
In reply to [email protected]
perf/x86/intel/uncore: Fix PCI BDF address of M3UPI on SKX
Commit-ID:  9d92cfeaf5215158d26d2991be7f7ff865cb98f3
Gitweb:     https://git.kernel.org/tip/9d92cfeaf5215158d26d2991be7f7ff865cb98f3
Author:     Kan Liang <[email protected]>
AuthorDate: Fri, 21 Sep 2018 07:07:06 -0700
Committer:  Ingo Molnar <[email protected]>
CommitDate: Tue, 2 Oct 2018 09:38:02 +0200

perf/x86/intel/uncore: Fix PCI BDF address of M3UPI on SKX

The counters on M3UPI Link 0 and Link 3 don't count properly, and writing 0 to these counters may causes system crash on some machines.

The PCI BDF addresses of the M3UPI in the current code are incorrect.

The correct addresses should be:

D18:F1 0x204D
D18:F2 0x204E
D18:F5 0x204D

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]>
Fixes cd34cd97b7b4 ("perf/x86/intel/uncore: Add Skylake server uncore support")
---
 arch/x86/events/intel/uncore_snbep.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
arch/x86/events/intel/uncore_snbep.c +6 -6
index 53b981dcdb42..c07bee31abe8 100644
@@ -3931,16 +3931,16 @@ static const struct pci_device_id skx_uncore_pci_ids[] = {
 		.driver_data = UNCORE_PCI_DEV_FULL_DATA(21, 5, SKX_PCI_UNCORE_M2PCIE, 3),
 	},
 	{ /* M3UPI0 Link 0 */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204C),
-		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 0, SKX_PCI_UNCORE_M3UPI, 0),
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204D),
+		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 1, SKX_PCI_UNCORE_M3UPI, 0),
 	},
 	{ /* M3UPI0 Link 1 */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204D),
-		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 1, SKX_PCI_UNCORE_M3UPI, 1),
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204E),
+		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 2, SKX_PCI_UNCORE_M3UPI, 1),
 	},
 	{ /* M3UPI1 Link 2 */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204C),
-		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 4, SKX_PCI_UNCORE_M3UPI, 2),
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x204D),
+		.driver_data = UNCORE_PCI_DEV_FULL_DATA(18, 5, SKX_PCI_UNCORE_M3UPI, 2),
 	},
 	{ /* end: all zeroes */ }
 };