Keller, Jacob E
2016-04-11 21:19:28 UTC
Hi,
I am experiencing an interesting issue on some devices. I know the
following scenario is not really a real world setup but it will help
outline the issue and whether we ought to make a change to LinuxPTP.
Say you have 3 netdevices capable of performing hardware timestamping
connected to a switch.
You run ptp4l on the first two devices and begin syncing.
Then you start ptp4l on the 3rd device, and begin syncing. After a
while you kill ptp4l on the 3rd device, but leave the first two
syncing.
The result in my case is that the 3rd device's driver complains about
latched Rx timestamp registers and times out. This occurs, I believe,
because the hardware performs the Rx timestamp and puts it into RX
timestamp registers before deciding if it should drop the multicast
frame (as the multicast subscription should be cleared when the socket
goes away, if I understand correctly).
Thus, since the launch of ptp4l enabled Rx timestamp settings, the
hardware will now continuously trigger rx timestamp hang logic in the
driver until the PTP traffic on the other two ports is stopped.
My question for this list: Should ptp4l be updated to include a signal
handler to trap the exit signal(s) and reset the timestamp logic upon
exit? Or is there a better way this could be updated/handled in the
kernel? or is this not really an issue, and my driver should be fixed?
I don't know if it is really possible to fix my driver, since currently
it doesn't know when Rx timestamps have been disabled.
Regards,
Jake
I am experiencing an interesting issue on some devices. I know the
following scenario is not really a real world setup but it will help
outline the issue and whether we ought to make a change to LinuxPTP.
Say you have 3 netdevices capable of performing hardware timestamping
connected to a switch.
You run ptp4l on the first two devices and begin syncing.
Then you start ptp4l on the 3rd device, and begin syncing. After a
while you kill ptp4l on the 3rd device, but leave the first two
syncing.
The result in my case is that the 3rd device's driver complains about
latched Rx timestamp registers and times out. This occurs, I believe,
because the hardware performs the Rx timestamp and puts it into RX
timestamp registers before deciding if it should drop the multicast
frame (as the multicast subscription should be cleared when the socket
goes away, if I understand correctly).
Thus, since the launch of ptp4l enabled Rx timestamp settings, the
hardware will now continuously trigger rx timestamp hang logic in the
driver until the PTP traffic on the other two ports is stopped.
My question for this list: Should ptp4l be updated to include a signal
handler to trap the exit signal(s) and reset the timestamp logic upon
exit? Or is there a better way this could be updated/handled in the
kernel? or is this not really an issue, and my driver should be fixed?
I don't know if it is really possible to fix my driver, since currently
it doesn't know when Rx timestamps have been disabled.
Regards,
Jake