igb: shorten maximum PHC timecounter update interval
authorMiroslav Lichvar <mlichvar@redhat.com>
Fri, 26 Oct 2018 17:13:00 +0000 (19:13 +0200)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 6 Nov 2018 20:54:27 +0000 (12:54 -0800)
commit4c9b658eeaefedd402a59e858d8ac3bfdf6153e3
tree1131ab8b79b517f4554c4a3141a58ca96c6adeef
parentd944b46992f8e99b6bdc721e44b02e5ca294fa2b
igb: shorten maximum PHC timecounter update interval

The timecounter needs to be updated at least once per ~550 seconds in
order to avoid a 40-bit SYSTIM timestamp to be misinterpreted as an old
timestamp.

Since commit 500462a9de65 ("timers: Switch to a non-cascading wheel"),
scheduling of delayed work seems to be less accurate and a requested
delay of 540 seconds may actually be longer than 550 seconds. Also, the
PHC may be adjusted to run up to 6% faster than real time and the system
clock up to 10% slower. Shorten the delay to 360 seconds to be sure the
timecounter is updated in time.

This fixes an issue with HW timestamps on 82580/I350/I354 being off by
~1100 seconds for few seconds every ~9 minutes.

Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
Acked-by: Jacob Keller <jacob.e.keller@intel.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/igb/igb_ptp.c