On 22/05/18 12:20, Andrew Cooper wrote: > Currently, whenever the guest writes a nonzero value to MSR_DEBUGCTL, Xen > updates a host MSR load list entry with the current hardware value of > MSR_DEBUGCTL. This is wrong. > > On VMExit, hardware automatically resets MSR_DEBUGCTL to 0. The only case > where different behaviour is needed is if Xen is debugging itself, and this > needs setting up unconditionally for the lifetime of the VM. > > The `ler` command line boolean is the only way to configure any use of > MSR_DEBUGCTL for Xen, so tie the host load list entry to this setting in > construct_vmcs(). Any runtime update of Xen's MSR_DEBUGCTL setting requires > more complicated synchronisation across all the running VMs. > > In the exceedingly common case, this avoids the unnecessary overhead of having > a host load entry performing the same zeroing operation that hardware has > already performed as part of the VMExit. > > Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
So after doing some archaeology, the last meaningful change to DEBUGCTL handing was c/s dfa625e1 "VMX: fix DebugCtl MSR clearing" in Xen 4.5, but the underlying logic has been broken since its introduction in 0ae9ef55a "vmx: last branch recording MSR emulation" in 2007. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel