>-----Original Message----- >From: Dharmik Thakkar [mailto:[email protected]] >Sent: Monday, March 25, 2019 2:09 PM >To: Wang, Yipeng1 <[email protected]>; Gobriel, Sameh ><[email protected]>; Richardson, Bruce ><[email protected]>; De Lara Guarch, Pablo ><[email protected]>; Mcnamara, John ><[email protected]>; Kovacevic, Marko <[email protected]> >Cc: [email protected]; Dharmik Thakkar <[email protected]> >Subject: [PATCH v2 1/2] hash: add lock free support for extendable bucket > >This patch enables lock-free read-write concurrency support for >extendable bucket feature. > >Suggested-by: Honnappa Nagarahalli <[email protected]> >Signed-off-by: Dharmik Thakkar <[email protected]> >Reviewed-by: Ruifeng Wang <[email protected]> >Reviewed-by: Gavin Hu <[email protected]> >Reviewed-by: Honnappa Nagarahalli <[email protected]> >@@ -1072,7 +1082,15 @@ __rte_hash_add_key_with_hash(const struct rte_hash *h, >const void *key, > bkt_id = (uint32_t)((uintptr_t)ext_bkt_id) - 1; > /* Use the first location of the new bucket */ > (h->buckets_ext[bkt_id]).sig_current[0] = short_sig; >- (h->buckets_ext[bkt_id]).key_idx[0] = new_idx; >+ /* Key can be of arbitrary length, so it is >+ * not possible to store it atomically. >+ * Hence the new key element's memory stores >+ * (key as well as data) should be complete >+ * before it is referenced. >+ */ [Wang, Yipeng] Minor issue: does this comment need to be fixed too? If so you could include my ack for next version.
Acked-by: Yipeng Wang <[email protected]> Thanks Yipeng!

