mbox series

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

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

Message

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

SRU Justification:

[Impact]

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

[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]

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

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

Comments

Kleber Sacilotto de Souza March 4, 2022, 11:01 a.m. UTC | #1
On 04.03.22 08:22, 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 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:
> 
> [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]
> 
> * 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 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:
>    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.
> 
> 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(-)
> 

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>

Thanks
Tim Gardner March 4, 2022, 12:39 p.m. UTC | #2
Acked-by: Tim Gardner <tim.gardner@canonical.com>

On 3/4/22 00:22, 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 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:
> 
> [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]
> 
> * 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 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:
>    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.
> 
> 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(-)
>
Stefan Bader March 14, 2022, 1:27 p.m. UTC | #3
On 04.03.22 08:22, 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 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:
> 
> [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]
> 
> * 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 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:
>    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.
> 
> 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(-)
> 

Applied to impish,focal:linux/master-next. Thanks.

-Stefan