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

From: Xiaoyao Li
Date: Thu Oct 14 2021 - 21:30:17 EST


On 10/14/2021 11:04 PM, Sean Christopherson wrote:
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.


We have bus lock VM exit for it.