*Driver*: ixgbe 5.12.5
*Chipset*: X550T
*Kernel*: 5.5.0.90-low-latency

Hi,

I noticed an interesting behavior with the latest ixgbe driver. It appears
the chipset in our NIC supports PPS. This is a cool feature but there was
no obvious way to disable it or deterministicly control it.

We use our system as a PTP grandmaster. Our clock source is PPS and NTP. We
had an older system that worked without issue. We'd ldattach our PPS serial
source and it'd create a new /dev/pps0 device. NTP was configured to listen
to this PPS source and then we'd distribute our system time over PTP. Easy.

The new system and subsequently newer ixgbe driver, creates its own PPS
devices "/dev/ppsX" for each NIC. But it does so in an unpredictable and
uncontrollable way. To add to the chaos, ldattach doesn't let you specify
the /dev/ppsX destination for serial based PPS. It adds them based on the
next available /dev/ppsX index. So it is impossible to guarantee what pps
source gets mounted to what /dev/ppsX path on boot.

Here is an example of dmesg | grep pps

$ dmesg | grep pps
[    1.653643] pps_core: LinuxPPS API ver. 1 registered
[    1.653643] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
Rodolfo Giometti <giome...@linux.it>
[    5.077901] pps_ldisc: PPS line discipline registered
[    6.336828] pps pps0: new PPS source ptp13
[    6.743492] pps pps1: new PPS source rp27
[    6.743498] pps pps1: source "/dev/ttyRP7" added
[    6.793021] pps pps2: new PPS source ptp14

ptp13 and ptp14 are coming from the X550T


In order to solve this issue I disabled pps in the xgbe driver for my
chipset (src/ixgbe-ptp.c:1453). After the change:

$ dmesg | grep pps
[    1.644702] pps_core: LinuxPPS API ver. 1 registered
[    1.644702] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
Rodolfo Giometti <giome...@linux.it>
[    5.985348] pps_ldisc: PPS line discipline registered
[    7.691682] pps pps0: new PPS source rp27
[    7.691689] pps pps0: source "/dev/ttyRP7" added


Is there a better way to control the behavior of the PPS source creation?
Either enable/disable or configure the /dev/ppsX destination?

Thanks,
Daniel Nugent

_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel Ethernet, visit 
https://forums.intel.com/s/topic/0TO0P00000018NbWAI/intel-ethernet

Reply via email to