Re: [PATCH v8 4/4] qrwlock: Use smp_store_release() in write_unlock()
From: Waiman Long
Date: Tue Jan 21 2014 - 11:16:13 EST
On 01/21/2014 10:41 AM, Peter Zijlstra wrote:
On Tue, Jan 21, 2014 at 10:02:06AM -0500, Waiman Long wrote:
My latest v9 series of qrwlock patch will automatically adapt to the lack of
atomic byte access by using an atomic integer instruction instead. So the
new series should work for pre-EV56 Alpha, it is just a bit less efficient
in this case.
See my other email; I don't think you can do that without also changing
the implementation of the queue_read_{try}lock() functions.
Without those changes you can have transient values in your 'read-count'
part of the word and a full word write will wreck things.
I don't see any problem with my current logic. If a writer has the write
lock, the writer byte has to have a value of 0xff. So atomically
subtracting 0xff from it will guarantee that the writer byte will become
zero, which is the same as assigning a zero value to that byte. The only
difference is that an atomic subtract instruction will need to be used
instead of a simple byte assignment.
Please let me know if there is any flaw in my logic.
-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/