On 3/27/22 17:12, Maxim Levitsky wrote:
- with LBR virtualization supported, the guest can set this msr to any value
as long as it doesn't set reserved bits and then read back the written value,
but it is not used by the CPU, unless LBR bit is set in MSR_IA32_DEBUGCTLMSR,
because only then LBR virtualization is enabled, which makes the CPU
load the guest value on VM entry.
This means that MSR_IA32_DEBUGCTLMSR.BTF will magically start working when
MSR_IA32_DEBUGCTLMSR.LBR is set as well, and will not work otherwise.
That can be fixed by context-switching DEBUGCTLMSR by hand when LBR=0 &&
BTF=1. Would you like to give it a shot?
Paolo