net/mlx5: add indexed pool local cache
authorSuanming Mou <suanmingm@nvidia.com>
Tue, 13 Jul 2021 08:44:36 +0000 (11:44 +0300)
committerRaslan Darawsheh <rasland@nvidia.com>
Thu, 15 Jul 2021 13:19:07 +0000 (15:19 +0200)
commitd15c0946beeafb62c7620214667dace2c19f528c
tree0b7c0d97765f3d13c213dc8df247cd68eb12f190
parent58ecd3ad0bc8e509b915c48d6047f4da7ff2c298
net/mlx5: add indexed pool local cache

For object which wants efficient index allocate and free, local
cache will be very helpful.

Two level cache is introduced to allocate and free the index more
efficient. One as local and the other as global. The global cache
is able to save all the allocated index. That means all the allocated
index will not be freed. Once the local cache is full, the extra
index will be flushed to the global cache. Once local cache is empty,
first try to fetch more index from global, if global is still empty,
allocate new trunk with more index.

This commit adds new local cache mechanism for indexed pool.

Signed-off-by: Suanming Mou <suanmingm@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
drivers/net/mlx5/mlx5_utils.c
drivers/net/mlx5/mlx5_utils.h