Patch "netdev: fix repeated netlink messages in queue stats" has been added to the 6.12-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    netdev: fix repeated netlink messages in queue stats

to the 6.12-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     netdev-fix-repeated-netlink-messages-in-queue-stats.patch
and it can be found in the queue-6.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit b38e7f1966d96563f9cbb7338e5ffa8440edf109
Author: Jakub Kicinski <kuba@xxxxxxxxxx>
Date:   Fri Dec 13 07:22:41 2024 -0800

    netdev: fix repeated netlink messages in queue stats
    
    [ Upstream commit ecc391a541573da46b7ccc188105efedd40aef1b ]
    
    The context is supposed to record the next queue to dump,
    not last dumped. If the dump doesn't fit we will restart
    from the already-dumped queue, duplicating the message.
    
    Before this fix and with the selftest improvements later
    in this series we see:
    
      # ./run_kselftest.sh -t drivers/net:stats.py
      timeout set to 45
      selftests: drivers/net: stats.py
      KTAP version 1
      1..5
      ok 1 stats.check_pause
      ok 2 stats.check_fec
      ok 3 stats.pkt_byte_sum
      # Check| At /root/ksft-net-drv/drivers/net/./stats.py, line 125, in qstat_by_ifindex:
      # Check|     ksft_eq(len(queues[qtype]), len(set(queues[qtype])),
      # Check failed 45 != 44 repeated queue keys
      # Check| At /root/ksft-net-drv/drivers/net/./stats.py, line 127, in qstat_by_ifindex:
      # Check|     ksft_eq(len(queues[qtype]), max(queues[qtype]) + 1,
      # Check failed 45 != 44 missing queue keys
      # Check| At /root/ksft-net-drv/drivers/net/./stats.py, line 125, in qstat_by_ifindex:
      # Check|     ksft_eq(len(queues[qtype]), len(set(queues[qtype])),
      # Check failed 45 != 44 repeated queue keys
      # Check| At /root/ksft-net-drv/drivers/net/./stats.py, line 127, in qstat_by_ifindex:
      # Check|     ksft_eq(len(queues[qtype]), max(queues[qtype]) + 1,
      # Check failed 45 != 44 missing queue keys
      # Check| At /root/ksft-net-drv/drivers/net/./stats.py, line 125, in qstat_by_ifindex:
      # Check|     ksft_eq(len(queues[qtype]), len(set(queues[qtype])),
      # Check failed 103 != 100 repeated queue keys
      # Check| At /root/ksft-net-drv/drivers/net/./stats.py, line 127, in qstat_by_ifindex:
      # Check|     ksft_eq(len(queues[qtype]), max(queues[qtype]) + 1,
      # Check failed 103 != 100 missing queue keys
      # Check| At /root/ksft-net-drv/drivers/net/./stats.py, line 125, in qstat_by_ifindex:
      # Check|     ksft_eq(len(queues[qtype]), len(set(queues[qtype])),
      # Check failed 102 != 100 repeated queue keys
      # Check| At /root/ksft-net-drv/drivers/net/./stats.py, line 127, in qstat_by_ifindex:
      # Check|     ksft_eq(len(queues[qtype]), max(queues[qtype]) + 1,
      # Check failed 102 != 100 missing queue keys
      not ok 4 stats.qstat_by_ifindex
      ok 5 stats.check_down
      # Totals: pass:4 fail:1 xfail:0 xpass:0 skip:0 error:0
    
    With the fix:
    
      # ./ksft-net-drv/run_kselftest.sh -t drivers/net:stats.py
      timeout set to 45
      selftests: drivers/net: stats.py
      KTAP version 1
      1..5
      ok 1 stats.check_pause
      ok 2 stats.check_fec
      ok 3 stats.pkt_byte_sum
      ok 4 stats.qstat_by_ifindex
      ok 5 stats.check_down
      # Totals: pass:5 fail:0 xfail:0 xpass:0 skip:0 error:0
    
    Fixes: ab63a2387cb9 ("netdev: add per-queue statistics")
    Reviewed-by: Joe Damato <jdamato@xxxxxxxxxx>
    Link: https://patch.msgid.link/20241213152244.3080955-3-kuba@xxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/core/netdev-genl.c b/net/core/netdev-genl.c
index 71359922ae8b..224d1b5b79a7 100644
--- a/net/core/netdev-genl.c
+++ b/net/core/netdev-genl.c
@@ -597,7 +597,7 @@ netdev_nl_stats_by_queue(struct net_device *netdev, struct sk_buff *rsp,
 					    i, info);
 		if (err)
 			return err;
-		ctx->rxq_idx = i++;
+		ctx->rxq_idx = ++i;
 	}
 	i = ctx->txq_idx;
 	while (ops->get_queue_stats_tx && i < netdev->real_num_tx_queues) {
@@ -605,7 +605,7 @@ netdev_nl_stats_by_queue(struct net_device *netdev, struct sk_buff *rsp,
 					    i, info);
 		if (err)
 			return err;
-		ctx->txq_idx = i++;
+		ctx->txq_idx = ++i;
 	}
 
 	ctx->rxq_idx = 0;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux