Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf/x86/intel: Fix event constraints for LNC

According to the latest event list, update the event constraint tables
for Lion Cove core.

The general rule (the event codes < 0x90 are restricted to counters
0-3.) has been removed. There is no restriction for most of the
performance monitoring events.

Fixes: a932aa0e868f ("perf/x86: Add Lunar Lake and Arrow Lake support")
Reported-by: Amiri Khalil <amiri.khalil@intel.com>
Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20250219141005.2446823-1-kan.liang@linux.intel.com

authored by

Kan Liang and committed by
Peter Zijlstra
782cffee ec5fd50a

+8 -14
+7 -13
arch/x86/events/intel/core.c
··· 397 397 METRIC_EVENT_CONSTRAINT(INTEL_TD_METRIC_FETCH_LAT, 6), 398 398 METRIC_EVENT_CONSTRAINT(INTEL_TD_METRIC_MEM_BOUND, 7), 399 399 400 + INTEL_EVENT_CONSTRAINT(0x20, 0xf), 401 + 402 + INTEL_UEVENT_CONSTRAINT(0x012a, 0xf), 403 + INTEL_UEVENT_CONSTRAINT(0x012b, 0xf), 400 404 INTEL_UEVENT_CONSTRAINT(0x0148, 0x4), 401 405 INTEL_UEVENT_CONSTRAINT(0x0175, 0x4), 402 406 403 407 INTEL_EVENT_CONSTRAINT(0x2e, 0x3ff), 404 408 INTEL_EVENT_CONSTRAINT(0x3c, 0x3ff), 405 - /* 406 - * Generally event codes < 0x90 are restricted to counters 0-3. 407 - * The 0x2E and 0x3C are exception, which has no restriction. 408 - */ 409 - INTEL_EVENT_CONSTRAINT_RANGE(0x01, 0x8f, 0xf), 410 409 411 - INTEL_UEVENT_CONSTRAINT(0x01a3, 0xf), 412 - INTEL_UEVENT_CONSTRAINT(0x02a3, 0xf), 413 410 INTEL_UEVENT_CONSTRAINT(0x08a3, 0x4), 414 411 INTEL_UEVENT_CONSTRAINT(0x0ca3, 0x4), 415 412 INTEL_UEVENT_CONSTRAINT(0x04a4, 0x1), 416 413 INTEL_UEVENT_CONSTRAINT(0x08a4, 0x1), 417 414 INTEL_UEVENT_CONSTRAINT(0x10a4, 0x1), 418 415 INTEL_UEVENT_CONSTRAINT(0x01b1, 0x8), 416 + INTEL_UEVENT_CONSTRAINT(0x01cd, 0x3fc), 419 417 INTEL_UEVENT_CONSTRAINT(0x02cd, 0x3), 420 - INTEL_EVENT_CONSTRAINT(0xce, 0x1), 421 418 422 419 INTEL_EVENT_CONSTRAINT_RANGE(0xd0, 0xdf, 0xf), 423 - /* 424 - * Generally event codes >= 0x90 are likely to have no restrictions. 425 - * The exception are defined as above. 426 - */ 427 - INTEL_EVENT_CONSTRAINT_RANGE(0x90, 0xfe, 0x3ff), 420 + 421 + INTEL_UEVENT_CONSTRAINT(0x00e0, 0xf), 428 422 429 423 EVENT_CONSTRAINT_END 430 424 };
+1 -1
arch/x86/events/intel/ds.c
··· 1199 1199 INTEL_FLAGS_UEVENT_CONSTRAINT(0x100, 0x100000000ULL), /* INST_RETIRED.PREC_DIST */ 1200 1200 INTEL_FLAGS_UEVENT_CONSTRAINT(0x0400, 0x800000000ULL), 1201 1201 1202 - INTEL_HYBRID_LDLAT_CONSTRAINT(0x1cd, 0x3ff), 1202 + INTEL_HYBRID_LDLAT_CONSTRAINT(0x1cd, 0x3fc), 1203 1203 INTEL_HYBRID_STLAT_CONSTRAINT(0x2cd, 0x3), 1204 1204 INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x11d0, 0xf), /* MEM_INST_RETIRED.STLB_MISS_LOADS */ 1205 1205 INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x12d0, 0xf), /* MEM_INST_RETIRED.STLB_MISS_STORES */