Re: [PATCH 10/11] qspinlock: Paravirt support
From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2014-06-18 12:04:20
Also in:
kvm, linux-arch, lkml
From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2014-06-18 12:04:20
Also in:
kvm, linux-arch, lkml
Il 17/06/2014 00:08, Waiman Long ha scritto:
quoted
+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