mirror_ubuntu-kernels/drivers/net/ethernet/intel/ice
Alexander Lobakin ad07f29b9c ice: Micro-optimize .ndo_xdp_xmit() path
After the recent mbuf changes, ice_xmit_xdp_ring() became a 3-liner.
It makes no sense to keep it global in a different file than its caller.
Move it just next to the sole call site and mark static. Also, it
doesn't need a full xdp_convert_frame_to_buff(). Save several cycles
and fill only the fields used by __ice_xmit_xdp_ring() later on.
Finally, since it doesn't modify @xdpf anyhow, mark the argument const
to save some more (whole -11 bytes of .text! :D).

Thanks to 1 jump less and less calcs as well, this yields as many as
6.7 Mpps per queue. `xdp.data_hard_start = xdpf` is fully intentional
again (see xdp_convert_buff_to_frame()) and just works when there are
no source device's driver issues.

Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://lore.kernel.org/bpf/20230210170618.1973430-7-alexandr.lobakin@intel.com
2023-02-13 19:13:13 +01:00
..
ice_adminq_cmd.h ice: Add 'Execute Pending LLDP MIB' Admin Queue command 2023-01-19 08:18:03 -08:00
ice_arfs.c ice: arfs: fix use-after-free when freeing @rx_cpu_rmap 2022-04-08 09:08:36 -07:00
ice_arfs.h
ice_base.c ice: Add support for XDP multi-buffer on Rx side 2023-02-01 23:30:27 +01:00
ice_base.h
ice_cgu_regs.h
ice_common.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-02-09 12:25:40 -08:00
ice_common.h ice: Match parameter name for ice_cfg_phy_fc() 2023-01-19 08:18:03 -08:00
ice_controlq.c
ice_controlq.h
ice_dcb_lib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-02-02 14:49:55 -08:00
ice_dcb_lib.h ice: Prevent set_channel from changing queues while RDMA active 2023-01-27 11:32:18 -08:00
ice_dcb_nl.c
ice_dcb_nl.h
ice_dcb.c ice: Handle LLDP MIB Pending change 2023-01-19 08:18:03 -08:00
ice_dcb.h ice: Handle LLDP MIB Pending change 2023-01-19 08:18:03 -08:00
ice_ddp.c ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_ddp.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_devids.h ice: support features on new E810T variants 2022-09-28 11:40:57 -07:00
ice_devlink.c ice: implement devlink reinit action 2023-02-03 09:54:18 -08:00
ice_devlink.h ice: Prevent ADQ, DCB coexistence with Custom Tx scheduler 2022-11-17 21:41:28 -08:00
ice_eswitch.c ice: remove unnecessary virtchnl_ether_addr struct use 2023-02-06 09:47:48 -08:00
ice_eswitch.h ice: allow creating VFs for !CONFIG_NET_SWITCHDEV 2022-04-14 08:19:54 -07:00
ice_ethtool_fdir.c ice: Use correct order for the parameters of devm_kcalloc() 2022-06-08 08:55:13 -07:00
ice_ethtool.c bpf-next-for-netdev 2023-02-10 17:51:27 -08:00
ice_fdir.c
ice_fdir.h
ice_flex_pipe.c ice: Reduce scope of variables 2023-01-19 08:18:03 -08:00
ice_flex_pipe.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flex_type.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flow.c
ice_flow.h
ice_fltr.c ice: sync netdev filters after clearing VSI 2023-02-03 09:54:18 -08:00
ice_fltr.h
ice_fw_update.c ice: handle E822 generic device ID in PLDM header 2022-07-12 09:25:34 -07:00
ice_fw_update.h
ice_gnss.c ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00
ice_gnss.h ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00
ice_hw_autogen.h ice: Add support Flex RXD 2022-10-27 13:23:43 +02:00
ice_idc_int.h
ice_idc.c ice: alloc id for RDMA using xa_array 2023-02-03 09:54:18 -08:00
ice_lag.c ice: remove non-inclusive language 2022-08-18 08:26:11 -07:00
ice_lag.h ice: remove non-inclusive language 2022-08-18 08:26:11 -07:00
ice_lan_tx_rx.h ice: Remove and replace ice speed defines with ethtool.h versions 2022-11-23 08:59:42 -08:00
ice_lib.c bpf-next-for-netdev 2023-02-10 17:51:27 -08:00
ice_lib.h ice: refactor VSI setup to use parameter structure 2023-02-06 09:37:31 -08:00
ice_main.c bpf-next-for-netdev 2023-02-10 17:51:27 -08:00
ice_nvm.c ice: Remove cppcheck suppressions 2023-01-19 08:18:03 -08:00
ice_nvm.h ice: Add additional flags to ice_nvm_write_activate 2022-08-24 08:45:54 -07:00
ice_osdep.h
ice_pf_vsi_vlan_ops.c
ice_pf_vsi_vlan_ops.h
ice_protocol_type.h ice: Add L2TPv3 hardware offload support 2022-09-20 09:13:38 +02:00
ice_ptp_consts.h
ice_ptp_hw.c ice: make Tx and Rx vernier offset calibration independent 2022-12-08 13:15:03 -08:00
ice_ptp_hw.h ice: make Tx and Rx vernier offset calibration independent 2022-12-08 13:15:03 -08:00
ice_ptp.c ice: restrict PTP HW clock freq adjustments to 100, 000, 000 PPB 2023-01-19 08:18:03 -08:00
ice_ptp.h ice: handle flushing stale Tx timestamps in ice_ptp_tx_tstamp 2022-12-08 13:15:03 -08:00
ice_repr.c ice: Accumulate ring statistics over reset 2022-11-23 08:59:43 -08:00
ice_repr.h
ice_sbq_cmd.h
ice_sched.c ice: Reduce scope of variables 2023-01-19 08:18:03 -08:00
ice_sched.h ice: Add an option to pre-allocate memory for ice_sched_node 2022-11-17 21:41:28 -08:00
ice_sriov.c ice: remove unnecessary virtchnl_ether_addr struct use 2023-02-06 09:47:48 -08:00
ice_sriov.h ice: introduce ice_virtchnl.c and ice_virtchnl.h 2022-03-15 13:23:10 -07:00
ice_switch.c ice: switch: fix potential memleak in ice_add_adv_recipe() 2023-02-06 15:13:02 -08:00
ice_switch.h ice: Introduce enabling promiscuous mode on multiple VF's 2022-07-28 11:44:22 -07:00
ice_tc_lib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-02-09 12:25:40 -08:00
ice_tc_lib.h ice: Support drop action 2023-01-19 08:18:03 -08:00
ice_trace.h ice: add trace events for tx timestamps 2022-03-16 10:38:15 -07:00
ice_txrx_lib.c ice: Micro-optimize .ndo_xdp_xmit() path 2023-02-13 19:13:13 +01:00
ice_txrx_lib.h ice: Micro-optimize .ndo_xdp_xmit() path 2023-02-13 19:13:13 +01:00
ice_txrx.c ice: Micro-optimize .ndo_xdp_xmit() path 2023-02-13 19:13:13 +01:00
ice_txrx.h ice: Fix freeing XDP frames backed by Page Pool 2023-02-13 19:13:12 +01:00
ice_type.h ice: Prevent ADQ, DCB coexistence with Custom Tx scheduler 2022-11-17 21:41:28 -08:00
ice_vf_lib_private.h ice: introduce ice_vf_init_host_cfg function 2023-02-06 09:41:56 -08:00
ice_vf_lib.c ice: remove unnecessary virtchnl_ether_addr struct use 2023-02-06 09:47:48 -08:00
ice_vf_lib.h ice: remove unnecessary virtchnl_ether_addr struct use 2023-02-06 09:47:48 -08:00
ice_vf_mbx.c ice: fix out-of-bounds KASAN warning in virtchnl 2023-02-06 15:13:02 -08:00
ice_vf_mbx.h
ice_vf_vsi_vlan_ops.c ice: Fix disabling Rx VLAN filtering with port VLAN enabled 2023-02-06 15:13:02 -08:00
ice_vf_vsi_vlan_ops.h
ice_virtchnl_allowlist.c ice: Add support Flex RXD 2022-10-27 13:23:43 +02:00
ice_virtchnl_allowlist.h
ice_virtchnl_fdir.c ice: Add more usage of existing function ice_get_vf_vsi(vf) 2023-02-06 09:33:12 -08:00
ice_virtchnl_fdir.h
ice_virtchnl.c ice: remove unnecessary virtchnl_ether_addr struct use 2023-02-06 09:47:48 -08:00
ice_virtchnl.h ice: virtchnl rss hena support 2022-11-14 10:44:38 +00:00
ice_vlan_mode.c ice: Add support for VLAN TPID filters in switchdev 2022-06-30 13:53:33 -07:00
ice_vlan_mode.h
ice_vlan.h
ice_vsi_vlan_lib.c
ice_vsi_vlan_lib.h
ice_vsi_vlan_ops.c
ice_vsi_vlan_ops.h
ice_xsk.c ice: Robustify cleaning/completing XDP Tx buffers 2023-02-13 19:13:12 +01:00
ice_xsk.h ice: xsk: change batched Tx descriptor cleaning 2022-09-27 08:11:02 -07:00
ice.h net/sched: move struct tc_mqprio_qopt_offload from pkt_cls.h to pkt_sched.h 2023-02-06 10:06:43 +00:00
Makefile ice: use GNSS subsystem instead of TTY 2023-01-20 13:27:17 +00:00