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
