mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 14:41:22 -05:00
perf/x86/intel: Decouple BTS initialization from PEBS initialization
Move x86_pmu.bts flag initialization into bts_init() from intel_ds_init() and rename intel_ds_init() to intel_pebs_init() since it fully initializes PEBS now after removing the x86_pmu.bts initialization. It's safe to move x86_pmu.bts into bts_init() since all x86_pmu.bts flag are called after bts_init() execution. Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Link: https://lkml.kernel.org/r/20250415114428.341182-5-dapeng1.mi@linux.intel.com
This commit is contained in:
@@ -599,7 +599,11 @@ static void bts_event_read(struct perf_event *event)
|
||||
|
||||
static __init int bts_init(void)
|
||||
{
|
||||
if (!boot_cpu_has(X86_FEATURE_DTES64) || !x86_pmu.bts)
|
||||
if (!boot_cpu_has(X86_FEATURE_DTES64))
|
||||
return -ENODEV;
|
||||
|
||||
x86_pmu.bts = boot_cpu_has(X86_FEATURE_BTS);
|
||||
if (!x86_pmu.bts)
|
||||
return -ENODEV;
|
||||
|
||||
if (boot_cpu_has(X86_FEATURE_PTI)) {
|
||||
|
||||
@@ -6928,7 +6928,7 @@ __init int intel_pmu_init(void)
|
||||
if (boot_cpu_has(X86_FEATURE_ARCH_LBR))
|
||||
intel_pmu_arch_lbr_init();
|
||||
|
||||
intel_ds_init();
|
||||
intel_pebs_init();
|
||||
|
||||
x86_add_quirk(intel_arch_events_quirk); /* Install first, so it runs last */
|
||||
|
||||
|
||||
@@ -2651,10 +2651,10 @@ static void intel_pmu_drain_pebs_icl(struct pt_regs *iregs, struct perf_sample_d
|
||||
}
|
||||
|
||||
/*
|
||||
* BTS, PEBS probe and setup
|
||||
* PEBS probe and setup
|
||||
*/
|
||||
|
||||
void __init intel_ds_init(void)
|
||||
void __init intel_pebs_init(void)
|
||||
{
|
||||
/*
|
||||
* No support for 32bit formats
|
||||
@@ -2662,7 +2662,6 @@ void __init intel_ds_init(void)
|
||||
if (!boot_cpu_has(X86_FEATURE_DTES64))
|
||||
return;
|
||||
|
||||
x86_pmu.bts = boot_cpu_has(X86_FEATURE_BTS);
|
||||
x86_pmu.pebs = boot_cpu_has(X86_FEATURE_PEBS);
|
||||
x86_pmu.pebs_buffer_size = PEBS_BUFFER_SIZE;
|
||||
if (x86_pmu.version <= 4)
|
||||
|
||||
@@ -1673,7 +1673,7 @@ void intel_pmu_drain_pebs_buffer(void);
|
||||
|
||||
void intel_pmu_store_pebs_lbrs(struct lbr_entry *lbr);
|
||||
|
||||
void intel_ds_init(void);
|
||||
void intel_pebs_init(void);
|
||||
|
||||
void intel_pmu_lbr_save_brstack(struct perf_sample_data *data,
|
||||
struct cpu_hw_events *cpuc,
|
||||
|
||||
Reference in New Issue
Block a user