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 <sys/signal.h> > #include <time.h> > #include <unistd.h> > #include <stdio.h> > > 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 <luto@xxxxxxxxxx> > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> > Cc: Rik van Riel <riel@xxxxxxxxxx> > Cc: H. Peter Anvin <hpa@xxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > Reviewed-by: Rik van Riel <riel@xxxxxxxxxx> -- All Rights Reversed.
Attachment:
signature.asc
Description: This is a digitally signed message part