diff mbox series

ethtool: Fix JSON output for IRQ coalescing

Message ID 20250122181153.2563289-1-mkedwards@meta.com (mailing list archive)
State Accepted
Commit c62310eb2999e40545d0aa6f3a7489864b633607
Delegated to: Michal Kubecek
Headers show
Series ethtool: Fix JSON output for IRQ coalescing | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Michael Edwards Jan. 22, 2025, 5:40 p.m. UTC
Currently, for a NIC that supports CQE mode settings, the output of
ethtool --json -c eth0 looks like this:

[ {
        "ifname": "eth0",
        "rx": false,
        "tx": false,
        "rx-usecs": 33,
        "rx-frames": 88,
        "tx-usecs": 158,
        "tx-frames": 128,
        "rx": true,
        "tx": false
    } ]

This diff will change the first rx/tx pair to adaptive-{rx|tx} and
the second pair to cqe-mode-{rx|tx} to match the keys used to set
the corresponding settings.

Fixes: 7e5c1ddbe67d ("pause: add --json support")
Fixes: ecfb7302cfe6 ("netlink: settings: add netlink support for coalesce cqe mode parameter")
Signed-off-by: Michael Edwards <mkedwards@meta.com>
---
 netlink/coalesce.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Jakub Kicinski Jan. 22, 2025, 11:13 p.m. UTC | #1
On Wed, 22 Jan 2025 09:40:15 -0800 Michael Edwards wrote:
> This diff will change the first rx/tx pair to adaptive-{rx|tx} and
> the second pair to cqe-mode-{rx|tx} to match the keys used to set
> the corresponding settings.

This has been broken for 3.5 years, so I think we can assume the old
keys weren't used:

Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Michal Kubecek Jan. 23, 2025, 10:12 a.m. UTC | #2
On Wed, Jan 22, 2025 at 09:40:15AM -0800, Michael Edwards wrote:
> Currently, for a NIC that supports CQE mode settings, the output of
> ethtool --json -c eth0 looks like this:
> 
> [ {
>         "ifname": "eth0",
>         "rx": false,
>         "tx": false,
>         "rx-usecs": 33,
>         "rx-frames": 88,
>         "tx-usecs": 158,
>         "tx-frames": 128,
>         "rx": true,
>         "tx": false
>     } ]
> 
> This diff will change the first rx/tx pair to adaptive-{rx|tx} and
> the second pair to cqe-mode-{rx|tx} to match the keys used to set
> the corresponding settings.
> 
> Fixes: 7e5c1ddbe67d ("pause: add --json support")
> Fixes: ecfb7302cfe6 ("netlink: settings: add netlink support for coalesce cqe mode parameter")
> Signed-off-by: Michael Edwards <mkedwards@meta.com>
> ---

Good catch. I guess I should find some JSON linting tool to run on new
or modified JSON output that would catch issues like this.

Michal
patchwork-bot+netdevbpf@kernel.org Jan. 23, 2025, 11:30 a.m. UTC | #3
Hello:

This patch was applied to ethtool/ethtool.git (master)
by Michal Kubecek <mkubecek@suse.cz>:

On Wed, 22 Jan 2025 09:40:15 -0800 you wrote:
> Currently, for a NIC that supports CQE mode settings, the output of
> ethtool --json -c eth0 looks like this:
> 
> [ {
>         "ifname": "eth0",
>         "rx": false,
>         "tx": false,
>         "rx-usecs": 33,
>         "rx-frames": 88,
>         "tx-usecs": 158,
>         "tx-frames": 128,
>         "rx": true,
>         "tx": false
>     } ]
> 
> [...]

Here is the summary with links:
  - ethtool: Fix JSON output for IRQ coalescing
    https://git.kernel.org/pub/scm/network/ethtool/ethtool.git/commit/?id=c62310eb2999

You are awesome, thank you!
diff mbox series

Patch

diff --git a/netlink/coalesce.c b/netlink/coalesce.c
index bb93f9b224d6..bc8b57b6d412 100644
--- a/netlink/coalesce.c
+++ b/netlink/coalesce.c
@@ -39,9 +39,9 @@  int coalesce_reply_cb(const struct nlmsghdr *nlhdr, void *data)
 		show_cr();
 	print_string(PRINT_ANY, "ifname", "Coalesce parameters for %s:\n",
 		     nlctx->devname);
-	show_bool("rx", "Adaptive RX: %s  ",
+	show_bool("adaptive-rx", "Adaptive RX: %s  ",
 		  tb[ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX]);
-	show_bool("tx", "TX: %s\n", tb[ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX]);
+	show_bool("adaptive-tx", "TX: %s\n", tb[ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX]);
 	show_u32("stats-block-usecs", "stats-block-usecs:\t",
 		 tb[ETHTOOL_A_COALESCE_STATS_BLOCK_USECS]);
 	show_u32("sample-interval", "sample-interval:\t",
@@ -85,9 +85,9 @@  int coalesce_reply_cb(const struct nlmsghdr *nlhdr, void *data)
 	show_u32("tx-frame-high", "tx-frame-high:\t",
 		 tb[ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH]);
 	show_cr();
-	show_bool("rx", "CQE mode RX: %s  ",
+	show_bool("cqe-mode-rx", "CQE mode RX: %s  ",
 		  tb[ETHTOOL_A_COALESCE_USE_CQE_MODE_RX]);
-	show_bool("tx", "TX: %s\n", tb[ETHTOOL_A_COALESCE_USE_CQE_MODE_TX]);
+	show_bool("cqe-mode-tx", "TX: %s\n", tb[ETHTOOL_A_COALESCE_USE_CQE_MODE_TX]);
 	show_cr();
 	show_u32("tx-aggr-max-bytes", "tx-aggr-max-bytes:\t",
 		 tb[ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES]);