• Avi Kivity's avatar
    KVM: VMX: Optimize %ds, %es reload · b2da15ac
    Avi Kivity authored
    On x86_64, we can defer %ds and %es reload to the heavyweight context switch,
    since nothing in the lightweight paths uses the host %ds or %es (they are
    ignored by the processor).  Furthermore we can avoid the load if the segments
    are null, by letting the hardware load the null segments for us.  This is the
    expected case.
    
    On i386, we could avoid the reload entirely, since the entry.S paths take care
    of reload, except for the SYSEXIT path which leaves %ds and %es set to __USER_DS.
    So we set them to the same values as well.
    
    Saves about 70 cycles out of 1600 (around 4%; noisy measurements).
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
    b2da15ac
vmx.c 207 KB