From: Nimrod Oren Add a debugfs file exposing per-node DMA pool usage for doorbell allocations. # cat /sys/kernel/debug/mlx5//db_dma_pools node block_size used_blocks allocated_blocks 0 64 0 0 1 64 0 0 Signed-off-by: Nimrod Oren Signed-off-by: Tariq Toukan --- .../net/ethernet/mellanox/mlx5/core/alloc.c | 30 +++++++++++++++++++ include/linux/mlx5/driver.h | 1 + 2 files changed, 31 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c index 3975c726d35c..60ff413999f7 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c @@ -437,11 +437,37 @@ 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); + + if (!dev->priv.db_node_pools) + return 0; + + 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 +497,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; } diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 2c56bb1d676d..83d0a83bbfbc 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -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; }; -- 2.44.0