Comment 0 for bug 1999885

Revision history for this message
bugproxy (bugproxy) wrote :

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.

Component: qemu

Upstream-ID: 38621181ae3cbec62e3490fbc14f6ac01642d07a

Preventive: yes

Author: Nico Boehr <email address hidden>

Please note that fixing the described problem requires patches for the kernel as well as for QEMU.
This bug covers the qemu part, whereas the required kernel part is described and handled in the following related bug:

   Bug 200889 - [UBUNTU 20.04] KVM: s390: pv: don't allow userspace to set the clock under PV - kernel 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'