]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: VMX: Optimize %ds, %es reload
authorAvi Kivity <avi@redhat.com>
Sun, 13 May 2012 16:53:24 +0000 (19:53 +0300)
committerMarcelo Tosatti <mtosatti@redhat.com>
Wed, 16 May 2012 19:03:19 +0000 (16:03 -0300)
commit8d71f936c6263c428fa7fe6f1f07778a9a934dbf
tree7cf2f30e20976877b7bcef1b76a7441f474f062d
parent41805b8eec8dcfa60c60178c85665f55c34576bc
KVM: VMX: Optimize %ds, %es reload

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: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/kvm/vmx.c