mbox series

[RFC,v3,0/2] s390x: Improvements to SIGP handling [KVM]

Message ID 20211110203322.1374925-1-farman@linux.ibm.com (mailing list archive)
Headers show
Series s390x: Improvements to SIGP handling [KVM] | expand

Message

Eric Farman Nov. 10, 2021, 8:33 p.m. UTC
Here is an update to the handling of SIGP between kernel and userspace.

As before, I'm looking at problems encountered when a SIGP order that is
processed in the kernel (for example, SIGP SENSE) is run concurrently
with another one is processed in userspace (for example, SIGP STOP).
Being able to provide an honest answer in the SIGP SENSE as to whether
the targeted VCPU is/not stopped is important to provide a consistent
answer while a guest OS is bringing its configuration online.

Version 2 of this series instructed the kernel to automatically flag
a vcpu busy for a SIGP order, and provided an IOCTL for userspace to
mark the order as completed (suggested here [1]). But now, the
suggestion is that the kernel shouldn't be marking the vcpu busy,
and userspace should be doing both sides of the operation [2].
So this version has two IOCTLs, tied to one capability.

As with v2, I've left the CAP/IOCTL definitions as a standalone
patch, so I see it easier when working with the QEMU code.
Ultimately this would be squashed together, and might have some
refit after the merge window anyway. 

I'll send the QEMU series shortly, which takes advantage of this.

Thoughts?

[1] https://lore.kernel.org/r/3e3b38d1-b338-0211-04ab-91f913c1f557@redhat.com/
[2] https://lore.kernel.org/r/7e98f659-32ac-9b4e-0ddd-958086732c8d@redhat.com/

Previous RFCs:
v1: https://lore.kernel.org/r/20211008203112.1979843-1-farman@linux.ibm.com/
v2: https://lore.kernel.org/r/20211102194652.2685098-1-farman@linux.ibm.com/

Eric Farman (2):
  Capability/IOCTL/Documentation
  KVM: s390: Extend the USER_SIGP capability

 Documentation/virt/kvm/api.rst   | 39 ++++++++++++++++++++++++++++++++
 arch/s390/include/asm/kvm_host.h |  2 ++
 arch/s390/kvm/kvm-s390.c         | 29 ++++++++++++++++++++++++
 arch/s390/kvm/kvm-s390.h         | 16 +++++++++++++
 arch/s390/kvm/sigp.c             | 10 ++++++++
 include/uapi/linux/kvm.h         |  5 ++++
 6 files changed, 101 insertions(+)