linux/drivers/net/ethernet/intel/igb
Matthew Vick fc58075116 igb: Add mechanism for detecting latched hardware Rx timestamp
Add a check against possible Rx timestamp freezing in the hardware via
watchdog mechanism. This situation can occur when an Rx timestamp has been
latched, but the packet has been dropped because the Rx ring is full.

Whenever a packet comes in that should be timestamped, the Rx timestamp
gets latched into the hardware registers and we will store the jiffy value
in the rx_ring. The watchdog will keep track of his own jiffy timer
whenever there is no valid timestamp in the registers.

If the watchdog detects a valid timestamp in the registers, meaning that no
Rx packet has consumed it yet, it will check which time is most recent: the
last time in the watchdog or any time in the rx_rings. If the most recent
"event" was more than 5 seconds ago, it will flush the Rx timestamp and
print a warning message to the syslog.

Cc: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Matthew Vick <matthew.vick@intel.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Acked-by: Jacob Keller <Jacob.e.keller@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2013-01-18 04:58:09 -08:00
..
e1000_82575.c igb: Enable hwmon data output for thermal sensors via I2C. 2013-01-18 04:55:28 -08:00
e1000_82575.h igb: Enable hwmon data output for thermal sensors via I2C. 2013-01-18 04:55:28 -08:00
e1000_defines.h igb: Add support functions to access thermal data. 2013-01-18 04:55:24 -08:00
e1000_hw.h igb: Enable hwmon data output for thermal sensors via I2C. 2013-01-18 04:55:28 -08:00
e1000_i210.c igb: Refactoring of i210 file. 2012-12-01 03:04:12 -08:00
e1000_i210.h igb: Updates to read nvm function for i211 device 2012-12-01 02:41:39 -08:00
e1000_mac.c igb: Fix SerDes autoneg flow control. 2012-12-01 03:30:20 -08:00
e1000_mac.h igb: Add function to read i211's invm version 2012-11-01 02:35:52 -07:00
e1000_mbx.c igb: Update Copyright on all Intel copyrighted files. 2012-01-19 12:35:06 -05:00
e1000_mbx.h igb: Update Copyright on all Intel copyrighted files. 2012-01-19 12:35:06 -05:00
e1000_nvm.c igb: Acquire, release semaphore for writing each EEPROM page 2012-12-01 02:49:17 -08:00
e1000_nvm.h igb: Update firmware version info for ethtool output. 2012-10-29 23:49:29 -07:00
e1000_phy.c igb: Enable auto-crossover during forced operation on 82580 and above. 2012-10-29 23:49:11 -07:00
e1000_phy.h igb: Clear Go Link Disconnect for 82580 and later devices 2012-11-13 14:18:14 -05:00
e1000_regs.h igb: Add support functions to access thermal data. 2013-01-18 04:55:24 -08:00
igb_ethtool.c igb: Add mechanism for detecting latched hardware Rx timestamp 2013-01-18 04:58:09 -08:00
igb_hwmon.c igb: Enable hwmon data output for thermal sensors via I2C. 2013-01-18 04:55:28 -08:00
igb_main.c igb: Add mechanism for detecting latched hardware Rx timestamp 2013-01-18 04:58:09 -08:00
igb_ptp.c igb: Add mechanism for detecting latched hardware Rx timestamp 2013-01-18 04:58:09 -08:00
igb.h igb: Add mechanism for detecting latched hardware Rx timestamp 2013-01-18 04:58:09 -08:00
Makefile igb: Enable hwmon data output for thermal sensors via I2C. 2013-01-18 04:55:28 -08:00