diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2022-09-15 13:11:01 +0200 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2022-10-17 16:41:03 +0200 |
commit | e57ef2ed97c1d078973298658a8096644a1e9e09 (patch) | |
tree | 79cb9a8835ab832a8e8c302abf1ffe0c0ad96c5f /arch/x86/kernel/smpboot.c | |
parent | fdc9ee7e97aa2c1dfa7ebb092fffec40ffa59108 (diff) | |
download | linux-stable-e57ef2ed97c1d078973298658a8096644a1e9e09.tar.gz linux-stable-e57ef2ed97c1d078973298658a8096644a1e9e09.tar.bz2 linux-stable-e57ef2ed97c1d078973298658a8096644a1e9e09.zip |
x86: Put hot per CPU variables into a struct
The layout of per-cpu variables is at the mercy of the compiler. This
can lead to random performance fluctuations from build to build.
Create a structure to hold some of the hottest per-cpu variables,
starting with current_task.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220915111145.179707194@infradead.org
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index ce8728d2e5ef..05f315777691 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -1046,7 +1046,7 @@ int common_cpu_up(unsigned int cpu, struct task_struct *idle) /* Just in case we booted with a single CPU. */ alternatives_enable_smp(); - per_cpu(current_task, cpu) = idle; + per_cpu(pcpu_hot.current_task, cpu) = idle; cpu_init_stack_canary(cpu, idle); /* Initialize the interrupt stack(s) */ |