Wanpeng Li <kernellwp@xxxxxxxxx> writes: > 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. FWIW i've seen this too on L2 profiles. But I haven't looked too closely, but I suspect you'll clobber global kernel debugger state this way. You would at least need some interface for KDB etc. to invalidate your cache. -Andi