mirror_ubuntu-kernels/drivers/net/ethernet/intel/i40e
Jedrzej Jagielski ef39584ddb i40e: Minimize amount of busy-waiting during AQ send
The i40e_asq_send_command will now use a non blocking usleep_range if
possible (non-atomic context), instead of busy-waiting udelay. The
usleep_range function uses hrtimers to provide better performance and
removes the negative impact of busy-waiting in time-critical
environments.

1. Rename i40e_asq_send_command to i40e_asq_send_command_atomic
   and add 5th parameter to inform if called from an atomic context.
   Call inside usleep_range (if non-atomic) or udelay (if atomic).

2. Change i40e_asq_send_command to invoke
   i40e_asq_send_command_atomic(..., false).

3. Change two functions:
    - i40e_aq_set_vsi_uc_promisc_on_vlan
    - i40e_aq_set_vsi_mc_promisc_on_vlan
   to explicitly use i40e_asq_send_command_atomic(..., true)
   instead of i40e_asq_send_command, as they use spinlocks and do some
   work in an atomic context.
   All other calls to i40e_asq_send_command remain unchanged.

Signed-off-by: Dawid Lukwinski <dawid.lukwinski@intel.com>
Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
Tested-by: Tony Brelinski <tony.brelinski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2022-01-07 09:04:21 -08:00
..
i40e_adminq_cmd.h i40e: Fix PHY type identifiers for 2.5G and 5G adapters 2021-05-07 09:35:49 -07:00
i40e_adminq.c i40e: Minimize amount of busy-waiting during AQ send 2022-01-07 09:04:21 -08:00
i40e_adminq.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_alloc.h
i40e_client.c RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw 2021-06-02 20:06:36 -03:00
i40e_common.c i40e: Minimize amount of busy-waiting during AQ send 2022-01-07 09:04:21 -08:00
i40e_dcb_nl.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_dcb.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_dcb.h i40e: Add hardware configuration for software based DCB 2021-02-10 14:28:39 -08:00
i40e_ddp.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_debugfs.c i40e: Fix NULL pointer dereference in i40e_dbg_dump_desc 2021-12-06 09:44:56 -08:00
i40e_devids.h i40e: Add support for 5Gbps cards 2020-06-25 22:25:13 -07:00
i40e_diag.c
i40e_diag.h
i40e_ethtool.c ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
i40e_hmc.c
i40e_hmc.h i40e: remove unused defines 2020-06-25 22:25:13 -07:00
i40e_lan_hmc.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_lan_hmc.h
i40e_main.c i40e: Fix incorrect netdev's real number of RX/TX queues 2022-01-04 14:12:18 -08:00
i40e_nvm.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_osdep.h i40e: remove unused defines 2020-06-25 22:25:13 -07:00
i40e_prototype.h i40e: Minimize amount of busy-waiting during AQ send 2022-01-07 09:04:21 -08:00
i40e_ptp.c net_tstamp: add new flag HWTSTAMP_FLAG_BONDED_PHC_INDEX 2021-12-14 12:28:24 +00:00
i40e_register.h i40e: add support for PTP external synchronization clock 2021-07-21 08:53:54 -07:00
i40e_status.h
i40e_trace.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_txrx_common.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_txrx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-12-31 14:35:40 +00:00
i40e_txrx.h i40e: Fix queue-to-TC mapping on Tx 2021-07-23 07:44:48 -07:00
i40e_type.h i40e: clean up packet type lookup table 2021-06-18 09:04:44 -07:00
i40e_virtchnl_pf.c i40e: Add ensurance of MacVlan resources for every trusted VF 2022-01-07 09:03:44 -08:00
i40e_virtchnl_pf.h i40e: Fix failed opcode appearing if handling messages from VF 2021-12-06 09:44:56 -08:00
i40e_xsk.c bpf: Let bpf_warn_invalid_xdp_action() report more info 2021-12-13 22:28:27 +01:00
i40e_xsk.h xsk: Wipe out dead zero_copy_allocator declarations 2021-12-14 00:24:24 +01:00
i40e.h i40e: Fix ping is lost after configuring ADq on VF 2021-11-17 08:05:06 -08:00
Makefile