Re: [PATCH v7 6/6] x86/split_lock: Fix the split lock #AC handling when running as guest

From: Sean Christopherson
Date: Thu Oct 14 2021 - 11:13:05 EST


On Thu, Oct 14, 2021, Xiaoyao Li wrote:
> On 10/14/2021 5:32 AM, Sathyanarayanan Kuppuswamy wrote:
> > + Xiaoyao
> >
> > On 10/13/21 1:30 PM, Sean Christopherson wrote:
> > > On Tue, Oct 05, 2021, Kuppuswamy Sathyanarayanan wrote:
> > > > From: Xiaoyao Li <xiaoyao.li@xxxxxxxxx>
> > > >
> > > > If running as guest and hypervisor enables
> > > > MSR_TEST_CTRL.SPLIT_LOCK_DETECT during its running, it can get split
> > > > lock #AC even though sld_state is sld_off.
> > > That's a hypervisor bug, no?  The hypervisor should never inject a fault
> > > that the guest cannot reasonably expect.
>
> What if hypervisor doesn't intercept #AC and host enables SPLIT_LOCK_DETECT
> during guest running? That's exactly the case TDX is facing.

That's a hypervisor bug. Since it sounds like the TDX Module buries its head in
the sand for split-lock #AC, KVM should refuse to run TDX guests if split-lock #AC
is enabled. Ideally the TDX Module would provide support for conditionally
intercepting #AC, e.g. intercept and re-inject "normal" #AC, and exit to the VMM
for split-lock #AC. That would give VMMs the option of enabling split-lock
detection in fatal mode for guests.