Messages in this thread | | | Date | Mon, 02 Aug 2010 11:53:03 +0300 | From | Avi Kivity <> | Subject | Re: [PATCH RFC 3/4] Paravirtualized spinlock implementation for KVM guests |
| |
On 07/26/2010 09:15 AM, Srivatsa Vaddagiri wrote: > Paravirtual spinlock implementation for KVM guests, based heavily on Xen guest's > spinlock implementation. > > +static void kvm_spin_unlock(struct arch_spinlock *lock) > +{ > + struct kvm_spinlock *sl = (struct kvm_spinlock *)lock; > + > + ADD_STATS(released, 1); > + > + smp_wmb(); /* make sure no writes get moved after unlock */ > + sl->lock = 0; /* release lock */ > +}
Wait, no wakeup?
So it is a yield, not a sleep. I'm worried it could seriously impact fairness when one non-contending guest (or non-pv) is overcommitted together with a spin-yield guest.
-- error compiling committee.c: too many arguments to function
| |