Messages in this thread | | | From | Lai Jiangshan <> | Date | Thu, 11 Feb 2021 09:51:37 +0800 | Subject | Re: [PATCH V4 0/6] x86: Don't abuse tss.sp1 |
| |
Hi Mark
Thank you for your reply.
On Thu, Feb 11, 2021 at 7:42 AM mark gross <mgross@linux.intel.com> wrote: > > On Wed, Feb 10, 2021 at 09:39:11PM +0800, Lai Jiangshan wrote: > > From: Lai Jiangshan <laijs@linux.alibaba.com> > > > > In x86_64, tss.sp1 is reused as cpu_current_top_of_stack. We'd better > > directly use percpu since CR3 and gs_base is correct when it is used. > Be more direct if not using percpu is incorrect in some way.
Sure, I will abstract the most important reason from changelogs to cover letter in the future.
> > > > In x86_32, tss.sp1 is resued as thread.sp0 in three places in entry > s/resued/reused
Sorry, I made it wrong in every cover letter even I noticed it after V2 was sent. I forgot to use a spellchecker on the cover letter.
> > code. We have the correct CR3 and %fs at two of the places. The last > > one is sysenter. This patchset makes %fs available earlier so that > > we can also use percpu in sysenter. And add a percpu cpu_current_thread_sp0 > > for thread.sp0 instead of tss.sp1 > > > > [V3]: https://lore.kernel.org/lkml/20210127163231.12709-1-jiangshanlai@gmail.com/ > > [V2]: https://lore.kernel.org/lkml/20210125173444.22696-1-jiangshanlai@gmail.com/ > > [V1]: https://lore.kernel.org/lkml/20210123084900.3118-1-jiangshanlai@gmail.com/ > > > > Changed from V3: > > Update subjects as Borislav's imperative request. ^_^ > > Update changelog as Borislav suggested. > > Change EXPORT_PER_CPU_SYMBOL to EXPORT_PER_CPU_SYMBOL_GPL. > > > > Changed from V2: > > Add missing "%ss:" reported by Brian Gerst. > > > > Changed from V1: > > Requested from Andy to also fix sp1 for x86_32. > > Update comments in the x86_64 patch as Andy sugguested. > > > > Lai Jiangshan (6): > > x86/entry/64: Move cpu_current_top_of_stack out of TSS > > x86/entry/32: Use percpu instead of offset-calculation to get > > thread.sp0 in SWITCH_TO_KERNEL_STACK > > x86/entry/32: Switch to the task stack without emptying the entry > > stack > > x86/entry/32: Restore %fs before switching stack > > x86/entry/32: Use percpu to get thread.sp0 in SYSENTER > > x86/entry/32: Introduce cpu_current_thread_sp0 to replace > > cpu_tss_rw.x86_tss.sp1 > > > > arch/x86/entry/entry_32.S | 38 +++++++++++++++++------------- > > arch/x86/include/asm/processor.h | 12 ++-------- > > arch/x86/include/asm/switch_to.h | 8 +------ > > arch/x86/include/asm/thread_info.h | 6 ----- > > arch/x86/kernel/asm-offsets.c | 1 - > > arch/x86/kernel/asm-offsets_32.c | 10 -------- > > arch/x86/kernel/cpu/common.c | 12 +++++++++- > > arch/x86/kernel/process.c | 7 ------ > > arch/x86/mm/pti.c | 7 +++--- > > 9 files changed, 39 insertions(+), 62 deletions(-) > > > > -- > > 2.19.1.6.gb485710b > >
| |