From: Geetha sowjanya <gakula@marvell.com>
To: <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Cc: <kuba@kernel.org>, <davem@davemloft.net>, <pabeni@redhat.com>,
<jiri@resnulli.us>, <edumazet@google.com>, <sgoutham@marvell.com>,
<gakula@marvell.com>, <sbhatta@marvell.com>, <hkelam@marvell.com>
Subject: [net-next PATCH v11 11/11] octeontx2-pf: Implement offload stats ndo for representors
Date: Thu, 22 Aug 2024 18:50:31 +0530 [thread overview]
Message-ID: <20240822132031.29494-12-gakula@marvell.com> (raw)
In-Reply-To: <20240822132031.29494-1-gakula@marvell.com>
Implement the offload stat ndo by fetching the HW stats
of rx/tx queues attached to the representor.
Signed-off-by: Geetha sowjanya <gakula@marvell.com>
Reviewed-by: Simon Horman <horms@kernel.org>
---
.../marvell/octeontx2/nic/otx2_common.c | 2 +
.../net/ethernet/marvell/octeontx2/nic/rep.c | 41 +++++++++++++++++++
2 files changed, 43 insertions(+)
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
index 4c11c420399b..b1251f80a569 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
@@ -83,6 +83,7 @@ int otx2_update_rq_stats(struct otx2_nic *pfvf, int qidx)
otx2_nix_rq_op_stats(&rq->stats, pfvf, qidx);
return 1;
}
+EXPORT_SYMBOL(otx2_update_rq_stats);
int otx2_update_sq_stats(struct otx2_nic *pfvf, int qidx)
{
@@ -99,6 +100,7 @@ int otx2_update_sq_stats(struct otx2_nic *pfvf, int qidx)
otx2_nix_sq_op_stats(&sq->stats, pfvf, qidx);
return 1;
}
+EXPORT_SYMBOL(otx2_update_sq_stats);
void otx2_get_dev_stats(struct otx2_nic *pfvf)
{
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/rep.c b/drivers/net/ethernet/marvell/octeontx2/nic/rep.c
index aab1784b5134..1abc6591e589 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/rep.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/rep.c
@@ -28,6 +28,45 @@ MODULE_DESCRIPTION(DRV_STRING);
MODULE_LICENSE("GPL");
MODULE_DEVICE_TABLE(pci, rvu_rep_id_table);
+static int
+rvu_rep_sp_stats64(const struct net_device *dev,
+ struct rtnl_link_stats64 *stats)
+{
+ struct rep_dev *rep = netdev_priv(dev);
+ struct otx2_nic *priv = rep->mdev;
+ struct otx2_rcv_queue *rq;
+ struct otx2_snd_queue *sq;
+ u16 qidx = rep->rep_id;
+
+ otx2_update_rq_stats(priv, qidx);
+ rq = &priv->qset.rq[qidx];
+
+ otx2_update_sq_stats(priv, qidx);
+ sq = &priv->qset.sq[qidx];
+
+ stats->tx_bytes = sq->stats.bytes;
+ stats->tx_packets = sq->stats.pkts;
+ stats->rx_bytes = rq->stats.bytes;
+ stats->rx_packets = rq->stats.pkts;
+ return 0;
+}
+
+static bool
+rvu_rep_has_offload_stats(const struct net_device *dev, int attr_id)
+{
+ return attr_id == IFLA_OFFLOAD_XSTATS_CPU_HIT;
+}
+
+static int
+rvu_rep_get_offload_stats(int attr_id, const struct net_device *dev,
+ void *sp)
+{
+ if (attr_id == IFLA_OFFLOAD_XSTATS_CPU_HIT)
+ return rvu_rep_sp_stats64(dev, (struct rtnl_link_stats64 *)sp);
+
+ return -EINVAL;
+}
+
static int rvu_rep_dl_port_fn_hw_addr_get(struct devlink_port *port,
u8 *hw_addr, int *hw_addr_len,
struct netlink_ext_ack *extack)
@@ -327,6 +366,8 @@ static const struct net_device_ops rvu_rep_netdev_ops = {
.ndo_start_xmit = rvu_rep_xmit,
.ndo_get_stats64 = rvu_rep_get_stats64,
.ndo_change_mtu = rvu_rep_change_mtu,
+ .ndo_has_offload_stats = rvu_rep_has_offload_stats,
+ .ndo_get_offload_stats = rvu_rep_get_offload_stats,
};
static int rvu_rep_napi_init(struct otx2_nic *priv,
--
2.25.1
next prev parent reply other threads:[~2024-08-22 13:21 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-22 13:20 [net-next PATCH v11 00/11] Introduce RVU representors Geetha sowjanya
2024-08-22 13:20 ` [net-next PATCH v11 01/11] octeontx2-pf: Refactoring RVU driver Geetha sowjanya
2024-08-22 14:31 ` Jiri Pirko
2024-08-22 13:20 ` [net-next PATCH v11 02/11] octeontx2-pf: RVU representor driver Geetha sowjanya
2024-08-22 13:20 ` [net-next PATCH v11 03/11] octeontx2-pf: Create representor netdev Geetha sowjanya
2024-08-22 14:20 ` Jiri Pirko
2024-09-01 9:53 ` [EXTERNAL] " Geethasowjanya Akula
2024-08-22 13:20 ` [net-next PATCH v11 04/11] octeontx2-pf: Add basic net_device_ops Geetha sowjanya
2024-08-22 13:20 ` [net-next PATCH v11 05/11] octeontx2-af: Add packet path between representor and VF Geetha sowjanya
2024-08-22 13:20 ` [net-next PATCH v11 06/11] octeontx2-pf: Get VF stats via representor Geetha sowjanya
2024-08-22 13:20 ` [net-next PATCH v11 07/11] octeontx2-pf: Add support to sync link state between representor and VFs Geetha sowjanya
2024-08-22 13:20 ` [net-next PATCH v11 08/11] octeontx2-pf: Configure VF mtu via representor Geetha sowjanya
2024-08-22 14:23 ` Jiri Pirko
2024-09-01 9:51 ` [EXTERNAL] " Geethasowjanya Akula
2024-08-22 13:20 ` [net-next PATCH v11 09/11] octeontx2-pf: Add representors for sdp MAC Geetha sowjanya
2024-08-22 13:20 ` [net-next PATCH v11 10/11] octeontx2-pf: Add devlink port support Geetha sowjanya
2024-08-22 14:37 ` Jiri Pirko
2024-09-01 9:51 ` [EXTERNAL] " Geethasowjanya Akula
2024-08-22 13:20 ` Geetha sowjanya [this message]
2024-08-22 14:13 ` [net-next PATCH v11 00/11] Introduce RVU representors Jiri Pirko
2024-08-22 14:41 ` Jiri Pirko
2024-09-01 10:01 ` [EXTERNAL] " Geethasowjanya Akula
2024-09-02 11:32 ` Jiri Pirko
2024-09-02 16:37 ` Geethasowjanya Akula
2024-09-03 9:17 ` Jiri Pirko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240822132031.29494-12-gakula@marvell.com \
--to=gakula@marvell.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkelam@marvell.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sbhatta@marvell.com \
--cc=sgoutham@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.