linux/drivers/net/ethernet/intel/i40e
Alexander Duyck 71dc371993 i40e/i40evf: Clean up logic for adaptive ITR
The logic for dynamic ITR update is confusing at best as there were odd
paths chosen for how to find the rings associated with a given queue based
on the vector index and other inconsistencies throughout the code.

This patch is an attempt to clean up the logic so that we can more easily
understand what is going on. Specifically if there is a Rx or Tx ring that
is enabled in dynamic mode on the q_vector it is allowed to override the
other side of the interrupt moderation. While it isn't correct all this
patch is doing is cleaning up the logic for now so that when we come
through and fix it we can more easily identify that this is wrong.

The other big change made here is that we replace references to:
	vsi->rx_rings[q_vector->v_idx]->itr_setting
with:
	q_vector->rx.ring->itr_setting

The general idea is we can avoid the long pointer chase since just
accessing q_vector->rx.ring is a single pointer access versus having to
chase down vsi->rx_rings, and then finding the pointer in the array, and
finally chasing down the itr_setting from there.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-02-12 10:35:49 -08:00
..
i40e_adminq_cmd.h i40e: Display LLDP information on vSphere Web Client 2018-01-26 13:23:11 -08:00
i40e_adminq.c i40e: cleanup unnecessary parens 2018-01-26 13:23:28 -08:00
i40e_adminq.h
i40e_alloc.h
i40e_client.c i40e: Disable iWARP VSI PETCP_ENA flag on netdev down events 2018-01-23 11:29:19 -08:00
i40e_client.h i40e: Disable iWARP VSI PETCP_ENA flag on netdev down events 2018-01-23 11:29:19 -08:00
i40e_common.c i40e: Display LLDP information on vSphere Web Client 2018-01-26 13:23:11 -08:00
i40e_dcb_nl.c
i40e_dcb.c
i40e_dcb.h
i40e_debugfs.c i40e/i40evf: Only track one ITR setting per ring instead of Tx/Rx 2018-02-12 10:27:12 -08:00
i40e_devids.h
i40e_diag.c i40e: make const array patterns static, reduces object code size 2017-10-13 14:23:57 -07:00
i40e_diag.h
i40e_ethtool.c i40e/i40evf: Only track one ITR setting per ring instead of Tx/Rx 2018-02-12 10:27:12 -08:00
i40e_fcoe.c
i40e_fcoe.h
i40e_hmc.c
i40e_hmc.h
i40e_lan_hmc.c
i40e_lan_hmc.h
i40e_main.c i40e/i40evf: Only track one ITR setting per ring instead of Tx/Rx 2018-02-12 10:27:12 -08:00
i40e_nvm.c i40e/i40evf: Enable NVMUpdate to retrieve AdminQ and add preservation flags for NVM update 2018-01-23 11:29:19 -08:00
i40e_osdep.h
i40e_prototype.h i40e: Display LLDP information on vSphere Web Client 2018-01-26 13:23:11 -08:00
i40e_ptp.c locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE() 2017-10-25 11:01:08 +02:00
i40e_register.h i40e: fix incorrect register definition 2017-10-06 08:11:31 -07:00
i40e_status.h i40e: Add returning AQ critical error to SW 2018-01-26 13:22:56 -08:00
i40e_trace.h
i40e_txrx.c i40e/i40evf: Clean up logic for adaptive ITR 2018-02-12 10:35:49 -08:00
i40e_txrx.h i40e/i40evf: Only track one ITR setting per ring instead of Tx/Rx 2018-02-12 10:27:12 -08:00
i40e_type.h i40e/i40evf: Enable NVMUpdate to retrieve AdminQ and add preservation flags for NVM update 2018-01-23 11:29:19 -08:00
i40e_virtchnl_pf.c i40e: add helper conversion function for link_speed 2018-01-10 12:41:21 -08:00
i40e_virtchnl_pf.h i40e: fix handling of vf_states variable 2017-10-02 12:46:35 -07:00
i40e.h i40e: change flags to use 64 bits 2018-01-26 13:23:15 -08:00
Makefile