On Apr 1 16:35, Jacob Keller wrote: > From: Christopher S M Hall <[email protected]> > > Writing to clear the PTM status 'valid' bit while the PTM cycle is > triggered results in unreliable PTM operation. To fix this, clear the > PTM 'trigger' and status after each PTM transaction. > > The issue can be reproduced with the following: > > $ sudo phc2sys -R 1000 -O 0 -i tsn0 -m > > Note: 1000 Hz (-R 1000) is unrealistically large, but provides a way to > quickly reproduce the issue. > > PHC2SYS exits with: > > "ioctl PTP_OFFSET_PRECISE: Connection timed out" when the PTM transaction > fails > > This patch also fixes a hang in igc_probe() when loading the igc > driver in the kdump kernel on systems supporting PTM. > > The igc driver running in the base kernel enables PTM trigger in > igc_probe(). Therefore the driver is always in PTM trigger mode, > except in brief periods when manually triggering a PTM cycle. > > When a crash occurs, the NIC is reset while PTM trigger is enabled. > Due to a hardware problem, the NIC is subsequently in a bad busmaster > state and doesn't handle register reads/writes. When running > igc_probe() in the kdump kernel, the first register access to a NIC > register hangs driver probing and ultimately breaks kdump. > > With this patch, igc has PTM trigger disabled most of the time, > and the trigger is only enabled for very brief (10 - 100 us) periods > when manually triggering a PTM cycle. Chances that a crash occurs > during a PTM trigger are not 0, but extremly reduced. > > Fixes: a90ec8483732 ("igc: Add support for PTP getcrosststamp()") > Reviewed-by: Michal Swiatkowski <[email protected]> > Tested-by: Mor Bar-Gabay <[email protected]> > Tested-by: Avigail Dahan <[email protected]> > Signed-off-by: Christopher S M Hall <[email protected]> > Reviewed-by: Corinna Vinschen <[email protected]> > Signed-off-by: Jacob Keller <[email protected]>
Tested-by: Corinna Vinschen <[email protected]>
