Re: [Linuxptp-users] Support for latest igb driver?
PTP IEEE 1588 stack for Linux
Brought to you by:
rcochran
From: Richard C. <ric...@gm...> - 2016-12-21 21:53:46
|
On Wed, Dec 21, 2016 at 04:26:16PM -0500, Rich Schmidt wrote: > I've been testing linuxptp for about a year (now version 1.8) and am still > seeing the following failure always after 8 or more days of successful > operation: > ptp4l[4906544.301]: port 1: delay timeout > ptp4l[4906545.303]: timed out while polling for tx timestamp > ptp4l[4906545.303]: increasing tx_timestamp_timeout may correct this issue, > but it is likely cause > d by a driver bug > ptp4l[4906545.303]: port 1: send delay request failed I don't recalling seeing this myself, but still this is the second such igb failure report I have received recently. I wonder whether the incorrect double TSICR acknowledge is the root cause. In igb_main.c we have: static void igb_tsync_interrupt(struct igb_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; struct ptp_clock_event event; struct timespec64 ts; u32 ack = 0, tsauxc, sec, nsec, tsicr = rd32(E1000_TSICR); ... /* acknowledge the interrupts */ wr32(E1000_TSICR, ack); } According to the datasheet, the first rd32() should already acknowledge the interrupts, but the 82580 (iirc) has a bug that requires the additional wr32(). Try removing that last line, and see if things improve... Thanks, Richard |