For the case which data is linked with sequence increased index, the array table will be more efficient than hash table once need to search one data entry in large numbers of entries. Since the traditional hash tables has fixed table size, when huge numbers of data saved to the hash table, it also comes lots of hash conflict. But simple array table also has fixed size, allocates all the needed memory at once will waste lots of memory. For the case don't know the exactly number of entries will be impossible to allocate the array. Then the multiple level table helps to balance the two disadvantages. Allocate a global high level table with sub table entries at first, the global table contains the sub table entries, and the sub table will be allocated only once the corresponding index entry need to be saved. e.g. for up to 32-bits index, three level table with 10-10-12 splitting, with sequence increased index, the memory grows with every 4K entries. The currently implementation introduces 10-10-12 32-bits splitting Three-Level table to help the cases which have millions of entries to save. The index entries can be addressed directly by the index, no search will be needed. Signed-off-by: Suanming Mou <suanmingm@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
DPDK is a set of libraries and drivers for fast packet processing. It supports many processor architectures and both FreeBSD and Linux. The DPDK uses the Open Source BSD-3-Clause license for the core libraries and drivers. The kernel components are GPL-2.0 licensed. Please check the doc directory for release notes, API documentation, and sample application information. For questions and usage discussions, subscribe to: users@dpdk.org Report bugs and issues to the development mailing list: dev@dpdk.org
Description
Languages
C
99.1%
Meson
0.5%
Python
0.2%
Shell
0.1%