[dpdk-dev] [PATCH v3] rte_hash: add scalable multi-writer insertion w/ Intel TSX

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Fri Jun 17 00:22:32 CEST 2016



> -----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>


More information about the dev mailing list