Re: [PATCH v2] KVM: Expose the split lock detection feature to guest VM

From: Paolo Bonzini
Date: Wed Jul 04 2018 - 12:21:11 EST

On 04/07/2018 16:51, Thomas Gleixner wrote:
> There is no rush for this to be in KVM/QEMU now because all what exists for
> this new split lock thing is 'silicon' running on an emulator. And w/o
> support in the kernel proper this is completely useless.

That's good. I assumed it was IceLake, in which case the feature would
block the definition of a standard IceLake CPU model in QEMU.

> So this needs the following things:
> 1) Proper enumeration via CPUID or MISC_FEATURES. The current detection
> hack is just broken.

Yes please.

> 2) A proper host side implementation, which then automatically makes the
> stuff usable in a guest once it is exposed.

If the CPUID bit or MISC_FEATURES is added, you don't even need the host
side for the guests to use it. It's only needed now because of the ugly
MSR-based detection.

> 3) A proper way how to expose MSR_TEST_CTL to the guest, but surely not
> with extra split_lock_ctrl voodoo. It's an MSR nothing else. KVM/QEMU
> have standartized ways to deal with MSRs and the required selective
> bitwise access control.

That part is pretty much standard, I'm not worried about it. We have
one variable in struct kvm_vcpu_arch for each MSR (or set of MSRs) that
we expose, so that's the split_lock_ctrl voodoo. :)

Once the detection is sorted out, KVM is easy.