[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 10/11] qspinlock: Paravirt support
On Wed, Jun 18, 2014 at 02:03:12PM +0200, Paolo Bonzini wrote: > 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? I'll have to, indeed. This is racy. Attachment:
pgptL3MI9W2z6.pgp _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |