[SRU][I][F][PATCH v2 0/2] Fix SIGP processing on KVM/s390 (LP: 1962578)

frank.heimes at canonical.com frank.heimes at canonical.com
Fri Mar 4 07:22:19 UTC 2022

BugLink: https://bugs.launchpad.net/bugs/1962578

SRU Justification:


* The SIGP processing on KVM/s390x is incorrect and not fully conform to
  the 'Principles of Operations', the IBM Z architecture definition
  and documentation.

* KVM: SIGP RESTART is reporting a CPU state 'stopped' after SIGP RESTART
  was issued, while it should report a 'busy' condition until the CPU is
  really started.

* The fix for this consists of three patches:
  812de04661c4 "KVM: s390: Clarify SIGP orders versus STOP/RESTART"
  435d17955519 "KVM: s390: Add a routine for setting userspace CPU state"
  4563bcad46bf "KVM: s390: Simplify SIGP Set Arch handling"
  whereas 812de04661c4 already landed via upstream stable,
  hence only two are left and need to be cherry-picked:


* 67cf68b6a5ccac8bc7dfef0a220b59af4c83fd2c 67cf68b6a5cc "KVM: s390: Add a routine for setting userspace CPU state"

* 8eeba194a32e0f50329354a696baaa2e3d9accc5 8eeba194a32e "KVM: s390: Simplify SIGP Set Arch handling"

[Test Case]

* Install an LPAR on IBM Z (z13+) or LinuxONE (Emperor / Rockhopper)
  with Ubuntu Server 20.04 using kernel standard kernel 5.4.

* Setup this LPAR as QEMU/KVM host and a focal VM as guest.

* The test itself is the following unit test:

* The test and verification will be done by the IBM Z team.

[Where problems could occur]

* A broken patch could harm KVM ioctl on s390x or the (virtual) CPU
  state control in general.

* The SIGP handing (on s390x) can become broken, which could lead to
  incorrect (virtual) CPU states.

* In worst case KVM can become broken on s390x entirely.

* The modified code is all s390x specific QEMU/KVM code,
  no common code is touched.


* The two remaining patches are upstream since 5.16,
  the first one already landed in 5.4 via upstream stable bug LP#1959701
  and in 5.13 via upstream stable bug LP#1960861.

* The patches already landed in jammy (master-next) based on LP#1959735,
  hence only SRU to impish and focal is needed.

* This patches got discussed here:

* This not only fixes the SIGP processing, but is also important in terms of
  long term maintainability.

v2: fixed typos and text of SRU justification

Eric Farman (2):
  KVM: s390: Simplify SIGP Set Arch handling
  KVM: s390: Add a routine for setting userspace CPU state

 arch/s390/kvm/kvm-s390.c |  6 +++---
 arch/s390/kvm/kvm-s390.h |  9 +++++++++
 arch/s390/kvm/sigp.c     | 14 +-------------
 3 files changed, 13 insertions(+), 16 deletions(-)


More information about the kernel-team mailing list