As-is:
qemu: hardware error: Unhandled diag308 subcode 2
CPU #0:
PSW=mask 0000100180000000 addr 00000000000134be cc 00
R00=0000000000000000 R01=0000000000000000 R02=0000000000000002 
R03=0000000000000000
R04=00000000000134ae R05=000000000003fdd8 R06=0000000000000000 
R07=0000000000000000
R08=0000000000000000 R09=0000000000000000 R10=0000000000000000 
R11=0000000000000000
R12=0000000000000000 R13=0000000000000000 R14=00000000000134ae 
R15=000000000003fec0
F00=0000000000000000 F01=0000000000000000 F02=0000000000000000 
F03=0000000000000000
F04=0000000000000000 F05=0000000000000000 F06=0000000000000000 
F07=0000000000000000
F08=0000000000000000 F09=0000000000000000 F10=0000000000000000 
F11=0000000000000000
F12=0000000000000000 F13=0000000000000000 F14=0000000000000000 
F15=0000000000000000
V00=00000000000000000000000000000000 V01=00000000000000000000000000000000
V02=00000000000000000000000000000000 V03=00000000000000000000000000000000
V04=00000000000000000000000000000000 V05=00000000000000000000000000000000
V06=00000000000000000000000000000000 V07=00000000000000000000000000000000
V08=00000000000000000000000000000000 V09=00000000000000000000000000000000
V10=00000000000000000000000000000000 V11=00000000000000000000000000000000
V12=00000000000000000000000000000000 V13=00000000000000000000000000000000
V14=00000000000000000000000000000000 V15=00000000000000000000000000000000
V16=00000000000000000000000000000000 V17=00000000000000000000000000000000
V18=00000000000000000000000000000000 V19=00000000000000000000000000000000
V20=00000000000000000000000000000000 V21=00000000000000000000000000000000
V22=00000000000000000000000000000000 V23=00000000000000000000000000000000
V24=00000000000000000000000000000000 V25=00000000000000000000000000000000
V26=00000000000000000000000000000000 V27=00000000000000000000000000000000
V28=00000000000000000000000000000000 V29=00000000000000000000000000000000
V30=00000000000000000000000000000000 V31=00000000000000000000000000000000
C00=0000000000040000 C01=0000000000000000 C02=0000000000000000 
C03=0000000000000000
C04=0000000000000000 C05=0000000000000000 C06=0000000000000000 
C07=0000000000000000
C08=0000000000000000 C09=0000000000000000 C10=0000000000000000 
C11=0000000000000000
C12=0000000000000000 C13=0000000000000000 C14=00000000c2000000 
C15=0000000000000000

Aborted


With fix from PPA:
sudo qemu-system-s390x -nodefaults -nographic -machine 
s390-ccw-virtio,accel=kvm -chardev stdio,id=con0 -device 
sclpconsole,chardev=con0 -kernel diag308.elf
ABORT: diag308: Unexpected program interrupt: 6 at 0x134be, ilen 4

SUMMARY: 0 tests

EXIT: STATUS=127


That said this bug looks good to go to SRU queue, but there are more to 
pre-verify

** Description changed:

  [Impact]
  
   * diag308 doesn't behave correctly (hw error instead of program
     interrupt)
  
   * Solution; Backport upstream accepted fix
  
  [Test Case]
  
   * Download the test image in comment #3
  
   * Run the test kernel in qemu (on s390x) like:
-    /usr/local/bin/qemu-system-s390x -nodefaults -nographic -machine 
s390-ccw-virtio,accel=kvm -chardev stdio,id=con0 -device 
sclpconsole,chardev=con0 -kernel s390x/diag308.elf
+    qemu-system-s390x -nodefaults -nographic -machine 
s390-ccw-virtio,accel=kvm -chardev stdio,id=con0 -device 
sclpconsole,chardev=con0 -kernel diag308.elf
  
    * Should report a proper abort/exception like
      ABORT: diag308: Unexpected program interrupt: 6 at 0x134be, ilen 4
      Without the fix it is a hard crash
  
  [Regression Potential]
  
   * In both cases the guest breaks, with the fix in place it breaks with a
     better message and the guest kernel could actually handle the program
     interrupt if it wanted.
     Since the old case was a full crash of the qemu userspace and this si
     the only code path modified I can't see potential regressions triggered
     by this change.
  
  [Other Info]
  
-  * I doubt we call a special test kernel a "real case" for the SRU, but 
-    future guests (e.g. Ubuntu 20.04) might trigger subcodes not yet 
-    known to older qmeu (e.g. in 18.04) so adding this is a good safety
-    net for any such upcoming changes.
- 
+  * I doubt we call a special test kernel a "real case" for the SRU, but
+    future guests (e.g. Ubuntu 20.04) might trigger subcodes not yet
+    known to older qmeu (e.g. in 18.04) so adding this is a good safety
+    net for any such upcoming changes.
  
  ---
  
  The presence of subcodes is indicated by checking some query subcode.
  For example 6 will indicate that 3-6 are available. So future systems
  might call new subcodes to check for new features. This should not
  trigger a hw error, instead we return the architectured specification
  exception.
  
  Commit has been accepted by maintainer:
  
  https://github.com/cohuck/qemu/commit/f0646afaccf6bc1b196fc068eef75938db303814
  
  Commit ID will be provided once it's upstream:

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1812384

Title:
  [Ubuntu] qemu - backport diag308 stable exception fix

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/1812384/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to