net/mlx5: introduce hash list
authorBing Zhao <bingz@mellanox.com>
Wed, 6 Nov 2019 13:07:56 +0000 (15:07 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 11 Nov 2019 13:23:01 +0000 (14:23 +0100)
commit46287eacc1b16600af036c8b7d5258b99ab6acbe
tree99db01434a82bdc3f30f80135d889379b6e1fa35
parent1c69df45f8c6b727c3b6a78e13f81225c090dde2
net/mlx5: introduce hash list

Introduce simple hash list to the mlx5 utilities. User can define
its own data structure containing the mlx5_hlist_entry and create
the hash list table via the creation interface. Then the entry will
be inserted into the table and linked to the corresponding list
head. User should guarantee there is no collision of the key and
provide a callback function to handle all the remaining entries in
the table when destroying the hash list. User should define a proper
number of the list heads in the table in order to get a better
performance. The LSB of the 'key' is used to calculate the index of
the head in the list heads array.
This implementation is not multi-threads safe right now.

Signed-off-by: Bing Zhao <bingz@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
drivers/net/mlx5/Makefile
drivers/net/mlx5/meson.build
drivers/net/mlx5/mlx5_utils.c [new file with mode: 0644]
drivers/net/mlx5/mlx5_utils.h