git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/ice/base: support priority configuration of exact node
[dpdk.git]
/
drivers
/
net
/
mlx5
/
mlx5_stats.c
diff --git
a/drivers/net/mlx5/mlx5_stats.c
b/drivers/net/mlx5/mlx5_stats.c
index
82d4d4a
..
f64fa35
100644
(file)
--- a/
drivers/net/mlx5/mlx5_stats.c
+++ b/
drivers/net/mlx5/mlx5_stats.c
@@
-8,7
+8,7
@@
#include <stdio.h>
#include <unistd.h>
#include <stdio.h>
#include <unistd.h>
-#include <
rte_
ethdev_driver.h>
+#include <ethdev_driver.h>
#include <rte_common.h>
#include <rte_malloc.h>
#include <rte_common.h>
#include <rte_malloc.h>
@@
-16,7
+16,8
@@
#include "mlx5_defs.h"
#include "mlx5.h"
#include "mlx5_defs.h"
#include "mlx5.h"
-#include "mlx5_rxtx.h"
+#include "mlx5_rx.h"
+#include "mlx5_tx.h"
#include "mlx5_malloc.h"
/**
#include "mlx5_malloc.h"
/**
@@
-106,25
+107,30
@@
mlx5_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
memset(&tmp, 0, sizeof(tmp));
/* Add software counters. */
for (i = 0; (i != priv->rxqs_n); ++i) {
memset(&tmp, 0, sizeof(tmp));
/* Add software counters. */
for (i = 0; (i != priv->rxqs_n); ++i) {
- struct mlx5_rxq_data *rxq =
(*priv->rxqs)[i]
;
+ struct mlx5_rxq_data *rxq =
mlx5_rxq_data_get(dev, i)
;
if (rxq == NULL)
continue;
idx = rxq->idx;
if (idx < RTE_ETHDEV_QUEUE_STAT_CNTRS) {
#ifdef MLX5_PMD_SOFT_COUNTERS
if (rxq == NULL)
continue;
idx = rxq->idx;
if (idx < RTE_ETHDEV_QUEUE_STAT_CNTRS) {
#ifdef MLX5_PMD_SOFT_COUNTERS
- tmp.q_ipackets[idx] += rxq->stats.ipackets;
- tmp.q_ibytes[idx] += rxq->stats.ibytes;
+ tmp.q_ipackets[idx] += rxq->stats.ipackets -
+ rxq->stats_reset.ipackets;
+ tmp.q_ibytes[idx] += rxq->stats.ibytes -
+ rxq->stats_reset.ibytes;
#endif
tmp.q_errors[idx] += (rxq->stats.idropped +
#endif
tmp.q_errors[idx] += (rxq->stats.idropped +
- rxq->stats.rx_nombuf);
+ rxq->stats.rx_nombuf) -
+ (rxq->stats_reset.idropped +
+ rxq->stats_reset.rx_nombuf);
}
#ifdef MLX5_PMD_SOFT_COUNTERS
}
#ifdef MLX5_PMD_SOFT_COUNTERS
- tmp.ipackets += rxq->stats.ipackets;
- tmp.ibytes += rxq->stats.ibytes;
+ tmp.ipackets += rxq->stats.ipackets
- rxq->stats_reset.ipackets
;
+ tmp.ibytes += rxq->stats.ibytes
- rxq->stats_reset.ibytes
;
#endif
#endif
- tmp.ierrors += rxq->stats.idropped;
- tmp.rx_nombuf += rxq->stats.rx_nombuf;
+ tmp.ierrors += rxq->stats.idropped - rxq->stats_reset.idropped;
+ tmp.rx_nombuf += rxq->stats.rx_nombuf -
+ rxq->stats_reset.rx_nombuf;
}
for (i = 0; (i != priv->txqs_n); ++i) {
struct mlx5_txq_data *txq = (*priv->txqs)[i];
}
for (i = 0; (i != priv->txqs_n); ++i) {
struct mlx5_txq_data *txq = (*priv->txqs)[i];
@@
-134,15
+140,17
@@
mlx5_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
idx = txq->idx;
if (idx < RTE_ETHDEV_QUEUE_STAT_CNTRS) {
#ifdef MLX5_PMD_SOFT_COUNTERS
idx = txq->idx;
if (idx < RTE_ETHDEV_QUEUE_STAT_CNTRS) {
#ifdef MLX5_PMD_SOFT_COUNTERS
- tmp.q_opackets[idx] += txq->stats.opackets;
- tmp.q_obytes[idx] += txq->stats.obytes;
+ tmp.q_opackets[idx] += txq->stats.opackets -
+ txq->stats_reset.opackets;
+ tmp.q_obytes[idx] += txq->stats.obytes -
+ txq->stats_reset.obytes;
#endif
}
#ifdef MLX5_PMD_SOFT_COUNTERS
#endif
}
#ifdef MLX5_PMD_SOFT_COUNTERS
- tmp.opackets += txq->stats.opackets;
- tmp.obytes += txq->stats.obytes;
+ tmp.opackets += txq->stats.opackets
- txq->stats_reset.opackets
;
+ tmp.obytes += txq->stats.obytes
- txq->stats_reset.obytes
;
#endif
#endif
- tmp.oerrors += txq->stats.oerrors;
+ tmp.oerrors += txq->stats.oerrors
- txq->stats_reset.oerrors
;
}
ret = mlx5_os_read_dev_stat(priv, "out_of_buffer", &tmp.imissed);
if (ret == 0) {
}
ret = mlx5_os_read_dev_stat(priv, "out_of_buffer", &tmp.imissed);
if (ret == 0) {
@@
-180,16
+188,18
@@
mlx5_stats_reset(struct rte_eth_dev *dev)
unsigned int i;
for (i = 0; (i != priv->rxqs_n); ++i) {
unsigned int i;
for (i = 0; (i != priv->rxqs_n); ++i) {
- if ((*priv->rxqs)[i] == NULL)
+ struct mlx5_rxq_data *rxq_data = mlx5_rxq_data_get(dev, i);
+
+ if (rxq_data == NULL)
continue;
continue;
- memset(&(*priv->rxqs)[i]->stats, 0,
- sizeof(struct mlx5_rxq_stats));
+ rxq_data->stats_reset = rxq_data->stats;
}
for (i = 0; (i != priv->txqs_n); ++i) {
}
for (i = 0; (i != priv->txqs_n); ++i) {
- if ((*priv->txqs)[i] == NULL)
+ struct mlx5_txq_data *txq_data = (*priv->txqs)[i];
+
+ if (txq_data == NULL)
continue;
continue;
- memset(&(*priv->txqs)[i]->stats, 0,
- sizeof(struct mlx5_txq_stats));
+ txq_data->stats_reset = txq_data->stats;
}
mlx5_os_read_dev_stat(priv, "out_of_buffer", &stats_ctrl->imissed_base);
stats_ctrl->imissed = 0;
}
mlx5_os_read_dev_stat(priv, "out_of_buffer", &stats_ctrl->imissed_base);
stats_ctrl->imissed = 0;