[Intel-wired-lan] [PATCH v4 00/15] ptp cornercase cleanups

Jacob Keller jacob.e.keller at intel.com
Wed May 3 17:28:49 UTC 2017


This series contains fixes for similar corner cases in the e1000e, igb,
i40e, and ixgbe drivers reported by David Mirabito on the ptp4l mailing
list.

The first few patches fix a race condition with skb_tstamp_tx(). The
next few patches ensure that we cleanup the state bit when exiting the
_xmit_frame_ring() function with a DMA or TSO failure. After this, we
add new statistic to count how many times the Tx timestamp is skipped
due to already outstanding requests. The final few patches add some
handling in the potential case where we somehow never finish a timestamp
request, ensuring that we don't permanently lock the Tx timestamps
forever in this rare case.

Changes in v4
- Split the driver patches at request of Shannon Nelson
- Updated commit messages, but code content should be identical

I apologize in advance, the patchworks will not track this properly
because I necessarily changed the commit subjects when splitting the
patches apart by driver.

Jacob Keller (15):
  e1000e: fix race condition around skb_tstamp_tx()
  i40e: fix race condition with PTP_TX_IN_PROGRESS bits
  igb: fix race condition with PTP_TX_IN_PROGRESS bits
  ixgbe: fix race condition with PTP_TX_IN_PROGRESS bits
  i40e: avoid permanent lock of *_PTP_TX_IN_PROGRESS
  igb: avoid permanent lock of *_PTP_TX_IN_PROGRESS
  ixgbe: avoid permanent lock of *_PTP_TX_IN_PROGRESS
  e1000e: add statistic indicating number of skipped Tx timestamps
  i40e: add statistic indicating number of skipped Tx timestamps
  igb: add statistic indicating number of skipped Tx timestamps
  ixgbe: add statistic indicating number of skipped Tx timestamps
  i40e: use pf data structure directly in i40e_ptp_rx_hang
  i40e: check for Tx timestamp timeouts during watchdog
  igb: check for Tx timestamp timeouts during watchdog
  ixgbe: check for Tx timestamp timeouts during watchdog

 drivers/net/ethernet/intel/e1000e/e1000.h        |  1 +
 drivers/net/ethernet/intel/e1000e/ethtool.c      |  1 +
 drivers/net/ethernet/intel/e1000e/netdev.c       | 27 ++++++++-----
 drivers/net/ethernet/intel/i40e/i40e.h           |  5 ++-
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c   |  1 +
 drivers/net/ethernet/intel/i40e/i40e_main.c      |  3 +-
 drivers/net/ethernet/intel/i40e/i40e_ptp.c       | 48 +++++++++++++++++++++---
 drivers/net/ethernet/intel/i40e/i40e_txrx.c      | 28 +++++++++++---
 drivers/net/ethernet/intel/igb/igb.h             |  2 +
 drivers/net/ethernet/intel/igb/igb_ethtool.c     |  1 +
 drivers/net/ethernet/intel/igb/igb_main.c        | 26 ++++++++++---
 drivers/net/ethernet/intel/igb/igb_ptp.c         | 41 +++++++++++++++++++-
 drivers/net/ethernet/intel/ixgbe/ixgbe.h         |  2 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c |  3 ++
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c    | 42 ++++++++++++++-------
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c     | 42 +++++++++++++++++++--
 16 files changed, 227 insertions(+), 46 deletions(-)

-- 
2.13.0.rc0.317.gcc792a6cad5a



More information about the Intel-wired-lan mailing list