Radim Krčmář <rkrcmar@xxxxxxxxxx> wrote: > 2017-11-29 01:31-0800, Wanpeng Li: >> From: Wanpeng Li <wanpeng.li@xxxxxxxxxxx> >> >> MSR_IA32_DEBUGCTLMSR is zeroed on VMEXIT, so it is saved/restored >> each time during world switch. Jim from Google pointed out that >> when running schbench in L2, vmx_vcpu_run will occupy 4% cpu time, >> and the 25% of vmx_vcpu_run cpu time is occupied by get_debugctlmsr(). >> This patch caches the host IA32_DEBUGCTL MSR and saves/restores >> the host IA32_DEBUGCTL msr when guest/host switches to avoid to >> save/restore each time during world switch. >> >> Suggested-by: Jim Mattson <jmattson@xxxxxxxxxx> >> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> >> Cc: Radim Krčmář <rkrcmar@xxxxxxxxxx> >> Cc: Jim Mattson <jmattson@xxxxxxxxxx> >> Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx> >> --- > > Queued, thanks. > > And there is another optimization loosely connected to the "[PATCH v3 > 00/16] Move vcpu_load and vcpu_put calls to arch code" series: > We only need to read the value for the KVM_RUN ioctl. Can you add some warning that would fire in some “debug” mode if the cached value is not identical to the real one? Thanks, Nadav