Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

x86/asm: Remove thread_info.sysenter_return

It's no longer needed.

We could reinstate something like it as an optimization, which
would remove two cachelines from the fast syscall entry working
set. I benchmarked it, and it makes no difference whatsoever to
the performance of cache-hot compat syscalls on Sandy Bridge.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Link: http://lkml.kernel.org/r/f08cc0cff30201afe9bb565c47134c0a6c1a96a2.1444091585.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>

authored by

Andy Lutomirski and committed by
Ingo Molnar
487e3bf4 5f310f73

-4
-1
arch/x86/include/asm/thread_info.h
··· 59 59 __u32 cpu; /* current CPU */ 60 60 int saved_preempt_count; 61 61 mm_segment_t addr_limit; 62 - void __user *sysenter_return; 63 62 unsigned int sig_on_uaccess_error:1; 64 63 unsigned int uaccess_err:1; /* uaccess failed */ 65 64 };
-3
arch/x86/kernel/asm-offsets.c
··· 54 54 OFFSET(IA32_SIGCONTEXT_ip, sigcontext_ia32, ip); 55 55 56 56 BLANK(); 57 - OFFSET(TI_sysenter_return, thread_info, sysenter_return); 58 - 59 - BLANK(); 60 57 OFFSET(IA32_RT_SIGFRAME_sigcontext, rt_sigframe_ia32, uc.uc_mcontext); 61 58 #endif 62 59