On Sun, May 12, 2019 at 11:43:05PM -0400, Joel Fernandes wrote: > On Wed, May 08, 2019 at 11:16:38AM -0700, Paul E. McKenney wrote: > [snip] > > > The other example could be dentry look up which uses seqlocks for the > > > RCU-walk case? But that could be too complex. This is also something I first > > > learnt from the paper and then the excellent path-lookup.rst document in > > > kernel sources. > > > > This is a great example, but it would need serious simplification for > > use in the Documentation/RCU directory. Note that dcache uses it to > > gain very limited and targeted consistency -- only a few types of updates > > acquire the write-side of that seqlock. > > > > Might be quite worthwhile to have a simplified example, though! > > Perhaps a trivial hash table where write-side sequence lock is acquired > > only when moving an element from one chain to another? > > Here you meant "moving from one chain to another" in the case of > hashtable-resizing right? I could not think of another reason why an element > is moved between 2 hash chains. Either that or in terms of atomic rekeying of a specific element in that table, thus potentially requiring an atomic move of only that specific element to another hash chain. > I just finished reading the main parts of Josh's relativistic hashtable paper > [1] and it is very cool indeed. The whole wait-for-readers application for > hashtable expansion is so well thought. I am planning to go over more papers > and code and can certainly update this example with a read-mostly hashtable > example as well as you are suggesting. :-) > > [1] https://www.usenix.org/legacy/event/atc11/tech/final_files/Triplett.pdf Sounds very good! Thanx, Paul