net/mlx5: Expose vhca_id to debugfs
authorEli Cohen <elic@nvidia.com>
Wed, 21 Sep 2022 10:33:29 +0000 (13:33 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Sat, 12 Nov 2022 10:20:18 +0000 (02:20 -0800)
hca_id is an identifier of an mlx5_core instance within the hardware.
This identifier may be required for troubleshooting.

Expose it to debugfs.

Example:

$ cat /sys/kernel/debug/mlx5/mlx5_core.sf.2/vhca_id
0x12

Signed-off-by: Eli Cohen <elic@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/main.c

index 9e6da51..6d7c102 100644 (file)
@@ -1588,6 +1588,16 @@ err:
        return -ENOMEM;
 }
 
+static int vhca_id_show(struct seq_file *file, void *priv)
+{
+       struct mlx5_core_dev *dev = file->private;
+
+       seq_printf(file, "0x%x\n", MLX5_CAP_GEN(dev, vhca_id));
+       return 0;
+}
+
+DEFINE_SHOW_ATTRIBUTE(vhca_id);
+
 int mlx5_mdev_init(struct mlx5_core_dev *dev, int profile_idx)
 {
        struct mlx5_priv *priv = &dev->priv;
@@ -1612,6 +1622,7 @@ int mlx5_mdev_init(struct mlx5_core_dev *dev, int profile_idx)
        priv->numa_node = dev_to_node(mlx5_core_dma_dev(dev));
        priv->dbg.dbg_root = debugfs_create_dir(dev_name(dev->device),
                                                mlx5_debugfs_root);
+       debugfs_create_file("vhca_id", 0400, priv->dbg.dbg_root, dev, &vhca_id_fops);
        INIT_LIST_HEAD(&priv->traps);
 
        err = mlx5_tout_init(dev);