Hi, > -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Shy Shyman > Sent: Wednesday, July 15, 2020 1:51 PM > To: dev@dpdk.org > Cc: Slava Ovsiienko <viachesl...@mellanox.com>; sta...@dpdk.org > Subject: [dpdk-dev] [PATCH] net/mlx5: fix file path location of HW counters > > When debugging performance of a DPDK application the user may > need to view the different statistics of DPDK(for example out_of_buffer) > This can be enabled by using testpmd command 'show port xstats > <port_id>' for example. > > The current implementation assumes legacy mode in which the > counters > are at <ibdev_path>/<port_id>/hw_counters/<file_name>. > In switchdev mode the counters file is located right after the device > name, hence resides at <ibdev_path>/hw_counters. > > The fix tries to open the path in the second location after a failure > to open the file from the first location. > > Fixes: 9c0a9eed37f1 ("net/mlx5: switch to the names in the shared IB > context") > > Cc: sta...@dpdk.org > Cc: viachesl...@mellanox.com > > Signed-off-by: Shy Shyman <s...@mellanox.com> > --- > drivers/net/mlx5/linux/mlx5_os.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/mlx5/linux/mlx5_os.c > b/drivers/net/mlx5/linux/mlx5_os.c > index 2dc57b20ef..0edc96299c 100644 > --- a/drivers/net/mlx5/linux/mlx5_os.c > +++ b/drivers/net/mlx5/linux/mlx5_os.c > @@ -1948,10 +1948,20 @@ mlx5_os_read_dev_stat(struct mlx5_priv *priv, > const char *ctr_name, > > if (priv->sh) { > MKSTR(path, "%s/ports/%d/hw_counters/%s", > - priv->sh->ibdev_path, > - priv->dev_port, > - ctr_name); > + priv->sh->ibdev_path, > + priv->dev_port, > + ctr_name); > fd = open(path, O_RDONLY); > + /* > + * in switchdev the file location is not per port > + * but rather in <ibdev_path>/hw_counters/<file_name>. > + */ > + if (fd == -1) { > + MKSTR(path1, "%s/hw_counters/%s", > + priv->sh->ibdev_path, > + ctr_name); > + fd = open(path1, O_RDONLY); > + } > if (fd != -1) { > char buf[21] = {'\0'}; > ssize_t n = read(fd, buf, sizeof(buf)); > -- > 2.21.0
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh