linux-brain/drivers/net/ethernet/intel/i40e
Arkadiusz Kubalewski a498115dcd 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@intel.com>
Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Tested-by: Dave Switzer <david.switzer@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-08-26 08:36:19 -04:00
..
Makefile
i40e.h i40e: Fix kernel oops when i40e driver removes VF's 2021-04-14 08:24:14 +02:00
i40e_adminq.c i40e: Add drop mode parameter to set mac config 2019-08-22 13:24:13 -07:00
i40e_adminq.h
i40e_adminq_cmd.h i40e: Fix PHY type identifiers for 2.5G and 5G adapters 2021-05-19 10:08:28 +02:00
i40e_alloc.h
i40e_client.c i40e: Fix use-after-free in i40e_client_subtask() 2021-05-19 10:08:28 +02:00
i40e_client.h
i40e_common.c i40e: Fix PHY type identifiers for 2.5G and 5G adapters 2021-05-19 10:08:28 +02:00
i40e_dcb.c i40e: Persistent LLDP support 2019-08-22 13:24:14 -07:00
i40e_dcb.h i40e: Persistent LLDP support 2019-08-22 13:24:14 -07:00
i40e_dcb_nl.c
i40e_ddp.c
i40e_debugfs.c i40e: Remove EMPR traces from debugfs facility 2019-09-09 11:36:43 -07:00
i40e_devids.h
i40e_diag.c
i40e_diag.h
i40e_ethtool.c i40e: Add additional info to PHY type error 2021-08-04 12:27:40 +02:00
i40e_hmc.c i40e: Implement debug macro hw_dbg using dev_dbg 2019-09-09 11:22:20 -07:00
i40e_hmc.h
i40e_lan_hmc.c i40e: fix hw_dbg usage in i40e_hmc_get_object_va 2019-09-09 10:18:18 -07:00
i40e_lan_hmc.h
i40e_main.c i40e: Fix log TC creation failure when max num of queues is exceeded 2021-08-04 12:27:39 +02:00
i40e_nvm.c i40e: Persistent LLDP support 2019-08-22 13:24:14 -07:00
i40e_osdep.h i40e: Implement debug macro hw_dbg using dev_dbg 2019-09-09 11:22:20 -07:00
i40e_prototype.h i40e: Persistent LLDP support 2019-08-22 13:24:14 -07:00
i40e_ptp.c i40e: use ktime_get_real_ts64 instead of ktime_to_timespec64 2019-09-11 09:10:45 -07:00
i40e_register.h i40e: check_recovery_mode had wrong if statement 2019-08-22 13:24:13 -07:00
i40e_status.h
i40e_trace.h
i40e_txrx.c i40e: Fix ATR queue selection 2021-08-26 08:36:19 -04:00
i40e_txrx.h i40e: Fix queue-to-TC mapping on Tx 2021-08-04 12:27:39 +02:00
i40e_txrx_common.h
i40e_type.h i40e: Fix PHY type identifiers for 2.5G and 5G adapters 2021-05-19 10:08:28 +02:00
i40e_virtchnl_pf.c i40e: Fix kernel oops when i40e driver removes VF's 2021-04-14 08:24:14 +02:00
i40e_virtchnl_pf.h i40e: Revert "i40e: don't report link up for a VF who hasn't enabled queues" 2021-02-10 09:25:27 +01:00
i40e_xsk.c i40e: add correct exception tracing for XDP 2021-06-10 13:37:07 +02:00
i40e_xsk.h