> -----Original Message----- > From: Shen, Wei1 > Sent: Thursday, June 16, 2016 11:14 PM > To: dev at dpdk.org > Cc: De Lara Guarch, Pablo; Ananyev, Konstantin; > stephen at networkplumber.org; Tai, Charlie; Maciocco, Christian; Gobriel, > Sameh; Shen, Wei1 > Subject: [PATCH v3] rte_hash: add scalable multi-writer insertion w/ Intel TSX > > This patch introduced scalable multi-writer Cuckoo Hash insertion > based on a split Cuckoo Search and Move operation using Intel > TSX. It can do scalable hash insertion with 22 cores with little > performance loss and negligible TSX abortion rate. > > * Added an extra rte_hash flag definition to switch default single writer > Cuckoo Hash behavior to multiwriter. > - If HTM is available, it would use hardware feature for concurrency. > - If HTM is not available, it would fall back to spinlock. > > * Created a rte_cuckoo_hash_x86.h file to hold all x86-arch related > cuckoo_hash functions. And rte_cuckoo_hash.c uses compile time flag to > select x86 file or other platform-specific implementations. While HTM check > is still done at runtime (same idea with > RTE_HASH_EXTRA_FLAGS_TRANS_MEM_SUPPORT) > > * Moved rte_hash private struct definitions to rte_cuckoo_hash.h, to allow > rte_cuckoo_hash_x86.h or future platform dependent functions to include. > > * Following new functions are created for consistent names when new > platform > TM support are added. > - rte_hash_cuckoo_move_insert_mw_tm: do insertion with bucket > movement. > - rte_hash_cuckoo_insert_mw_tm: do insertion without bucket movement. > > * One extra multi-writer test case is added. > > Signed-off-by: Shen Wei <wei1.shen at intel.com> > Signed-off-by: Sameh Gobriel <sameh.gobriel at intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>