summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/i40e/i40e_txrx.c
diff options
context:
space:
mode:
authorKiran Patil <kiran.patil@intel.com>2015-11-06 15:26:02 -0800
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2015-12-03 02:23:31 -0800
commit9c6c12595b73e580f103b0812837f015034d460e (patch)
tree08c5a9ea8b32e9be73b40f69ceb99cac6810547c /drivers/net/ethernet/intel/i40e/i40e_txrx.c
parent05281eb8e1754688ecf07a63844c56c9f76b38ad (diff)
downloadtalos-op-linux-9c6c12595b73e580f103b0812837f015034d460e.tar.gz
talos-op-linux-9c6c12595b73e580f103b0812837f015034d460e.zip
i40e: Detection and recovery of TX queue hung logic moved to service_task from tx_timeout
This patch contains following changes: - detection and recovery logic (issue SW interrupt) has been moved to service_task from timeout function. - added some more debug info from tx_timeout. Logic to detect and recover TX queue hung is now two step process: - service_task detects TX queue hung and sets a bit(hung_detected) if it was not set. - if bit was set (means this is back-back hung condition detected), issue SW interrupt and clear the bit. - napi_poll clears the bit unconditionally since it cleans TX/RX queues. Change-ID: Ieed03a48927c845a988b3ff375090bf37caeb903 Signed-off-by: Kiran Patil <kiran.patil@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/i40e/i40e_txrx.c')
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_txrx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 7371df7b6fb0..1d7d01c723b9 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -1891,6 +1891,8 @@ int i40e_napi_poll(struct napi_struct *napi, int budget)
return 0;
}
+ /* Clear hung_detected bit */
+ clear_bit(I40E_Q_VECTOR_HUNG_DETECT, &q_vector->hung_detected);
/* Since the actual Tx work is minimal, we can give the Tx a larger
* budget and be more aggressive about cleaning up the Tx descriptors.
*/
OpenPOWER on IntegriCloud