Patch "i40e: Fix ATR queue selection" has been added to the 5.13-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

    i40e: Fix ATR queue selection

to the 5.13-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:
     i40e-fix-atr-queue-selection.patch
and it can be found in the queue-5.13 subdirectory.

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



commit f540f96d8e484113b229dc5e8a79837d5243abfa
Author: Arkadiusz Kubalewski <arkadiusz.kubalewski@xxxxxxxxx>
Date:   Wed Aug 18 10:42:16 2021 -0700

    i40e: Fix ATR queue selection
    
    [ Upstream commit a222be597e316389f9f8c26033352c124ce93056 ]
    
    Without this patch, ATR does not work. Receive/transmit uses queue
    selection based on SW DCB hashing method.
    
    If traffic classes are not configured for PF, then use
    netdev_pick_tx function for selecting queue for packet transmission.
    Instead of calling i40e_swdcb_skb_tx_hash, call netdev_pick_tx,
    which ensures that packet is transmitted/received from CPU that is
    running the application.
    
    Reproduction steps:
    1. Load i40e driver
    2. Map each MSI interrupt of i40e port for each CPU
    3. Disable ntuple, enable ATR i.e.:
    ethtool -K $interface ntuple off
    ethtool --set-priv-flags $interface flow-director-atr
    4. Run application that is generating traffic and is bound to a
    single CPU, i.e.:
    taskset -c 9 netperf -H 1.1.1.1 -t TCP_RR -l 10
    5. Observe behavior:
    Application's traffic should be restricted to the CPU provided in
    taskset.
    
    Fixes: 89ec1f0886c1 ("i40e: Fix queue-to-TC mapping on Tx")
    Signed-off-by: Przemyslaw Patynowski <przemyslawx.patynowski@xxxxxxxxx>
    Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@xxxxxxxxx>
    Tested-by: Dave Switzer <david.switzer@xxxxxxxxx>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 107fb472319e..b18ff0ed8527 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -3665,8 +3665,7 @@ u16 i40e_lan_select_queue(struct net_device *netdev,
 
 	/* is DCB enabled at all? */
 	if (vsi->tc_config.numtc == 1)
-		return i40e_swdcb_skb_tx_hash(netdev, skb,
-					      netdev->real_num_tx_queues);
+		return netdev_pick_tx(netdev, skb, sb_dev);
 
 	prio = skb->priority;
 	hw = &vsi->back->hw;



[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