Re: [PATCH v10 6/6] x86/split_lock: Enable split lock detection by kernel parameter

From: Sean Christopherson
Date: Thu Nov 21 2019 - 20:52:35 EST


On Thu, Nov 21, 2019 at 03:53:29PM -0800, Fenghua Yu wrote:
> On Thu, Nov 21, 2019 at 03:18:46PM -0800, Andy Lutomirski wrote:
> >
> > > On Nov 21, 2019, at 2:29 PM, Luck, Tony <tony.luck@xxxxxxxxx> wrote:
> > >
> > >> It would be really, really nice if we could pass this feature through to a VM. Can we?
> > >
> > > It's hard because the MSR is core scoped rather than thread scoped. So on an HT
> > > enabled system a pair of logical processors gets enabled/disabled together.
> > >
> >
> > Well that sucks.
> >
> > Could we pass it through if the host has no HT? Debugging is *so* much
> > easier in a VM. And HT is a bit dubious these days anyway.
>
> I think it's doable to pass it through to KVM. The difficulty is to disable
> split lock detection in KVM because that will disable split lock on the whole
> core including threads for the host. Without disabling split lock in KVM,
> it's doable to debug split lock in KVM.
>
> Sean and Xiaoyao are working on split lock for KVM (in separate patch set).
> They may have insight on how to do this.

Yes, with SMT off KVM could allow the guest to enable split lock #AC, but
for the initial implementation we'd want to allow it if and only if split
lock #AC is disabled in the host kernel. Otherwise we have to pull in the
logic to control whether or not a guest can disable split lock #AC, what
to do if a split lock #AC happens when it's enabled by the host but
disabled by the guest, etc...