On 02/17/2016 11:27 AM, Christoph Lameter wrote:
On Wed, 17 Feb 2016, Waiman Long wrote:
I know we can use RCU for singly linked list, but I don't think we can use
that for doubly linked list as there is no easy way to make atomic changes to
both prev and next pointers simultaneously unless you are taking about 16b
cmpxchg which is only supported in some architecture.
But its supported in the most important architecutes. You can fall back to
spinlocks on the ones that do not support it.
I guess with some limitations on how the lists can be traversed, we may
be able to do that with RCU without lock. However, that will make the
code more complex and harder to verify. Given that in both my and Dave's
testing that contentions with list insertion and deletion are almost
gone from the perf profile when they used to be a bottleneck, is it
really worth the effort to do such a conversion?
Cheers,
Longman
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html