|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] spinlock wakeup
Looking at
void _spin_lock(spinlock_t *lock)
{
spinlock_tickets_t tickets = SPINLOCK_TICKET_INC;
LOCK_PROFILE_VAR;
check_lock(&lock->debug);
tickets.head_tail = arch_fetch_and_add(&lock->tickets.head_tail,
tickets.head_tail);
while ( tickets.tail != observe_head(&lock->tickets) )
{
LOCK_PROFILE_BLOCK;
arch_lock_relax();
}
LOCK_PROFILE_GOT;
preempt_disable();
arch_lock_acquire_barrier();
}
If the lock is dropped during LOCK_PROFILE_BLOCK, isn't there a chance
that we are never woken up from arch_lock_relax()? (This would only be
an issue on ARM which IIUIC sleeps there).
-boris
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |