Re: [PATCH v4 1/3] qrwlock: A queue read/write lock implementation

From: Waiman Long
Date: Thu Oct 24 2013 - 10:13:17 EST


On 10/24/2013 06:14 AM, Thomas Gleixner wrote:
On Wed, 23 Oct 2013, Waiman Long wrote:
On 10/23/2013 08:00 AM, walken@xxxxxxxxxx wrote:
+ /*
+ * Wait until the next one in queue set up the next field
+ */
+ while (likely(!(next = ACCESS_ONCE(node->next))))
+ cpu_relax();
+ /*
+ * The next one in queue is now at the head
+ */
+notify_next:
+ barrier();
+ ACCESS_ONCE(next->wait) = false;
+ smp_wmb();
+}
I believe this could be unified with mspin_lock() / mspin_unlock() in
kernel/mutex.c ? (there is already talk of extending these functions
to be used by rwsem for adaptive spinning as well...)
It probably can, but the unification can wait until the code are in.
The unification has to be done as a part of this series. Cleanups are
part of the development process of new code and not an optional
feature.

Thanks,

tglx


There is an outstanding rwsem patch series that is doing the unification. I am waiting for that patch series to be at least in a tip or linux-next branch before doing the unification. Otherwise, it will cause merge conflict.

-Longman
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/