Public bug reported: Description: KVM: s390: pv: don't allow userspace to set the clock under PV
Symptom: Timer issues and RCU stalls after suspending and resuming an IBM Secure Execution guest Problem: KVM and QEMU try to set the guest's TOD clock after resume under PV, even though that is not permitted under SE. Hence,their view of the guest clock may deviate from the ultravisor's, possibly causing KVM to re-dispatch the guest too late on clock comparator interrupts. Solution: Don't set the clock after resume under PV. Note that kernel and QEMU patches are required in lockstep, to avoid a warning message in QEMU. Reproduction: 1. Start SE guest using libvirt. 2. Pause the guest using "virsh suspend", wait for a few seconds, resume using "virsh resume". 3. Run "time sleep 1" in the guest. 4. The sleep will sleep much longer than one second. Upstream-ID: 6973091d1b50ab4042f6a2d495f59e9db3662ab8 Preventive fix: yes Author: Nico Boehr <n...@linux.ibm.com> Please note that fixing the described problem requires patches for the kernel as well as for QEMU. This bug covers the kernel part, whereas the required QEMU part is described and handled in the following related bug: Bug?200901 - [UBUNTU 20.04] KVM: s390: pv: don't allow userspace to set the clock under PV - qemu part Both parts, the kernel and the qemu patches should be applied / released at the same time to avoid problems resulting in the following warning message for customers: 'warning: Unable to set KVM guest TOD clock: Operation not supported' ** Affects: linux (Ubuntu) Importance: Undecided Assignee: Skipper Bug Screeners (skipper-screen-team) Status: New ** Tags: architecture-s39064 bugnameltc-200889 severity-high targetmilestone-inin--- ** Tags added: architecture-s39064 bugnameltc-200889 severity-high targetmilestone-inin--- ** Changed in: ubuntu Assignee: (unassigned) => Skipper Bug Screeners (skipper-screen-team) ** Package changed: ubuntu => linux (Ubuntu) -- 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/1999882 Title: [UBUNTU 20.04] KVM: s390: pv: don't allow userspace to set the clock under PV - kernel part Status in linux package in Ubuntu: New Bug description: Description: KVM: s390: pv: don't allow userspace to set the clock under PV Symptom: Timer issues and RCU stalls after suspending and resuming an IBM Secure Execution guest Problem: KVM and QEMU try to set the guest's TOD clock after resume under PV, even though that is not permitted under SE. Hence,their view of the guest clock may deviate from the ultravisor's, possibly causing KVM to re-dispatch the guest too late on clock comparator interrupts. Solution: Don't set the clock after resume under PV. Note that kernel and QEMU patches are required in lockstep, to avoid a warning message in QEMU. Reproduction: 1. Start SE guest using libvirt. 2. Pause the guest using "virsh suspend", wait for a few seconds, resume using "virsh resume". 3. Run "time sleep 1" in the guest. 4. The sleep will sleep much longer than one second. Upstream-ID: 6973091d1b50ab4042f6a2d495f59e9db3662ab8 Preventive fix: yes Author: Nico Boehr <n...@linux.ibm.com> Please note that fixing the described problem requires patches for the kernel as well as for QEMU. This bug covers the kernel part, whereas the required QEMU part is described and handled in the following related bug: Bug?200901 - [UBUNTU 20.04] KVM: s390: pv: don't allow userspace to set the clock under PV - qemu part Both parts, the kernel and the qemu patches should be applied / released at the same time to avoid problems resulting in the following warning message for customers: 'warning: Unable to set KVM guest TOD clock: Operation not supported' To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1999882/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp