Re: [PATCH net] net: stmmac: ensure PTP time register reads are consistent

From: Yannick Vignon
Date: Thu Feb 03 2022 - 11:38:22 EST


On 2/3/2022 5:28 PM, Russell King (Oracle) wrote:
On Thu, Feb 03, 2022 at 05:00:25PM +0100, Yannick Vignon wrote:
From: Yannick Vignon <yannick.vignon@xxxxxxx>

Even if protected from preemption and interrupts, a small time window
remains when the 2 register reads could return inconsistent values,
each time the "seconds" register changes. This could lead to an about
1-second error in the reported time.

Have you checked whether the hardware protects against this (i.o.w. the
hardware latches the PTP_STSR value when PTP_STNSR is read, or vice
versa? Several PTP devices I've looked at do this to allow consistent
reading.


It doesn't. I was able to observe inconsistent values doing reads in either order, and we had already observed the issue with that same IP on another device (Cortex-M based, not running Linux). It's not easy to reproduce, the time window is small, but it's there.