> -----Original Message----- > From: Stephen Hemminger <step...@networkplumber.org> > Sent: Tuesday, November 5, 2019 19:21 > To: Bing Zhao <bi...@mellanox.com> > Cc: Ori Kam <or...@mellanox.com>; Slava Ovsiienko > <viachesl...@mellanox.com>; Raslan Darawsheh > <rasl...@mellanox.com>; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH] net/mlx5: introduce mlx5 hash list > > On Tue, 5 Nov 2019 17:28:00 +0200 > Bing Zhao <bi...@mellanox.com> wrote: > > > 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 <bi...@mellanox.com> > > There is already a plethora of hash routines in DPDK, why introduce a > chained hash list like Linux kernel?
We have multiple features in mlx5 requiring the run-time extendable storage. For example, application/user might not know how many Flows are going to come into play, it is not nice to allocate gigabytes at startup, assuming some fixed upper limit (10M+). Simple lists (used before) are too slow, update the DPDK Cuckoo to be scaled is not trivial and requires some time, so - simple hashed list seems to be acceptable palliative for now. With best regards, Slava