Skip to content

Commit

Permalink
net/mlx5: DR, Add memory statistics for domain object
Browse files Browse the repository at this point in the history
Add counters for number of buddies that are currently in use per domain
per buddy type (STE, MODIFY-HEADER, MODIFY-PATTERN).

Signed-off-by: Erez Shitrit <[email protected]>
Signed-off-by: Yevgeny Kliteynik <[email protected]>
Reviewed-by: Alex Vesker <[email protected]>
Signed-off-by: Saeed Mahameed <[email protected]>
  • Loading branch information
kliteyn authored and Saeed Mahameed committed Apr 21, 2023
1 parent cedb666 commit 57295e0
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
7 changes: 5 additions & 2 deletions drivers/net/ethernet/mellanox/mlx5/core/steering/dr_dbg.c
Original file line number Diff line number Diff line change
Expand Up @@ -633,15 +633,18 @@ dr_dump_domain(struct seq_file *file, struct mlx5dr_domain *dmn)
u64 domain_id = DR_DBG_PTR_TO_ID(dmn);
int ret;

seq_printf(file, "%d,0x%llx,%d,0%x,%d,%u.%u.%u,%s,%d\n",
seq_printf(file, "%d,0x%llx,%d,0%x,%d,%u.%u.%u,%s,%d,%u,%u,%u\n",
DR_DUMP_REC_TYPE_DOMAIN,
domain_id, dmn->type, dmn->info.caps.gvmi,
dmn->info.supp_sw_steering,
/* package version */
LINUX_VERSION_MAJOR, LINUX_VERSION_PATCHLEVEL,
LINUX_VERSION_SUBLEVEL,
pci_name(dmn->mdev->pdev),
0); /* domain flags */
0, /* domain flags */
dmn->num_buddies[DR_ICM_TYPE_STE],
dmn->num_buddies[DR_ICM_TYPE_MODIFY_ACTION],
dmn->num_buddies[DR_ICM_TYPE_MODIFY_HDR_PTRN]);

ret = dr_dump_domain_info(file, &dmn->info, domain_id);
if (ret < 0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,8 @@ static int dr_icm_buddy_create(struct mlx5dr_icm_pool *pool)
/* add it to the -start- of the list in order to search in it first */
list_add(&buddy->list_node, &pool->buddy_mem_list);

pool->dmn->num_buddies[pool->icm_type]++;

return 0;

err_cleanup_buddy:
Expand All @@ -301,13 +303,17 @@ static int dr_icm_buddy_create(struct mlx5dr_icm_pool *pool)

static void dr_icm_buddy_destroy(struct mlx5dr_icm_buddy_mem *buddy)
{
enum mlx5dr_icm_type icm_type = buddy->pool->icm_type;

dr_icm_pool_mr_destroy(buddy->icm_mr);

mlx5dr_buddy_cleanup(buddy);

if (buddy->pool->icm_type == DR_ICM_TYPE_STE)
if (icm_type == DR_ICM_TYPE_STE)
dr_icm_buddy_cleanup_ste_cache(buddy);

buddy->pool->dmn->num_buddies[icm_type]--;

kvfree(buddy);
}

Expand Down
3 changes: 3 additions & 0 deletions drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ enum mlx5dr_icm_type {
DR_ICM_TYPE_STE,
DR_ICM_TYPE_MODIFY_ACTION,
DR_ICM_TYPE_MODIFY_HDR_PTRN,
DR_ICM_TYPE_MAX,
};

static inline enum mlx5dr_icm_chunk_size
Expand Down Expand Up @@ -955,6 +956,8 @@ struct mlx5dr_domain {
struct list_head dbg_tbl_list;
struct mlx5dr_dbg_dump_info dump_info;
struct xarray definers_xa;
/* memory management statistics */
u32 num_buddies[DR_ICM_TYPE_MAX];
};

struct mlx5dr_table_rx_tx {
Expand Down

0 comments on commit 57295e0

Please sign in to comment.