On Mon, 2016-06-20 at 16:58 +0200, Paolo Bonzini wrote: > Thanks to all the work that was done by Andy Lutomirski and others, > enter_from_user_mode and prepare_exit_to_usermode are now called only > with > interrupts disabled.  Let's provide them a version of > user_enter/user_exit > that skips saving and restoring the interrupt flag. > > On an AMD-based machine I tested this patch on, with force-enabled > context tracking, the speed-up in system calls was 90 clock cycles or > 6%, > measured with the following simple benchmark: > >     #include >     #include >     #include >     #include > >     unsigned long rdtsc() >     { >         unsigned long result; >         asm volatile("rdtsc; shl $32, %%rdx; mov %%eax, %%eax\n" >                      "or %%rdx, %%rax" : "=a" (result) : : "rdx"); >         return result; >     } > >     int main() >     { >         unsigned long tsc1, tsc2; >         int pid = getpid(); >         int i; > >         tsc1 = rdtsc(); >         for (i = 0; i < 100000000; i++) >             kill(pid, SIGWINCH); >         tsc2 = rdtsc(); > >         printf("%ld\n", tsc2 - tsc1); >     } > > Cc: Andy Lutomirski > Cc: Peter Zijlstra > Cc: Rik van Riel > Cc: H. Peter Anvin > Cc: Ingo Molnar > Cc: Thomas Gleixner > Signed-off-by: Paolo Bonzini > Reviewed-by: Rik van Riel -- All Rights Reversed.