Re: [PATCH 3/3] KVM SVM: Add Bus Lock Detect support

Sean Christopherson
2024-06-12T01:42:13Z

On Wed, Jun 05, 2024, Ravi Bangoria wrote:
> On 6/5/2024 8:38 PM, Sean Christopherson wrote:
> > Some of the problems on Intel were due to the awful FMS-based feature detection,
> > but those weren't the only hiccups. E.g. IIRC, we never sorted out what should
> > happen if both the host and guest want bus-lock #DBs.
>
> I've to check about vcpu->guest_debug part, but keeping that aside, host and
> guest can use Bus Lock Detect in parallel because, DEBUG_CTL MSR and DR6
> register are save/restored in VMCB, hardware cause a VMEXIT_EXCEPTION_1 for
> guest #DB(when intercepted) and hardware raises #DB on host when it's for the
> host.

I'm talking about the case where the host wants to do something in response to
bus locks that occurred in the guest. E.g. if the host is taking punitive action,
say by stalling the vCPU, then the guest kernel could bypass that behavior by
enabling bus lock detect itself.

Maybe it's moot point in practice, since it sounds like Bus Lock Threshold will
be available at the same time.

Ugh, and if we wanted to let the host handle guest-induced #DBs, we'd need code
to keep Bus Lock Detect enabled in the guest since it resides in DEBUG_CTL. Bah.

So I guess if the vcpu->guest_debug part is fairly straightforward, it probably
makes to virtualize Bus Lock Detect because the only reason not to virtualize it
would actually require more work/code in KVM.

I'd still love to see Bus Lock Threshold support sooner than later though :-)