Message ID | 1653563925-21327-1-git-send-email-sbhatta@marvell.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Michal Kubecek |
Headers | show |
Series | [ethtool-next] rings: add support to set/get cqe size | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
Hi Michal Kubecek, Any comments? Thanks, Sundeep
On Mon, Jun 06, 2022 at 10:24:58AM +0000, Subbaraya Sundeep Bhatta wrote: > Hi Michal Kubecek, > > Any comments? It's applied now, I just applied it to master before releasing 5.18 because the kernel counterpart is in v5.18. Michal > > Thanks, > Sundeep > > ________________________________________ > From: Subbaraya Sundeep <sbhatta@marvell.com> > Sent: Thursday, May 26, 2022 4:48 PM > To: mkubecek@suse.cz; davem@davemloft.net; kuba@kernel.org > Cc: netdev@vger.kernel.org; Sunil Kovvuri Goutham; Hariprasad Kelam; Geethasowjanya Akula; Subbaraya Sundeep Bhatta > Subject: [ethtool-next PATCH] rings: add support to set/get cqe size > > After a packet is sent or received by NIC then NIC posts > a completion queue event which consists of transmission status > (like send success or error) and received status(like > pointers to packet fragments). These completion events may > also use a ring similar to rx and tx rings. This patch > introduces cqe-size ethtool parameter to modify the size > of the completion queue event if NIC hardware has that capability. > With this patch in place, cqe size can be set via > "ethtool -G <dev> cqe-size xxx" and get via "ethtool -g <dev>". > > Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> > --- > ethtool.8.in | 4 ++++ > ethtool.c | 1 + > netlink/rings.c | 7 +++++++ > 3 files changed, 12 insertions(+) > > diff --git a/ethtool.8.in b/ethtool.8.in > index cbfe9cf..92ba229 100644 > --- a/ethtool.8.in > +++ b/ethtool.8.in > @@ -200,6 +200,7 @@ ethtool \- query or control network driver and hardware settings > .BN tx > .BN rx\-buf\-len > .BN tx\-push > +.BN cqe\-size > .HP > .B ethtool \-i|\-\-driver > .I devname > @@ -577,6 +578,9 @@ Changes the size of a buffer in the Rx ring. > .TP > .BI tx\-push \ on|off > Specifies whether TX push should be enabled. > +.TP > +.BI cqe\-size \ N > +Changes the size of completion queue event. > .RE > .TP > .B \-i \-\-driver > diff --git a/ethtool.c b/ethtool.c > index c58c73b..ef4e4c6 100644 > --- a/ethtool.c > +++ b/ethtool.c > @@ -5734,6 +5734,7 @@ static const struct option args[] = { > " [ tx N ]\n" > " [ rx-buf-len N]\n" > " [ tx-push on|off]\n" > + " [ cqe-size N]\n" > }, > { > .opts = "-k|--show-features|--show-offload", > diff --git a/netlink/rings.c b/netlink/rings.c > index 3718c10..5999247 100644 > --- a/netlink/rings.c > +++ b/netlink/rings.c > @@ -48,6 +48,7 @@ int rings_reply_cb(const struct nlmsghdr *nlhdr, void *data) > show_u32(tb[ETHTOOL_A_RINGS_TX], "TX:\t\t"); > show_u32(tb[ETHTOOL_A_RINGS_RX_BUF_LEN], "RX Buf Len:\t\t"); > show_bool("tx-push", "TX Push:\t%s\n", tb[ETHTOOL_A_RINGS_TX_PUSH]); > + show_u32(tb[ETHTOOL_A_RINGS_CQE_SIZE], "CQE Size:\t\t"); > > return MNL_CB_OK; > } > @@ -112,6 +113,12 @@ static const struct param_parser sring_params[] = { > .handler = nl_parse_u8bool, > .min_argc = 1, > }, > + { > + .arg = "cqe-size", > + .type = ETHTOOL_A_RINGS_CQE_SIZE, > + .handler = nl_parse_direct_u32, > + .min_argc = 1, > + }, > {} > }; > > -- > 2.7.4 >
diff --git a/ethtool.8.in b/ethtool.8.in index cbfe9cf..92ba229 100644 --- a/ethtool.8.in +++ b/ethtool.8.in @@ -200,6 +200,7 @@ ethtool \- query or control network driver and hardware settings .BN tx .BN rx\-buf\-len .BN tx\-push +.BN cqe\-size .HP .B ethtool \-i|\-\-driver .I devname @@ -577,6 +578,9 @@ Changes the size of a buffer in the Rx ring. .TP .BI tx\-push \ on|off Specifies whether TX push should be enabled. +.TP +.BI cqe\-size \ N +Changes the size of completion queue event. .RE .TP .B \-i \-\-driver diff --git a/ethtool.c b/ethtool.c index c58c73b..ef4e4c6 100644 --- a/ethtool.c +++ b/ethtool.c @@ -5734,6 +5734,7 @@ static const struct option args[] = { " [ tx N ]\n" " [ rx-buf-len N]\n" " [ tx-push on|off]\n" + " [ cqe-size N]\n" }, { .opts = "-k|--show-features|--show-offload", diff --git a/netlink/rings.c b/netlink/rings.c index 3718c10..5999247 100644 --- a/netlink/rings.c +++ b/netlink/rings.c @@ -48,6 +48,7 @@ int rings_reply_cb(const struct nlmsghdr *nlhdr, void *data) show_u32(tb[ETHTOOL_A_RINGS_TX], "TX:\t\t"); show_u32(tb[ETHTOOL_A_RINGS_RX_BUF_LEN], "RX Buf Len:\t\t"); show_bool("tx-push", "TX Push:\t%s\n", tb[ETHTOOL_A_RINGS_TX_PUSH]); + show_u32(tb[ETHTOOL_A_RINGS_CQE_SIZE], "CQE Size:\t\t"); return MNL_CB_OK; } @@ -112,6 +113,12 @@ static const struct param_parser sring_params[] = { .handler = nl_parse_u8bool, .min_argc = 1, }, + { + .arg = "cqe-size", + .type = ETHTOOL_A_RINGS_CQE_SIZE, + .handler = nl_parse_direct_u32, + .min_argc = 1, + }, {} };
After a packet is sent or received by NIC then NIC posts a completion queue event which consists of transmission status (like send success or error) and received status(like pointers to packet fragments). These completion events may also use a ring similar to rx and tx rings. This patch introduces cqe-size ethtool parameter to modify the size of the completion queue event if NIC hardware has that capability. With this patch in place, cqe size can be set via "ethtool -G <dev> cqe-size xxx" and get via "ethtool -g <dev>". Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> --- ethtool.8.in | 4 ++++ ethtool.c | 1 + netlink/rings.c | 7 +++++++ 3 files changed, 12 insertions(+)