net/mlx5: add debugfs stats for doorbell dma pools

Add a debugfs file exposing per-node DMA pool usage for doorbell
allocations.

  # cat /sys/kernel/debug/mlx5/<dev>/db_dma_pools
  node  block_size  used_blocks  allocated_blocks
     0          64            0                 0
     1          64            0                 0

Signed-off-by: Nimrod Oren <noren@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20260803132520.2891860-4-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Nimrod Oren
2026-08-03 16:25:20 +03:00
committed by Jakub Kicinski
parent c29235677f
commit b7cfcc9d3d
2 changed files with 28 additions and 0 deletions

View File

@@ -437,11 +437,34 @@ void mlx5_frag_buf_free(struct mlx5_core_dev *dev, struct mlx5_frag_buf *buf)
}
EXPORT_SYMBOL_GPL(mlx5_frag_buf_free);
static int mlx5_db_dma_pools_debugfs_show(struct seq_file *file, void *priv)
{
struct mlx5_core_dev *dev = file->private;
int node;
mlx5_dma_pools_debugfs_print_header(file);
for_each_node_state(node, N_POSSIBLE) {
struct mlx5_dma_pool *pool = dev->priv.db_node_pools[node];
if (!pool)
continue;
mlx5_dma_pool_debugfs_stats_print(file, pool);
}
return 0;
}
DEFINE_SHOW_ATTRIBUTE(mlx5_db_dma_pools_debugfs);
void mlx5_db_pools_cleanup(struct mlx5_core_dev *dev)
{
struct mlx5_priv *priv = &dev->priv;
int node;
debugfs_remove(priv->dbg.db_dma_pools_debugfs);
priv->dbg.db_dma_pools_debugfs = NULL;
for_each_node_state(node, N_POSSIBLE)
if (priv->db_node_pools[node])
mlx5_dma_pool_destroy(priv->db_node_pools[node]);
@@ -471,6 +494,10 @@ int mlx5_db_pools_init(struct mlx5_core_dev *dev)
priv->db_node_pools[node] = pool;
}
priv->dbg.db_dma_pools_debugfs =
debugfs_create_file("db_dma_pools", 0444, priv->dbg.dbg_root,
dev, &mlx5_db_dma_pools_debugfs_fops);
return 0;
}

View File

@@ -548,6 +548,7 @@ struct mlx5_debugfs_entries {
struct dentry *cq_debugfs;
struct dentry *cmdif_debugfs;
struct dentry *frag_buf_dma_pools_debugfs;
struct dentry *db_dma_pools_debugfs;
struct dentry *pages_debugfs;
struct dentry *lag_debugfs;
};