perf/x86/intel: Enable PEBS format 5
authorKan Liang <kan.liang@linux.intel.com>
Tue, 1 Feb 2022 21:23:21 +0000 (13:23 -0800)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 2 Feb 2022 12:11:43 +0000 (13:11 +0100)
commit2145e77fecfb3965b1dc299bac203b167238bd0b
treea45c982010ee824b79daae887f6311d9a67e1db9
parent58b2ff2c18b1e1d7232b8007a5698ec4ee7a7a0d
perf/x86/intel: Enable PEBS format 5

The new PEBS Record Format 5 is similar to the PEBS Record Format 4. The
only difference is the layout of the Counter Reset fields of the PEBS
Config Buffer in the DS area. For the PEBS format 4, the Counter Reset
fields allocation is for 8 general-purpose counters followed by 4
fixed-function counters. For the PEBS format 5, the Counter Reset fields
allocation is for 32 general-purpose counters followed by 16
fixed-function counters.

Extend the MAX_PEBS_EVENTS to 32. Add MAX_PEBS_EVENTS_FMT4 for the
previous platform. Except for the DS auto-reload code, other places
already assume 32 counters. Only check the PEBS_FMT in the DS
auto-reload code.

Extend the MAX_FIXED_PEBS_EVENTS to 16, which only impacts the size of
struct debug_store and some local temporary variables. The size of
struct debug_store increases 288B, which is small and should be
acceptable.

Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/1643750603-100733-1-git-send-email-kan.liang@linux.intel.com
arch/x86/events/intel/ds.c
arch/x86/include/asm/intel_ds.h