• Jacob Keller's avatar
    i40e: replace PTP Rx timestamp hang logic · 12490501
    Jacob Keller authored
    The current Rx timestamp hang logic is not very robust because it does
    not notice a register is hung until all four timestamps have been
    latched and we wait a full 5 seconds. Replace this logic with a newer Rx
    hang detection based on storing the jiffies when we first notice
    a receive timestamp event. We store each register's time separately,
    along with a flag indicating if it is currently latched. Upon first
    transitioning to latch, we will update the latch_events[i] jiffies
    value. This indicates the time we first noticed this event. The watchdog
    routine will simply check that the either the flag has been cleared, or
    we have passed at least one second. In this case, it is able to clear
    the Rx timestamp register under the assumption that it was for a dropped
    frame. The benefit if this strategy is that we should be able to
    detect and clear out stalled RXTIME_H registers before we exhaust the
    supply of 4, and avoid complete stall of Rx timestamp events.
    
    Change-ID: Id55458c0cd7a5dd0c951ff2b8ac0b2509364131f
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    12490501
i40e_ptp.c 23 KB