search for: enter_slow_path

Displaying 4 results from an estimated 4 matches for "enter_slow_path".

2015 Feb 12
0
[PATCH V3] x86 spinlock: Fix memory corruption on completing completions
..._ONCE(lock->tickets.head) == want) { > + head = ACCESS_ONCE(lock->tickets.head); > + if (__tickets_equal(head, want)) { > add_stats(TAKEN_SLOW_PICKUP, 1); While at it, perhaps it makes sense to s/ACCESS_ONCE/READ_ONCE/ but this is cosmetic. We also need to change another user of enter_slow_path, xen_lock_spinning() in arch/x86/xen/spinlock.c. Other than that looks correct at first glance... but this is up to maintainers. Oleg.
2015 Feb 12
0
[PATCH V3] x86 spinlock: Fix memory corruption on completing completions
..._ONCE(lock->tickets.head) == want) { > + head = ACCESS_ONCE(lock->tickets.head); > + if (__tickets_equal(head, want)) { > add_stats(TAKEN_SLOW_PICKUP, 1); While at it, perhaps it makes sense to s/ACCESS_ONCE/READ_ONCE/ but this is cosmetic. We also need to change another user of enter_slow_path, xen_lock_spinning() in arch/x86/xen/spinlock.c. Other than that looks correct at first glance... but this is up to maintainers. Oleg.
2015 Feb 12
8
[PATCH V3] x86 spinlock: Fix memory corruption on completing completions
Paravirt spinlock clears slowpath flag after doing unlock. As explained by Linus currently it does: prev = *lock; add_smp(&lock->tickets.head, TICKET_LOCK_INC); /* add_smp() is a full mb() */ if (unlikely(lock->tickets.tail & TICKET_SLOWPATH_FLAG)) __ticket_unlock_slowpath(lock, prev); which
2015 Feb 12
8
[PATCH V3] x86 spinlock: Fix memory corruption on completing completions
Paravirt spinlock clears slowpath flag after doing unlock. As explained by Linus currently it does: prev = *lock; add_smp(&lock->tickets.head, TICKET_LOCK_INC); /* add_smp() is a full mb() */ if (unlikely(lock->tickets.tail & TICKET_SLOWPATH_FLAG)) __ticket_unlock_slowpath(lock, prev); which