<div dir="ltr"><div>Sorry, but please NAK this submission,</div><div>I found a some typos that I want to clean up.</div><div>A v2 will follow soon ...</div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 4, 2022 at 7:29 AM <<a href="mailto:frank.heimes@canonical.com">frank.heimes@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">BugLink: <a href="https://bugs.launchpad.net/bugs/1962578" rel="noreferrer" target="_blank">https://bugs.launchpad.net/bugs/1962578</a><br>
<br>
SRU Justification:<br>
<br>
[Impact]<br>
<br>
* The SIGP processing on KVM/s390x is incorrect and not fully conformant to<br>
  the 'Principles of Operations', the IBM Z architecture definition<br>
  and documentation.<br>
<br>
* KVM: SIGP RESTART is reporting a CPU state 'stopped' after SIGP RESTART<br>
  was issued, while it should report a 'busy' condition until the CPU is<br>
  really started.<br>
<br>
* The fix for this consists of three patches:<br>
  812de04661c4 "KVM: s390: Clarify SIGP orders versus STOP/RESTART"<br>
  435d17955519 "KVM: s390: Add a routine for setting userspace CPU state"<br>
  4563bcad46bf "KVM: s390: Simplify SIGP Set Arch handling"<br>
  whereas 812de04661c4 already landed via upstream stable,<br>
  hence only two are left and need to be cherry-picked:<br>
<br>
[Fix]<br>
<br>
* 67cf68b6a5ccac8bc7dfef0a220b59af4c83fd2c 67cf68b6a5cc "KVM: s390: Add a routine for setting userspace CPU state"<br>
<br>
* 8eeba194a32e0f50329354a696baaa2e3d9accc5 8eeba194a32e "KVM: s390: Simplify SIGP Set Arch handling"<br>
<br>
[Test Case]<br>
<br>
* Install an LPAR on IBM Z (z13+) or LinuxONE (Emperor / Rockhopper)<br>
  with Ubuntu Server 20.04 using kernel standard kernel 5.4.<br>
<br>
* Setup this LPAR as QEMU/KVM host and a focal VM as guest.<br>
<br>
* The test itself is the following unit test:<br>
  <a href="https://lore.kernel.org/r/20220303210425.1693486-1-farman@linux.ibm.com/" rel="noreferrer" target="_blank">https://lore.kernel.org/r/20220303210425.1693486-1-farman@linux.ibm.com/</a><br>
<br>
* The test and verification will be done by the IBM Z team.<br>
<br>
[Where problems could occur]<br>
<br>
<this is pretty high level and generic, anything more specific to add?><br>
<br>
* A broken patch could harm KVM ioctl on s390x or the (virtual) CPU<br>
  state control in general.<br>
<br>
* The SIGP handing (on s390x) can become broken, which could lead to<br>
  incorrect (virtual) CPU states.<br>
<br>
* In worst case KVM can become broken on s390x entirely.<br>
<br>
* The modified code is all s390x specific QEMU/KVM code,<br>
  no common code is touched.<br>
<br>
[Other]<br>
<br>
* The two remaing patches are upstream since 5.16,<br>
  the first one already landed in 5.4 via upstream stable bug LP#1959701<br>
  and in 5.13 via upstream stable bug LP#1960861.<br>
<br>
* The patches already landed in jammy (master-next) based on LP#1959735,<br>
  hence only SRU to impish and focal is needed.<br>
<br>
* This patches got discussed here:<br>
  <a href="https://lore.kernel.org/all/20211008203112.1979843-2-farman@linux.ibm.com/" rel="noreferrer" target="_blank">https://lore.kernel.org/all/20211008203112.1979843-2-farman@linux.ibm.com/</a><br>
<br>
* This not only fixes the SIGP processing, but is also important in terms of<br>
  long term maintainability.<br>
<br>
Eric Farman (2):<br>
  KVM: s390: Simplify SIGP Set Arch handling<br>
  KVM: s390: Add a routine for setting userspace CPU state<br>
<br>
 arch/s390/kvm/kvm-s390.c |  6 +++---<br>
 arch/s390/kvm/kvm-s390.h |  9 +++++++++<br>
 arch/s390/kvm/sigp.c     | 14 +-------------<br>
 3 files changed, 13 insertions(+), 16 deletions(-)<br>
<br>
-- <br>
2.25.1<br>
<br>
<br>
-- <br>
kernel-team mailing list<br>
<a href="mailto:kernel-team@lists.ubuntu.com" target="_blank">kernel-team@lists.ubuntu.com</a><br>
<a href="https://lists.ubuntu.com/mailman/listinfo/kernel-team" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/kernel-team</a><br>
</blockquote></div></div>