Hello Nico, thanks for raising this.
The fix/patch c3f0e5fd2d33 "KVM: s390: pv: don't present the ecall interrupt
twice" got upstream accepted with kernel v6.0, so I assume that it not only
needs to be applied to 20.04/5.4, but also to 22.04/5.15 and 22.10/5.19.
And I've noticed that it got nice and properly tagged for upstream stable:
Cc: <[email protected]> # 5.7
Fixes: da24a0cc58ed ("KVM: s390: protvirt: Instruction emulation")
And with that it got already picked up and is included in:
22.04 with Ubuntu-5.15.0-53.59 (currently in jammy-proposed)
22.10 with Ubuntu-5.19.0-16.16 means already incl. in the release kernel.
So the only Ubuntu release that is affected is 20.04/focal, so I've set
that as affected target series...
** Also affects: linux (Ubuntu Focal)
Importance: Undecided
Status: New
** Changed in: linux (Ubuntu)
Status: New => Invalid
** Changed in: linux (Ubuntu Focal)
Status: New => Triaged
** Also affects: ubuntu-z-systems
Importance: Undecided
Status: New
** Changed in: ubuntu-z-systems
Status: New => Triaged
** Changed in: linux (Ubuntu Focal)
Assignee: (unassigned) => Skipper Bug Screeners (skipper-screen-team)
** Changed in: linux (Ubuntu)
Assignee: Skipper Bug Screeners (skipper-screen-team) => (unassigned)
** Changed in: ubuntu-z-systems
Assignee: (unassigned) => Skipper Bug Screeners (skipper-screen-team)
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1995941
Title:
[UBUNTU 20.04] KVM: PV: ext call delivered twice when receiver in PSW
wait
Status in Ubuntu on IBM z Systems:
Triaged
Status in linux package in Ubuntu:
Invalid
Status in linux source package in Focal:
Triaged
Bug description:
Description: KVM: PV: ext call delivered twice when receiver in PSW wait
Symptom: In a secure execution guest, the external interrupt for the
SIGP external call order is delivered twice to a VCPU even
though it was only sent once.
Problem: Under PV, external call interrupts are delivered by the SIGP
interpretation facility, without KVM's involvement. But, if the
receiving CPU is in enabled wait, KVM needs to wake the
receiving CPU such that the interrupt can be delivered. Hence,
in this case, the SIGP external call order causes an
interception. In response, KVM only needs to wake the receiving
VCPU. Interrupt delivery is then handled by the SIGP
interpretation facility.
KVM wrongfuly assumed it also needs to request injection for
the
external call interrupt after the respective intercept, causing
the interrupt to be delivered twice: once through the SIGP
interpretation facility and once through the interrupt
injection
control by KVM.
Solution: Add appropriate special handling for 108 external call
intercepts.
Reproduction: 0. Apply kvm-unit-test submitted upstream
("[kvm-unit-tests PATCH v1 0/4] s390x: add tests for SIGP
call orders in enabled wait").
1. Run the smp_PV kvm-unit-test:
./run_tests.sh smp_PV
2. Check logs/smp_PV.log. If system is affected, the following
line can be found:
ABORT: smp: psw wait: ecall: Unexpected external call \
interrupt (code 0x1202): on cpu 1 at 0x11958
If the system is not affected, the line should look like
this:
PASS: smp: psw wait: ecall: received
Preventive: yes
Author: Nico Boehr <[email protected]>
Component: kernel
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/1995941/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp