]> www.infradead.org Git - users/hch/misc.git/commitdiff
perf/x86/intel/uncore: Fix the scale of IIO free running counters on SPR
authorKan Liang <kan.liang@linux.intel.com>
Wed, 16 Apr 2025 14:24:26 +0000 (07:24 -0700)
committerIngo Molnar <mingo@kernel.org>
Thu, 17 Apr 2025 10:57:32 +0000 (12:57 +0200)
The scale of IIO bandwidth in free running counters is inherited from
the ICX. The counter increments for every 32 bytes rather than 4 bytes.

The IIO bandwidth out free running counters don't increment with a
consistent size. The increment depends on the requested size. It's
impossible to find a fixed increment. Remove it from the event_descs.

Fixes: 0378c93a92e2 ("perf/x86/intel/uncore: Support IIO free-running counters on Sapphire Rapids server")
Reported-by: Tang Jun <dukang.tj@alibaba-inc.com>
Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20250416142426.3933977-3-kan.liang@linux.intel.com
arch/x86/events/intel/uncore_snbep.c

index fb08911a1cf64ef2fbfab0f2ee1f1aa385e2d83e..76d96df1475a1c086cc52a16a793b255f62235b7 100644 (file)
@@ -6289,69 +6289,13 @@ static struct freerunning_counters spr_iio_freerunning[] = {
        [SPR_IIO_MSR_BW_OUT]    = { 0x3808, 0x1, 0x10, 8, 48 },
 };
 
-static struct uncore_event_desc spr_uncore_iio_freerunning_events[] = {
-       /* Free-Running IIO CLOCKS Counter */
-       INTEL_UNCORE_EVENT_DESC(ioclk,                  "event=0xff,umask=0x10"),
-       /* Free-Running IIO BANDWIDTH IN Counters */
-       INTEL_UNCORE_EVENT_DESC(bw_in_port0,            "event=0xff,umask=0x20"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port0.scale,      "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port0.unit,       "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port1,            "event=0xff,umask=0x21"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port1.scale,      "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port1.unit,       "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port2,            "event=0xff,umask=0x22"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port2.scale,      "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port2.unit,       "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port3,            "event=0xff,umask=0x23"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port3.scale,      "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port3.unit,       "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port4,            "event=0xff,umask=0x24"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port4.scale,      "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port4.unit,       "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port5,            "event=0xff,umask=0x25"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port5.scale,      "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port5.unit,       "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port6,            "event=0xff,umask=0x26"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port6.scale,      "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port6.unit,       "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port7,            "event=0xff,umask=0x27"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port7.scale,      "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_in_port7.unit,       "MiB"),
-       /* Free-Running IIO BANDWIDTH OUT Counters */
-       INTEL_UNCORE_EVENT_DESC(bw_out_port0,           "event=0xff,umask=0x30"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port0.scale,     "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port0.unit,      "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port1,           "event=0xff,umask=0x31"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port1.scale,     "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port1.unit,      "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port2,           "event=0xff,umask=0x32"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port2.scale,     "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port2.unit,      "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port3,           "event=0xff,umask=0x33"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port3.scale,     "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port3.unit,      "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port4,           "event=0xff,umask=0x34"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port4.scale,     "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port4.unit,      "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port5,           "event=0xff,umask=0x35"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port5.scale,     "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port5.unit,      "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port6,           "event=0xff,umask=0x36"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port6.scale,     "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port6.unit,      "MiB"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port7,           "event=0xff,umask=0x37"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port7.scale,     "3.814697266e-6"),
-       INTEL_UNCORE_EVENT_DESC(bw_out_port7.unit,      "MiB"),
-       { /* end: all zeroes */ },
-};
-
 static struct intel_uncore_type spr_uncore_iio_free_running = {
        .name                   = "iio_free_running",
        .num_counters           = 17,
        .num_freerunning_types  = SPR_IIO_FREERUNNING_TYPE_MAX,
        .freerunning            = spr_iio_freerunning,
        .ops                    = &skx_uncore_iio_freerunning_ops,
-       .event_descs            = spr_uncore_iio_freerunning_events,
+       .event_descs            = snr_uncore_iio_freerunning_events,
        .format_group           = &skx_uncore_iio_freerunning_format_group,
 };