Hi, Honnappa,

Thanks for the comment.

RCU can handle one of the currency issue (key deletion while lookup) that has 
been discussed before, but we think it is not easy for RCU-alone to
protect reader from cuckoo path displacement. Also, RCU solution requires user 
interaction.

We agree that the current rwlock does not support preemptable writer. But a 
more advanced rwlock with priority could be
implemented in the future into the rwlock library.

Thanks
Yipeng

>-----Original Message-----
>From: Honnappa Nagarahalli [mailto:[email protected]]
>Sent: Tuesday, July 10, 2018 11:00 AM
>To: Wang, Yipeng1 <[email protected]>; De Lara Guarch, Pablo 
><[email protected]>
>Cc: [email protected]; Richardson, Bruce <[email protected]>; 
>[email protected]; [email protected]; nd
><[email protected]>
>Subject: RE: [PATCH v4 0/8] Add read-write concurrency to rte_hash library
>
>Hi Yipeng/Pablo,
>       Apologies for my delayed comments
>
>-----Original Message-----
>From: Yipeng Wang <[email protected]>
>Sent: Monday, July 9, 2018 5:45 AM
>To: [email protected]
>Cc: [email protected]; [email protected]; [email protected]; Honnappa 
>Nagarahalli <[email protected]>;
>[email protected]; [email protected]
>Subject: [PATCH v4 0/8] Add read-write concurrency to rte_hash library
>
>This patch set adds the read-write concurrency support in rte_hash.
>A new flag value is added to indicate if read-write concurrency is needed 
>during creation time. Test cases are implemented to do
>functional and performance tests.
>
>The new concurrency model is based on rte_rwlock. When Intel TSX is available 
>and the users indicate to use it, the TM version of the
>rte_rwlock will be called. Both multi-writer and read-write concurrency are 
>protected by the rte_rwlock instead of the x86 specific
>RTM instructions, so the x86 specific header rte_cuckoo_hash_x86.h is removed 
>and the code is infused into the main .c file.
>
>IMO, at a high-level, there are two use cases for the rte_hash library:
>1) Writers are on control plane and data plane are readers
>2) Writers and readers are on data plane
>
>This distinction is required as in the case of 1) writers are pre-emptible. If 
>I consider platforms without TSX (I do not know how Intel
>TSX works), the rte_rwlock implementation is blocking. A writer on the control 
>plane can take the lock and get pre-empted. Since
>rte_rwlock is used for read-write concurrency, it will block the readers (on 
>the data plane) for an extended duration. I think, support
>for RCU is required to solve this issue.
>
>

Reply via email to