[UBUNTU 22.04] s390x system emulation of QEMU has random hangs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Released
|
Undecided
|
Skipper Bug Screeners | ||
qemu (Ubuntu) |
Fix Released
|
Undecided
|
Canonical Server | ||
Jammy |
Fix Released
|
Undecided
|
Christian Ehrhardt |
Bug Description
[Impact]
* s390x emulation of interrupts on EX could result in endless loops
* Backport a set of upstream fixes to Kinetic (as even 7.0 doesn't
have it) and Jammy (6.2)
[Test Plan]
* Get kernel build dependencies installed
$ apt build-dep linux
* Fetch a 5.19 kernel - just a tarball from kernel.org is enough
* Build it for debug_defconfig
$ make debug_defconfig
$ make -j24
# use arch/s390/
* Then boot that in qemu tcg which will run a bunch of self tests
and eventually fail as we won't give it a proper root disk.
In the failing case ~50% of them will get stuck. With the fix
applied it is expected to work fine and complete when running
the following loop.
$ for i in $(seq 120); do sudo qemu-system-s390x -machine s390-ccw-
[Where problems could occur]
* Changes are limited to s390x TCG, so that is what we should watch out.
This is gladly a very isolated use-case rather separate from most
other things qemu does provide and therefore regressions (if any)
should be easily mapped back to this.
[Other Info]
* there still is bug 1980896 in -proposed. I'm uploading this one
now, but expect the SRU team only to act accepting it to -proposed
once the other one has moved to -updates.
--- original Problem Description---
QEMU system emulation of s390x sometimes hangs when running Linux. Turns out that interrupts on an EX instructions can result in endless loops.
Contact Information = <email address hidden>
These 4 patches are missing from TCG
https:/
https:/
https:/
https:/
Richard Henderson (4):
target/s390x: Remove DISAS_GOTO_TB
target/s390x: Remove DISAS_PC_STALE
target/s390x: Remove DISAS_PC_
target/s390x: Exit tb after executing ex_value
Related branches
- git-ubuntu bot: Approve
- Andreas Hasenack: Approve
- Canonical Server Reporter: Pending requested
-
Diff: 343 lines (+303/-0)6 files modifieddebian/changelog (+6/-0)
debian/patches/series (+4/-0)
debian/patches/ubuntu/lp-1981339-target-s390x-Exit-tb-after-executing-ex_value.patch (+39/-0)
debian/patches/ubuntu/lp-1981339-target-s390x-Remove-DISAS_GOTO_TB.patch (+62/-0)
debian/patches/ubuntu/lp-1981339-target-s390x-Remove-DISAS_PC_STALE.patch (+79/-0)
debian/patches/ubuntu/lp-1981339-target-s390x-Remove-DISAS_PC_STALE_NOCHAIN.patch (+113/-0)
- Andreas Hasenack: Approve
- git-ubuntu bot: Approve
- Canonical Server Reporter: Pending requested
-
Diff: 7306 lines (+6615/-37)23 files modifieddebian/changelog (+4759/-3)
debian/control (+55/-9)
debian/control-in (+15/-25)
debian/patches/CVE-2021-3507.patch (+81/-0)
debian/patches/series (+13/-0)
debian/patches/ubuntu/define-ubuntu-machine-types.patch (+870/-0)
debian/patches/ubuntu/enable-svm-by-default.patch (+34/-0)
debian/patches/ubuntu/lp-1981339-target-s390x-Exit-tb-after-executing-ex_value.patch (+39/-0)
debian/patches/ubuntu/lp-1981339-target-s390x-Remove-DISAS_GOTO_TB.patch (+62/-0)
debian/patches/ubuntu/lp-1981339-target-s390x-Remove-DISAS_PC_STALE.patch (+79/-0)
debian/patches/ubuntu/lp-1981339-target-s390x-Remove-DISAS_PC_STALE_NOCHAIN.patch (+113/-0)
debian/patches/ubuntu/lp1970737-linux-aio-explain-why-max-batch-is-checked-in-laio_i.patch (+39/-0)
debian/patches/ubuntu/lp1970737-linux-aio-fix-unbalanced-plugged-counter-in-laio_io_.patch (+46/-0)
debian/patches/ubuntu/pre-bionic-256k-ipxe-efi-roms.patch (+62/-0)
debian/patches/ubuntu/qboot-Disable-LTO-for-ELF-binary-build-step.patch (+44/-0)
debian/qemu-block-extra.postinst (+59/-0)
debian/qemu-kvm-init (+89/-0)
debian/qemu-system-common.install (+1/-0)
debian/qemu-system-common.qemu-kvm.default (+8/-0)
debian/qemu-system-common.qemu-kvm.service (+16/-0)
debian/qemu-system-x86.NEWS (+80/-0)
debian/qemu-system-x86.README.Debian (+47/-0)
debian/rules (+4/-0)
tags: | added: architecture-all bugnameltc-198914 severity-medium targetmilestone-inin--- |
Changed in ubuntu: | |
assignee: | nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
affects: | ubuntu → linux (Ubuntu) |
Changed in linux (Ubuntu): | |
assignee: | Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) → Skipper Bug Screeners (skipper-screen-team) |
affects: | linux (Ubuntu) → qemu (Ubuntu) |
Changed in ubuntu-z-systems: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
Changed in ubuntu-z-systems: | |
status: | New → Triaged |
Changed in qemu (Ubuntu Jammy): | |
status: | New → Triaged |
Changed in qemu (Ubuntu): | |
status: | Triaged → In Progress |
tags: | added: qemu-22.10 |
Changed in ubuntu-z-systems: | |
status: | Triaged → In Progress |
tags: | added: server-todo |
Changed in qemu (Ubuntu Jammy): | |
assignee: | nobody → Christian Ehrhardt (paelzer) |
description: | updated |
tags: | added: cetest |
tags: | removed: cetest |
Changed in ubuntu-z-systems: | |
status: | In Progress → Fix Committed |
Changed in ubuntu-z-systems: | |
status: | Fix Committed → Fix Released |
tags: |
added: targetmilestone-inin2204 removed: targetmilestone-inin--- |
Thank you for the report, this isn't even in release v7.0 which I'm working on already.
I'll add them as backports to that.
Feature wise - how do you think of s390x emulation do we want/need that also backported to an LTS?
If so do you expect (I haven't checked) this to apply to and work with 6.2 or even earlier versions fine?