mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 15:22:21 -04:00
perf/x86/intel/uncore: Defer ADL global PMON enable to enable_box()
On some Raptor Cove CPUs, enabling uncore PMON globally at driver init
may increase power consumption even when no perf events are in use.
Drop adl_uncore_msr_init_box() and defer programming the global control
register to enable_box(), so it is only set when a box is actually used.
IMC and IMC freerunning counters use a separate control path and are
unaffected.
Fixes: 772ed05f3c ("perf/x86/intel/uncore: Add Alder Lake support")
Signed-off-by: Zide Chen <zide.chen@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260602144908.263680-5-zide.chen@intel.com
This commit is contained in:
committed by
Peter Zijlstra
parent
81ec618f59
commit
9a0bb848a3
@@ -563,12 +563,6 @@ void tgl_uncore_cpu_init(void)
|
||||
skl_uncore_msr_ops.init_box = rkl_uncore_msr_init_box;
|
||||
}
|
||||
|
||||
static void adl_uncore_msr_init_box(struct intel_uncore_box *box)
|
||||
{
|
||||
if (box->pmu->pmu_idx == 0)
|
||||
wrmsrq(ADL_UNC_PERF_GLOBAL_CTL, SNB_UNC_GLOBAL_CTL_EN);
|
||||
}
|
||||
|
||||
static void adl_uncore_msr_enable_box(struct intel_uncore_box *box)
|
||||
{
|
||||
wrmsrq(ADL_UNC_PERF_GLOBAL_CTL, SNB_UNC_GLOBAL_CTL_EN);
|
||||
@@ -587,7 +581,6 @@ static void adl_uncore_msr_exit_box(struct intel_uncore_box *box)
|
||||
}
|
||||
|
||||
static struct intel_uncore_ops adl_uncore_msr_ops = {
|
||||
.init_box = adl_uncore_msr_init_box,
|
||||
.enable_box = adl_uncore_msr_enable_box,
|
||||
.disable_box = adl_uncore_msr_disable_box,
|
||||
.exit_box = adl_uncore_msr_exit_box,
|
||||
|
||||
Reference in New Issue
Block a user