Patch "selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes" has been added to the 6.1-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

    selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes

to the 6.1-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:
     selftests-mlxsw-qos_pfc-adjust-the-test-to-support-8.patch
and it can be found in the queue-6.1 subdirectory.

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



commit e639e07dd29318f23d2c3027bfebd5bc4e8ea8d9
Author: Amit Cohen <amcohen@xxxxxxxxxx>
Date:   Wed Jan 17 16:04:21 2024 +0100

    selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes
    
    [ Upstream commit b34f4de6d30cbaa8fed905a5080b6eace8c84dc7 ]
    
    'qos_pfc' test checks PFC behavior. The idea is to limit the traffic
    using a shaper somewhere in the flow of the packets. In this area, the
    buffer is smaller than the buffer at the beginning of the flow, so it fills
    up until there is no more space left. The test configures there PFC
    which is supposed to notice that the headroom is filling up and send PFC
    Xoff to indicate the transmitter to stop sending traffic for the priorities
    sharing this PG.
    
    The Xon/Xoff threshold is auto-configured and always equal to
    2*(MTU rounded up to cell size). Even after sending the PFC Xoff packet,
    traffic will keep arriving until the transmitter receives and processes
    the PFC packet. This amount of traffic is known as the PFC delay allowance.
    
    Currently the buffer for the delay traffic is configured as 100KB. The
    MTU in the test is 10KB, therefore the threshold for Xoff is about 20KB.
    This allows 80KB extra to be stored in this buffer.
    
    8-lane ports use two buffers among which the configured buffer is split,
    the Xoff threshold then applies to each buffer in parallel.
    
    The test does not take into account the behavior of 8-lane ports, when the
    ports are configured to 400Gbps with 8 lanes or 800Gbps with 8 lanes,
    packets are dropped and the test fails.
    
    Check if the relevant ports use 8 lanes, in such case double the size of
    the buffer, as the headroom is split half-half.
    
    Cc: Shuah Khan <shuah@xxxxxxxxxx>
    Fixes: bfa804784e32 ("selftests: mlxsw: Add a PFC test")
    Signed-off-by: Amit Cohen <amcohen@xxxxxxxxxx>
    Reviewed-by: Ido Schimmel <idosch@xxxxxxxxxx>
    Signed-off-by: Petr Machata <petrm@xxxxxxxxxx>
    Acked-by: Paolo Abeni <pabeni@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/23ff11b7dff031eb04a41c0f5254a2b636cd8ebb.1705502064.git.petrm@xxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/testing/selftests/drivers/net/mlxsw/qos_pfc.sh b/tools/testing/selftests/drivers/net/mlxsw/qos_pfc.sh
index f9858e221996..6a3002fbcf43 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/qos_pfc.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/qos_pfc.sh
@@ -121,6 +121,9 @@ h2_destroy()
 
 switch_create()
 {
+	local lanes_swp4
+	local pg1_size
+
 	# pools
 	# -----
 
@@ -230,7 +233,20 @@ switch_create()
 	dcb pfc set dev $swp4 prio-pfc all:off 1:on
 	# PG0 will get autoconfigured to Xoff, give PG1 arbitrarily 100K, which
 	# is (-2*MTU) about 80K of delay provision.
-	dcb buffer set dev $swp4 buffer-size all:0 1:$_100KB
+	pg1_size=$_100KB
+
+	setup_wait_dev_with_timeout $swp4
+
+	lanes_swp4=$(ethtool $swp4 | grep 'Lanes:')
+	lanes_swp4=${lanes_swp4#*"Lanes: "}
+
+	# 8-lane ports use two buffers among which the configured buffer
+	# is split, so double the size to get twice (20K + 80K).
+	if [[ $lanes_swp4 -eq 8 ]]; then
+		pg1_size=$((pg1_size * 2))
+	fi
+
+	dcb buffer set dev $swp4 buffer-size all:0 1:$pg1_size
 
 	# bridges
 	# -------




[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