net/fm10k: add imissed stats
Checks
Commit Message
Add support of imissed and q_errors statistics, reported by PCIE_QPRDC
register (see datasheet, section 11.27.2.60), which exposes the number
of receive packets dropped for a queue.
Signed-off-by: Julien Meunier <julien.meunier@nokia.com>
---
drivers/net/fm10k/fm10k_ethdev.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Comments
Hi,
-----Original Message-----
From: Julien Meunier [mailto:julien.meunier@nokia.com]
Sent: Monday, September 10, 2018 11:51 PM
To: Zhang, Qi Z <qi.z.zhang@intel.com>; Wang, Xiao W <xiao.w.wang@intel.com>
Cc: dev@dpdk.org
Subject: [PATCH] net/fm10k: add imissed stats
Add support of imissed and q_errors statistics, reported by PCIE_QPRDC
register (see datasheet, section 11.27.2.60), which exposes the number
of receive packets dropped for a queue.
Signed-off-by: Julien Meunier <julien.meunier@nokia.com>
---
drivers/net/fm10k/fm10k_ethdev.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index 541a49b..a9af6c2 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -1325,7 +1325,7 @@ fm10k_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
static int
fm10k_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
{
- uint64_t ipackets, opackets, ibytes, obytes;
+ uint64_t ipackets, opackets, ibytes, obytes, imissed;
struct fm10k_hw *hw =
FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
struct fm10k_hw_stats *hw_stats =
@@ -1336,22 +1336,25 @@ fm10k_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
fm10k_update_hw_stats(hw, hw_stats);
- ipackets = opackets = ibytes = obytes = 0;
+ ipackets = opackets = ibytes = obytes = imissed = 0;
for (i = 0; (i < RTE_ETHDEV_QUEUE_STAT_CNTRS) &&
(i < hw->mac.max_queues); ++i) {
stats->q_ipackets[i] = hw_stats->q[i].rx_packets.count;
stats->q_opackets[i] = hw_stats->q[i].tx_packets.count;
stats->q_ibytes[i] = hw_stats->q[i].rx_bytes.count;
stats->q_obytes[i] = hw_stats->q[i].tx_bytes.count;
+ stats->q_errors[i] = hw_stats->q[i].rx_drops.count;
ipackets += stats->q_ipackets[i];
opackets += stats->q_opackets[i];
ibytes += stats->q_ibytes[i];
obytes += stats->q_obytes[i];
+ imissed += stats->q_errors[i];
}
stats->ipackets = ipackets;
stats->opackets = opackets;
stats->ibytes = ibytes;
stats->obytes = obytes;
+ stats->imissed = imissed;
return 0;
}
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
Hi,
Please, do not merge this patch. I need to check and readapt this patch. A version 2 will be sent later.
Thanks,
--
Julien Meunier
> -----Original Message-----
> From: Wang, Xiao W <xiao.w.wang@intel.com>
> Sent: Tuesday, September 11, 2018 3:52 AM
> To: Meunier, Julien (Nokia - FR/Paris-Saclay) <julien.meunier@nokia.com>;
> Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH] net/fm10k: add imissed stats
>
> Hi,
>
> -----Original Message-----
> From: Julien Meunier [mailto:julien.meunier@nokia.com]
> Sent: Monday, September 10, 2018 11:51 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Wang, Xiao W
> <xiao.w.wang@intel.com>
> Cc: dev@dpdk.org
> Subject: [PATCH] net/fm10k: add imissed stats
>
> Add support of imissed and q_errors statistics, reported by PCIE_QPRDC
> register (see datasheet, section 11.27.2.60), which exposes the number of
> receive packets dropped for a queue.
>
> Signed-off-by: Julien Meunier <julien.meunier@nokia.com>
> ---
> drivers/net/fm10k/fm10k_ethdev.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/fm10k/fm10k_ethdev.c
> b/drivers/net/fm10k/fm10k_ethdev.c
> index 541a49b..a9af6c2 100644
> --- a/drivers/net/fm10k/fm10k_ethdev.c
> +++ b/drivers/net/fm10k/fm10k_ethdev.c
> @@ -1325,7 +1325,7 @@ fm10k_xstats_get(struct rte_eth_dev *dev, struct
> rte_eth_xstat *xstats, static int fm10k_stats_get(struct rte_eth_dev *dev,
> struct rte_eth_stats *stats) {
> - uint64_t ipackets, opackets, ibytes, obytes;
> + uint64_t ipackets, opackets, ibytes, obytes, imissed;
> struct fm10k_hw *hw =
> FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> struct fm10k_hw_stats *hw_stats =
> @@ -1336,22 +1336,25 @@ fm10k_stats_get(struct rte_eth_dev *dev, struct
> rte_eth_stats *stats)
>
> fm10k_update_hw_stats(hw, hw_stats);
>
> - ipackets = opackets = ibytes = obytes = 0;
> + ipackets = opackets = ibytes = obytes = imissed = 0;
> for (i = 0; (i < RTE_ETHDEV_QUEUE_STAT_CNTRS) &&
> (i < hw->mac.max_queues); ++i) {
> stats->q_ipackets[i] = hw_stats->q[i].rx_packets.count;
> stats->q_opackets[i] = hw_stats->q[i].tx_packets.count;
> stats->q_ibytes[i] = hw_stats->q[i].rx_bytes.count;
> stats->q_obytes[i] = hw_stats->q[i].tx_bytes.count;
> + stats->q_errors[i] = hw_stats->q[i].rx_drops.count;
> ipackets += stats->q_ipackets[i];
> opackets += stats->q_opackets[i];
> ibytes += stats->q_ibytes[i];
> obytes += stats->q_obytes[i];
> + imissed += stats->q_errors[i];
> }
> stats->ipackets = ipackets;
> stats->opackets = opackets;
> stats->ibytes = ibytes;
> stats->obytes = obytes;
> + stats->imissed = imissed;
> return 0;
> }
>
> Acked-by: Xiao Wang <xiao.w.wang@intel.com>
>
>
> --
> 2.10.2
Sorry the delay. False alert, I thought that imissed was counted also in ipackets, but it's not the case :)
So you can integrate this patch.
Thanks in advance !
--
Julien Meunier
> -----Original Message-----
> From: Meunier, Julien (Nokia - FR/Paris-Saclay)
> Sent: Tuesday, September 11, 2018 10:22 AM
> To: Wang, Xiao W <xiao.w.wang@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH] net/fm10k: add imissed stats
>
> Hi,
>
> Please, do not merge this patch. I need to check and readapt this patch. A
> version 2 will be sent later.
>
> Thanks,
>
> --
> Julien Meunier
>
> > -----Original Message-----
> > From: Wang, Xiao W <xiao.w.wang@intel.com>
> > Sent: Tuesday, September 11, 2018 3:52 AM
> > To: Meunier, Julien (Nokia - FR/Paris-Saclay)
> > <julien.meunier@nokia.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> > Cc: dev@dpdk.org
> > Subject: RE: [PATCH] net/fm10k: add imissed stats
> >
> > Hi,
> >
> > -----Original Message-----
> > From: Julien Meunier [mailto:julien.meunier@nokia.com]
> > Sent: Monday, September 10, 2018 11:51 PM
> > To: Zhang, Qi Z <qi.z.zhang@intel.com>; Wang, Xiao W
> > <xiao.w.wang@intel.com>
> > Cc: dev@dpdk.org
> > Subject: [PATCH] net/fm10k: add imissed stats
> >
> > Add support of imissed and q_errors statistics, reported by PCIE_QPRDC
> > register (see datasheet, section 11.27.2.60), which exposes the number
> > of receive packets dropped for a queue.
> >
> > Signed-off-by: Julien Meunier <julien.meunier@nokia.com>
> > ---
> > drivers/net/fm10k/fm10k_ethdev.c | 7 +++++--
> > 1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/fm10k/fm10k_ethdev.c
> > b/drivers/net/fm10k/fm10k_ethdev.c
> > index 541a49b..a9af6c2 100644
> > --- a/drivers/net/fm10k/fm10k_ethdev.c
> > +++ b/drivers/net/fm10k/fm10k_ethdev.c
> > @@ -1325,7 +1325,7 @@ fm10k_xstats_get(struct rte_eth_dev *dev, struct
> > rte_eth_xstat *xstats, static int fm10k_stats_get(struct rte_eth_dev
> > *dev, struct rte_eth_stats *stats) {
> > - uint64_t ipackets, opackets, ibytes, obytes;
> > + uint64_t ipackets, opackets, ibytes, obytes, imissed;
> > struct fm10k_hw *hw =
> > FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> > struct fm10k_hw_stats *hw_stats =
> > @@ -1336,22 +1336,25 @@ fm10k_stats_get(struct rte_eth_dev *dev,
> > struct rte_eth_stats *stats)
> >
> > fm10k_update_hw_stats(hw, hw_stats);
> >
> > - ipackets = opackets = ibytes = obytes = 0;
> > + ipackets = opackets = ibytes = obytes = imissed = 0;
> > for (i = 0; (i < RTE_ETHDEV_QUEUE_STAT_CNTRS) &&
> > (i < hw->mac.max_queues); ++i) {
> > stats->q_ipackets[i] = hw_stats->q[i].rx_packets.count;
> > stats->q_opackets[i] = hw_stats->q[i].tx_packets.count;
> > stats->q_ibytes[i] = hw_stats->q[i].rx_bytes.count;
> > stats->q_obytes[i] = hw_stats->q[i].tx_bytes.count;
> > + stats->q_errors[i] = hw_stats->q[i].rx_drops.count;
> > ipackets += stats->q_ipackets[i];
> > opackets += stats->q_opackets[i];
> > ibytes += stats->q_ibytes[i];
> > obytes += stats->q_obytes[i];
> > + imissed += stats->q_errors[i];
> > }
> > stats->ipackets = ipackets;
> > stats->opackets = opackets;
> > stats->ibytes = ibytes;
> > stats->obytes = obytes;
> > + stats->imissed = imissed;
> > return 0;
> > }
> >
> > Acked-by: Xiao Wang <xiao.w.wang@intel.com>
> >
> >
> > --
> > 2.10.2
> -----Original Message-----
> From: Wang, Xiao W
> Sent: Tuesday, September 11, 2018 9:52 AM
> To: Julien Meunier <julien.meunier@nokia.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH] net/fm10k: add imissed stats
>
> Hi,
>
> -----Original Message-----
> From: Julien Meunier [mailto:julien.meunier@nokia.com]
> Sent: Monday, September 10, 2018 11:51 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Wang, Xiao W
> <xiao.w.wang@intel.com>
> Cc: dev@dpdk.org
> Subject: [PATCH] net/fm10k: add imissed stats
>
> Add support of imissed and q_errors statistics, reported by PCIE_QPRDC
> register (see datasheet, section 11.27.2.60), which exposes the number of
> receive packets dropped for a queue.
>
> Signed-off-by: Julien Meunier <julien.meunier@nokia.com>
> ---
> drivers/net/fm10k/fm10k_ethdev.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/fm10k/fm10k_ethdev.c
> b/drivers/net/fm10k/fm10k_ethdev.c
> index 541a49b..a9af6c2 100644
> --- a/drivers/net/fm10k/fm10k_ethdev.c
> +++ b/drivers/net/fm10k/fm10k_ethdev.c
> @@ -1325,7 +1325,7 @@ fm10k_xstats_get(struct rte_eth_dev *dev, struct
> rte_eth_xstat *xstats, static int fm10k_stats_get(struct rte_eth_dev *dev,
> struct rte_eth_stats *stats) {
> - uint64_t ipackets, opackets, ibytes, obytes;
> + uint64_t ipackets, opackets, ibytes, obytes, imissed;
> struct fm10k_hw *hw =
> FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> struct fm10k_hw_stats *hw_stats =
> @@ -1336,22 +1336,25 @@ fm10k_stats_get(struct rte_eth_dev *dev, struct
> rte_eth_stats *stats)
>
> fm10k_update_hw_stats(hw, hw_stats);
>
> - ipackets = opackets = ibytes = obytes = 0;
> + ipackets = opackets = ibytes = obytes = imissed = 0;
> for (i = 0; (i < RTE_ETHDEV_QUEUE_STAT_CNTRS) &&
> (i < hw->mac.max_queues); ++i) {
> stats->q_ipackets[i] = hw_stats->q[i].rx_packets.count;
> stats->q_opackets[i] = hw_stats->q[i].tx_packets.count;
> stats->q_ibytes[i] = hw_stats->q[i].rx_bytes.count;
> stats->q_obytes[i] = hw_stats->q[i].tx_bytes.count;
> + stats->q_errors[i] = hw_stats->q[i].rx_drops.count;
> ipackets += stats->q_ipackets[i];
> opackets += stats->q_opackets[i];
> ibytes += stats->q_ibytes[i];
> obytes += stats->q_obytes[i];
> + imissed += stats->q_errors[i];
> }
> stats->ipackets = ipackets;
> stats->opackets = opackets;
> stats->ibytes = ibytes;
> stats->obytes = obytes;
> + stats->imissed = imissed;
> return 0;
> }
>
> Acked-by: Xiao Wang <xiao.w.wang@intel.com>
Applied to dpdk-next-net-intel.
Thanks
Qi
>
>
> --
> 2.10.2
@@ -1325,7 +1325,7 @@ fm10k_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
static int
fm10k_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
{
- uint64_t ipackets, opackets, ibytes, obytes;
+ uint64_t ipackets, opackets, ibytes, obytes, imissed;
struct fm10k_hw *hw =
FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
struct fm10k_hw_stats *hw_stats =
@@ -1336,22 +1336,25 @@ fm10k_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
fm10k_update_hw_stats(hw, hw_stats);
- ipackets = opackets = ibytes = obytes = 0;
+ ipackets = opackets = ibytes = obytes = imissed = 0;
for (i = 0; (i < RTE_ETHDEV_QUEUE_STAT_CNTRS) &&
(i < hw->mac.max_queues); ++i) {
stats->q_ipackets[i] = hw_stats->q[i].rx_packets.count;
stats->q_opackets[i] = hw_stats->q[i].tx_packets.count;
stats->q_ibytes[i] = hw_stats->q[i].rx_bytes.count;
stats->q_obytes[i] = hw_stats->q[i].tx_bytes.count;
+ stats->q_errors[i] = hw_stats->q[i].rx_drops.count;
ipackets += stats->q_ipackets[i];
opackets += stats->q_opackets[i];
ibytes += stats->q_ibytes[i];
obytes += stats->q_obytes[i];
+ imissed += stats->q_errors[i];
}
stats->ipackets = ipackets;
stats->opackets = opackets;
stats->ibytes = ibytes;
stats->obytes = obytes;
+ stats->imissed = imissed;
return 0;
}