search for: queue_spinlock_complex

Displaying 7 results from an estimated 7 matches for "queue_spinlock_complex".

2014 Jun 17
3
[PATCH 03/11] qspinlock: Add pending bit
...y of the queue spinlock is in the slowpath. Sure, but then it shouldn't be called slowpath anymore as it is not slow. It is a combination of fast path (the potential chance of grabbing the lock and setting the pending lock) and the real slow path (the queuing). Perhaps it should be called 'queue_spinlock_complex' ? > > Moreover, an cmpxchg followed immediately followed by another cmpxchg will > just increase the level of memory contention when a lock is fairly > contended. The chance of second cmpxchg() succeeding will be pretty low. Then why even do the pending bit - which is what the s...
2014 Jun 17
3
[PATCH 03/11] qspinlock: Add pending bit
...y of the queue spinlock is in the slowpath. Sure, but then it shouldn't be called slowpath anymore as it is not slow. It is a combination of fast path (the potential chance of grabbing the lock and setting the pending lock) and the real slow path (the queuing). Perhaps it should be called 'queue_spinlock_complex' ? > > Moreover, an cmpxchg followed immediately followed by another cmpxchg will > just increase the level of memory contention when a lock is fairly > contended. The chance of second cmpxchg() succeeding will be pretty low. Then why even do the pending bit - which is what the s...
2014 Jun 17
0
[PATCH 03/11] qspinlock: Add pending bit
...s in the slowpath. > > Sure, but then it shouldn't be called slowpath anymore as it is not > slow. It is a combination of fast path (the potential chance of > grabbing the lock and setting the pending lock) and the real slow > path (the queuing). Perhaps it should be called 'queue_spinlock_complex' ? > I forgot to mention - that was the crux of my comments - just change the slowpath to complex name at that point to better reflect what it does. > > > > Moreover, an cmpxchg followed immediately followed by another cmpxchg will > > just increase the level of memory...
2014 Jun 17
1
[PATCH 03/11] qspinlock: Add pending bit
...Sure, but then it shouldn't be called slowpath anymore as it is not > >> slow. It is a combination of fast path (the potential chance of > >> grabbing the lock and setting the pending lock) and the real slow > >> path (the queuing). Perhaps it should be called 'queue_spinlock_complex' ? > >> > > I forgot to mention - that was the crux of my comments - just change > > the slowpath to complex name at that point to better reflect what > > it does. > > Actually in my v11 patch, I subdivided the slowpath into a slowpath for > the pending...
2014 Jun 17
1
[PATCH 03/11] qspinlock: Add pending bit
...Sure, but then it shouldn't be called slowpath anymore as it is not > >> slow. It is a combination of fast path (the potential chance of > >> grabbing the lock and setting the pending lock) and the real slow > >> path (the queuing). Perhaps it should be called 'queue_spinlock_complex' ? > >> > > I forgot to mention - that was the crux of my comments - just change > > the slowpath to complex name at that point to better reflect what > > it does. > > Actually in my v11 patch, I subdivided the slowpath into a slowpath for > the pending...
2014 Jun 17
5
[PATCH 03/11] qspinlock: Add pending bit
On Sun, Jun 15, 2014 at 02:47:00PM +0200, Peter Zijlstra wrote: > Because the qspinlock needs to touch a second cacheline; add a pending > bit and allow a single in-word spinner before we punt to the second > cacheline. Could you add this in the description please: And by second cacheline we mean the local 'node'. That is the: mcs_nodes[0] and mcs_nodes[idx] Perhaps it might be
2014 Jun 17
5
[PATCH 03/11] qspinlock: Add pending bit
On Sun, Jun 15, 2014 at 02:47:00PM +0200, Peter Zijlstra wrote: > Because the qspinlock needs to touch a second cacheline; add a pending > bit and allow a single in-word spinner before we punt to the second > cacheline. Could you add this in the description please: And by second cacheline we mean the local 'node'. That is the: mcs_nodes[0] and mcs_nodes[idx] Perhaps it might be