| From | Jann Horn <> | Date | Fri, 2 Sep 2022 20:02:46 +0200 | Subject | Re: [PATCH v2 22/59] x86: Put hot per CPU variables into a struct |
| |
On Fri, Sep 2, 2022 at 3:54 PM Peter Zijlstra <peterz@infradead.org> wrote: > From: Thomas Gleixner <tglx@linutronix.de> > > 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. [...] > -DECLARE_PER_CPU(struct task_struct *, current_task); > +struct pcpu_hot { > + union { > + struct { > + struct task_struct *current_task; > + }; > + u8 pad[64]; > + }; > +};
fixed_percpu_data::stack_canary is probably also a fairly hot per-cpu variable on distro kernels with CONFIG_STACKPROTECTOR_STRONG (which e.g. Debian enables), so perhaps it'd make sense to reuse fixed_percpu_data as the struct for hot percpu variables? But I don't have any numbers to actually back up that idea.
|