On Thu, Feb 08, 2018 at 04:32:29PM +1300, Jonathan Matthew wrote: > This diff (most of which has been around for a while) changes delay_func > when running in KVM to use pvclock (effectively the TSC) to determine when to > stop spinning. Since this is done in a KVM-specific driver, it won't have > any effect anywhere other than in KVM guests. > > Using pvclock rather than the lapic avoids the hangs caused by KVM's use of > the VMX preemption timer to emulate a lapic. To summarise that problem: > occasionally KVM fails to restart the lapic timer until it gets an exit from > the guest, and if we're busy polling the lapic, we'll never generate such an > exit, and the lapic counter will never reach the value we're waiting for, at > which point we're stuck.
>From my understanding of your explanation, that fixes the hangs i was seeing with KVM vms, hangs which were worked around by disabling the host 'preemption timer' via putting kvm-intel.preemption_timer=0 on the host kernel commandline.. so if i get it right, once this diff is in, no need for this workaround on the host ? Correct ? > A couple of testers have confirmed that this does *not* fix the time slowdowns > seen on KVM guests. I believe fixing that will require more invasive changes. Sign me up for testing those changes then ! Thanks for your work on it :) Landry