Messages in this thread | | | Subject | Re: [PATCH v2] KVM: VMX: Cache IA32_DEBUGCTL in memory | From | Nadav Amit <> | Date | Tue, 5 Dec 2017 16:15:23 -0800 |
| |
Radim Krčmář <rkrcmar@redhat.com> wrote:
> 2017-11-29 01:31-0800, Wanpeng Li: >> From: Wanpeng Li <wanpeng.li@hotmail.com> >> >> 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@google.com> >> Cc: Paolo Bonzini <pbonzini@redhat.com> >> Cc: Radim Krčmář <rkrcmar@redhat.com> >> Cc: Jim Mattson <jmattson@google.com> >> Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com> >> --- > > 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
| |