From: David Woodhouse Date: Wed, 1 Feb 2023 20:43:37 +0000 (+0000) Subject: x86/mtrr: Avoid repeated save of MTRRs on boot-time CPU bringup X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=08f341da0616612d66d23508aec72dc8d7ee4811;p=users%2Fdwmw2%2Flinux.git x86/mtrr: Avoid repeated save of MTRRs on boot-time CPU bringup There's no need to repeatedly save the BSP's MTRRs for each AP we bring up at boot time. And there's no need to use smp_call_function_single() even for the one time we *do* want to do it. Signed-off-by: David Woodhouse Signed-off-by: Paul E. McKenney --- diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.c b/arch/x86/kernel/cpu/mtrr/mtrr.c index 783f3210d5827..b6eae3ad4414b 100644 --- a/arch/x86/kernel/cpu/mtrr/mtrr.c +++ b/arch/x86/kernel/cpu/mtrr/mtrr.c @@ -721,11 +721,20 @@ void __init mtrr_bp_init(void) */ void mtrr_save_state(void) { + static bool mtrr_saved; int first_cpu; if (!mtrr_enabled()) return; + if (system_state < SYSTEM_RUNNING) { + if (!mtrr_saved) { + mtrr_save_fixed_ranges(NULL); + mtrr_saved = true; + } + return; + } + first_cpu = cpumask_first(cpu_online_mask); smp_call_function_single(first_cpu, mtrr_save_fixed_ranges, NULL, 1); }