mbox series

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

Message ID 20220304062835.1429148-1-frank.heimes@canonical.com
Headers show
Series Fix SIGP processing on KVM/s390 (LP: 1962578) | expand

Message

Frank Heimes March 4, 2022, 6:28 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1962578

SRU Justification:

[Impact]

* The SIGP processing on KVM/s390x is incorrect and not fully conformant 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:

[Fix]

* 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:
  https://lore.kernel.org/r/20220303210425.1693486-1-farman@linux.ibm.com/

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

[Where problems could occur]

<this is pretty high level and generic, anything more specific to add?>

* 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.

[Other]

* The two remaing 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:
  https://lore.kernel.org/all/20211008203112.1979843-2-farman@linux.ibm.com/

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

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(-)

Comments

Frank Heimes March 4, 2022, 7:04 a.m. UTC | #1
Sorry, but please NAK this submission,
I found a some typos that I want to clean up.
A v2 will follow soon ...

On Fri, Mar 4, 2022 at 7:29 AM <frank.heimes@canonical.com> wrote:

> BugLink: https://bugs.launchpad.net/bugs/1962578
>
> SRU Justification:
>
> [Impact]
>
> * The SIGP processing on KVM/s390x is incorrect and not fully conformant 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:
>
> [Fix]
>
> * 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:
>   https://lore.kernel.org/r/20220303210425.1693486-1-farman@linux.ibm.com/
>
> * The test and verification will be done by the IBM Z team.
>
> [Where problems could occur]
>
> <this is pretty high level and generic, anything more specific to add?>
>
> * 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.
>
> [Other]
>
> * The two remaing 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:
>
> https://lore.kernel.org/all/20211008203112.1979843-2-farman@linux.ibm.com/
>
> * This not only fixes the SIGP processing, but is also important in terms
> of
>   long term maintainability.
>
> 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(-)
>
> --
> 2.25.1
>
>
> --
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>