[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 10/11] qspinlock: Paravirt support



Il 17/06/2014 00:08, Waiman Long ha scritto:
+void __pv_queue_unlock(struct qspinlock *lock)
+{
+       int val = atomic_read(&lock->val);
+
+       native_queue_unlock(lock);
+
+       if (val & _Q_LOCKED_SLOW)
+               ___pv_kick_head(lock);
+}
+

Again a race can happen here between the reading and writing of the lock
value. I can't think of a good way to do that without using cmpxchg.

Could you just use xchg on the locked byte?

Paolo

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.