Skip to content

Commit

Permalink
net/mlx5: DR, ICM pool memory allocator
Browse files Browse the repository at this point in the history
ICM device memory is used for writing steering rules (STEs) to the NIC.
An ICM memory pool allocator was implemented to manage the required
memory. The pool consists of buckets, a bucket per chunk size.
Once a bucket is empty we will cut a row of memory from the latest
allocated MR, if the MR size is not sufficient we will allocate a new MR.
HW design requires that chunks memory address should be aligned to the
chunk size, this is the reason for managing the MR with row size that
insures memory alignment.
Current design is greedy in memory but provides quick allocation times
in steady state.

Signed-off-by: Alex Vesker <valex@mellanox.com>
Reviewed-by: Erez Shitrit <erezsh@mellanox.com>
Reviewed-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
  • Loading branch information
alexvesker authored and Saeed Mahameed committed Sep 3, 2019
1 parent 1d91864 commit 29cf8fe
Showing 1 changed file with 570 additions and 0 deletions.

0 comments on commit 29cf8fe

Please sign in to comment.