RCU multiple entry lookup lockless

Omer Yamac omer.yamac at ceng.metu.edu.tr
Wed Feb 22 14:45:57 CET 2023


Hi All,

I have recently been working on RCU lib and Hash Lib. I activated RCU in 
the Hash library and want to observe one thing.

Here is the case:
I want to check RCU handles multiple lookups and frees just selected 
elements. I realize that reporting quiescent state releases all 
elements, and I cannot choose the unused ones.

Here is an example:

I filled the hash table with some data and then looked up the first five 
elements in the reader thread. Assume that three are used throughout the 
whole thread life, but I only need 2 of them in that little time.

If I delete these five elements in the writer, the receiver still points 
to the actual data. I wanted to add some elements and free two deleted 
elements that will not be used. So I report the quiescent state. Is 
there a way to hold these three elements (the reader still references 
that)? As I understood, I can't hold any reference to the data if I 
report the quiescent state in the reader.

Thank you

-- 
-A. Ömer Yamaç


More information about the users mailing list