net/mlx5: Add pages debugfs
Add pages debugfs to expose the following counters for debuggability: fw_pages_total - How many pages were given to FW and not returned yet. vfs_pages - For SRIOV, how many pages were given to FW for virtual functions usage. host_pf_pages - For ECPF, how many pages were given to FW for external hosts physical functions usage. Signed-off-by: Moshe Shemesh <moshe@nvidia.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
66771a1c72
commit
4e05cbf05c
3 changed files with 25 additions and 3 deletions
|
|
@ -212,6 +212,23 @@ void mlx5_cq_debugfs_cleanup(struct mlx5_core_dev *dev)
|
|||
debugfs_remove_recursive(dev->priv.dbg.cq_debugfs);
|
||||
}
|
||||
|
||||
void mlx5_pages_debugfs_init(struct mlx5_core_dev *dev)
|
||||
{
|
||||
struct dentry *pages;
|
||||
|
||||
dev->priv.dbg.pages_debugfs = debugfs_create_dir("pages", dev->priv.dbg.dbg_root);
|
||||
pages = dev->priv.dbg.pages_debugfs;
|
||||
|
||||
debugfs_create_u32("fw_pages_total", 0400, pages, &dev->priv.fw_pages);
|
||||
debugfs_create_u32("fw_pages_vfs", 0400, pages, &dev->priv.vfs_pages);
|
||||
debugfs_create_u32("fw_pages_host_pf", 0400, pages, &dev->priv.host_pf_pages);
|
||||
}
|
||||
|
||||
void mlx5_pages_debugfs_cleanup(struct mlx5_core_dev *dev)
|
||||
{
|
||||
debugfs_remove_recursive(dev->priv.dbg.pages_debugfs);
|
||||
}
|
||||
|
||||
static u64 qp_read_field(struct mlx5_core_dev *dev, struct mlx5_core_qp *qp,
|
||||
int index, int *is_str)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -714,12 +714,14 @@ int mlx5_pagealloc_init(struct mlx5_core_dev *dev)
|
|||
return -ENOMEM;
|
||||
|
||||
xa_init(&dev->priv.page_root_xa);
|
||||
mlx5_pages_debugfs_init(dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void mlx5_pagealloc_cleanup(struct mlx5_core_dev *dev)
|
||||
{
|
||||
mlx5_pages_debugfs_cleanup(dev);
|
||||
xa_destroy(&dev->priv.page_root_xa);
|
||||
destroy_workqueue(dev->priv.pg_wq);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -557,6 +557,7 @@ struct mlx5_debugfs_entries {
|
|||
struct dentry *eq_debugfs;
|
||||
struct dentry *cq_debugfs;
|
||||
struct dentry *cmdif_debugfs;
|
||||
struct dentry *pages_debugfs;
|
||||
};
|
||||
|
||||
struct mlx5_ft_pool;
|
||||
|
|
@ -569,11 +570,11 @@ struct mlx5_priv {
|
|||
struct mlx5_nb pg_nb;
|
||||
struct workqueue_struct *pg_wq;
|
||||
struct xarray page_root_xa;
|
||||
int fw_pages;
|
||||
u32 fw_pages;
|
||||
atomic_t reg_pages;
|
||||
struct list_head free_list;
|
||||
int vfs_pages;
|
||||
int host_pf_pages;
|
||||
u32 vfs_pages;
|
||||
u32 host_pf_pages;
|
||||
|
||||
struct mlx5_core_health health;
|
||||
struct list_head traps;
|
||||
|
|
@ -1026,6 +1027,8 @@ int mlx5_pagealloc_init(struct mlx5_core_dev *dev);
|
|||
void mlx5_pagealloc_cleanup(struct mlx5_core_dev *dev);
|
||||
void mlx5_pagealloc_start(struct mlx5_core_dev *dev);
|
||||
void mlx5_pagealloc_stop(struct mlx5_core_dev *dev);
|
||||
void mlx5_pages_debugfs_init(struct mlx5_core_dev *dev);
|
||||
void mlx5_pages_debugfs_cleanup(struct mlx5_core_dev *dev);
|
||||
void mlx5_core_req_pages_handler(struct mlx5_core_dev *dev, u16 func_id,
|
||||
s32 npages, bool ec_function);
|
||||
int mlx5_satisfy_startup_pages(struct mlx5_core_dev *dev, int boot);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue