1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/intel/ice
Magnus Karlsson 9647c57b11 xsk: i40e: ice: ixgbe: mlx5: Test for dma_need_sync earlier for better performance
Test for dma_need_sync earlier to increase
performance. xsk_buff_dma_sync_for_cpu() takes an xdp_buff as
parameter and from that the xsk_buff_pool reference is dug out. Perf
shows that this dereference causes a lot of cache misses. But as the
buffer pool is now sent down to the driver at zero-copy initialization
time, we might as well use this pointer directly, instead of going via
the xsk_buff and we can do so already in xsk_buff_dma_sync_for_cpu()
instead of in xp_dma_sync_for_cpu. This gets rid of these cache
misses.

Throughput increases with 3% for the xdpsock l2fwd sample application
on my machine.

Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Björn Töpel <bjorn.topel@intel.com>
Link: https://lore.kernel.org/bpf/1598603189-32145-11-git-send-email-magnus.karlsson@intel.com
2020-08-31 21:15:04 +02:00
..
ice.h xsk: i40e: ice: ixgbe: mlx5: Pass buffer pool to driver instead of umem 2020-08-31 21:15:03 +02:00
ice_adminq_cmd.h ice: fix the vsi_id mask to be 10 bit for set_rss_lut 2020-08-01 08:20:10 -07:00
ice_arfs.c ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_arfs.h ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_base.c xsk: i40e: ice: ixgbe: mlx5: Rename xsk zero-copy driver interfaces 2020-08-31 21:15:04 +02:00
ice_base.h ice: Add support to enable/disable all Rx queues before waiting 2020-02-15 16:39:55 -08:00
ice_common.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_common.h ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_controlq.c ice: reduce scope of variable 2020-07-29 08:38:55 -07:00
ice_controlq.h ice: Handle critical FW error during admin queue initialization 2020-05-27 17:48:23 -07:00
ice_dcb.c ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_dcb.h ice: replace single-element array used for C struct hack 2020-07-01 16:35:23 -07:00
ice_dcb_lib.c ice: fix link event handling timing 2020-07-29 08:38:54 -07:00
ice_dcb_lib.h ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_dcb_nl.c ice: remove unused macro 2020-05-27 17:03:40 -07:00
ice_dcb_nl.h ice: Implement DCBNL support 2019-11-08 12:02:14 -08:00
ice_devids.h ice: fix define for E822 backplane device 2020-02-19 13:39:33 -08:00
ice_devlink.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_devlink.h ice: add a devlink region for dumping NVM contents 2020-03-26 19:39:26 -07:00
ice_ethtool.c ice: add useful statistics 2020-08-01 08:44:04 -07:00
ice_ethtool_fdir.c ice: fix aRFS after flow director delete 2020-05-31 03:58:12 -07:00
ice_fdir.c ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_fdir.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_flex_pipe.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_flex_pipe.h ice: Support IPv4 Flow Director filters 2020-05-22 21:36:27 -07:00
ice_flex_type.h ice: replace single-element array used for C struct hack 2020-07-01 16:35:23 -07:00
ice_flow.c ice: Fix RSS profile locks 2020-08-01 08:22:30 -07:00
ice_flow.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_fltr.c ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fltr.h ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fw_update.c ice: implement device flash update via devlink 2020-07-28 17:07:06 -07:00
ice_fw_update.h ice: implement device flash update via devlink 2020-07-28 17:07:06 -07:00
ice_hw_autogen.h ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_lan_tx_rx.h ice: update PTYPE lookup table 2020-08-01 08:44:04 -07:00
ice_lib.c xsk: i40e: ice: ixgbe: mlx5: Pass buffer pool to driver instead of umem 2020-08-31 21:15:03 +02:00
ice_lib.h ice: Add advanced power mgmt for WoL 2020-07-23 14:59:20 -07:00
ice_main.c xsk: i40e: ice: ixgbe: mlx5: Pass buffer pool to driver instead of umem 2020-08-31 21:15:03 +02:00
ice_nvm.c ice: Add AdminQ commands for FW update 2020-07-28 17:07:06 -07:00
ice_nvm.h ice: Add AdminQ commands for FW update 2020-07-28 17:07:06 -07:00
ice_osdep.h ice: Start hardware initialization 2018-03-26 09:59:08 -07:00
ice_protocol_type.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_sched.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_sched.h ice: avoid unnecessary single-member variable-length structs 2020-07-01 16:33:29 -07:00
ice_sriov.c ice: remove unnecessary fallthrough comments 2020-02-15 16:56:48 -08:00
ice_sriov.h ice: Add handlers for VF netdevice operations 2018-10-03 07:42:30 -07:00
ice_status.h ice: Handle critical FW error during admin queue initialization 2020-05-27 17:48:23 -07:00
ice_switch.c ice: return correct error code from ice_aq_sw_rules 2020-07-29 08:38:55 -07:00
ice_switch.h ice: Initialize Flow Director resources 2020-05-22 21:26:37 -07:00
ice_txrx.c xsk: i40e: ice: ixgbe: mlx5: Pass buffer pool to driver instead of umem 2020-08-31 21:15:03 +02:00
ice_txrx.h xsk: i40e: ice: ixgbe: mlx5: Pass buffer pool to driver instead of umem 2020-08-31 21:15:03 +02:00
ice_txrx_lib.c ice: add useful statistics 2020-08-01 08:44:04 -07:00
ice_txrx_lib.h ice: Rename build_ctob to ice_build_ctob 2020-05-21 22:10:04 -07:00
ice_type.h ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_virtchnl_pf.c ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_virtchnl_pf.h ice: Allow 2 queue pairs per VF on SR-IOV initialization 2020-08-01 08:44:04 -07:00
ice_xsk.c xsk: i40e: ice: ixgbe: mlx5: Test for dma_need_sync earlier for better performance 2020-08-31 21:15:04 +02:00
ice_xsk.h xsk: i40e: ice: ixgbe: mlx5: Pass buffer pool to driver instead of umem 2020-08-31 21:15:03 +02:00
Makefile ice: implement device flash update via devlink 2020-07-28 17:07:06 -07:00