On 11/27/2017 02:31 PM, Peter Zijlstra wrote: > We never use this code-path with KAISER enabled. ... > @@ -201,14 +201,6 @@ ENTRY(entry_SYSCALL_64) > > swapgs > movq %rsp, PER_CPU_VAR(rsp_scratch) > - > - /* > - * The kernel CR3 is needed to map the process stack, but we > - * need a scratch register to be able to load CR3. %rsp is > - * clobberable right now, so use it as a scratch register. > - * %rsp will look crazy here for a couple instructions. > - */ > - SWITCH_TO_KERNEL_CR3 scratch_reg=%rsp > movq PER_CPU_VAR(cpu_current_top_of_stack), %rsp
What's the mechanism that we use to switch between the two versions of the SYSCALL entry? It wasn't obvious from some grepping.

