Messages in this thread | | | From | Andy Lutomirski <> | Date | Wed, 4 Mar 2015 10:51:44 -0800 | Subject | Re: [RFC 1/3] x86: Add this_cpu_sp0() to read sp0 for the current cpu |
| |
On Wed, Mar 4, 2015 at 12:02 AM, Ingo Molnar <mingo@kernel.org> wrote: > > * Andy Lutomirski <luto@amacapital.net> wrote: > >> We currently store references to the top of the kernel stack in >> multiple places: kernel_stack (with an offset) and >> init_tss.x86_tss.sp0 (no offset). The latter is defined by hardware >> and is a clean canonical way to find the top of the stack. Add an > > Btw., 'per_cpu(init_tss)' is a somewhat misleading name these days, as > there's nothing 'init' about it anymore - we load it during CPU init > and then manually maintain its contents. A better name would be > 'current_tss' - referring to both the current CPU and the current > task?
Hmm. That seems a little odd to me, since we never change the TSS pointer. It's certainly better than init_tss, though. I'll add a followup to rename it.
> >> This needs minor paravirt tweaks to ensure that On native, sp0 > > nit: s/On/on/ > >> defines the top of the kernel stack. On Xen and lguest, the >> hypervisor tracks it, but we want to start reading sp0 in the >> kernel. Fixing this is simple: just update our local copy of sp0 as >> well as the hypervisor's copy on task switches.
Thanks, Andy
| |