Re: [PATCH net-next 5/5] ptp: start virtual clocks at current system time.
From: Richard Cochran <richardcochran@gmail.com>
Date: 2022-02-01 19:10:50
On Tue, Feb 01, 2022 at 09:42:07AM +0100, Miroslav Lichvar wrote:
On Mon, Jan 31, 2022 at 08:32:40AM -0800, Richard Cochran wrote:quoted
On Mon, Jan 31, 2022 at 11:21:08AM +0100, Miroslav Lichvar wrote:quoted
To me, it seems very strange to start the PHC at 0. It makes the initial clock correction unnecessarily larger by ~7 orders of magnitude. The system clock is initialized from the RTC, which can have an error comparable to the TAI-UTC offset, especially if the machine was turned off for a longer period of time, so why not initialize the PHC from the system time? The error is much smaller than billions of seconds.When the clock reads Jan 1, 1970, then that is clearly wrong, and so a user might suspect that it is uninititalized.FWIW, my first thought when I saw the huge offset in ptp4l was that something is horribly broken.
Yes, that is my point! Although you may have jumped to conclusions about the root cause, still the zero value got your attention. It is just too easy for people to see the correct date and time (down to the minute) and assume all is okay.
I'd prefer smaller initial error and consistency. The vast majority of existing drivers seem to initialize the clock at current system time. Drivers starting at 0 now create confusion. If this is the right way, shouldn't be all existing drivers patched to follow that?
I agree that consistency is good, and I would love to get rid of all that ktime_get usage, but maybe people will argue against it for their beloved driver. Going forward, I'm asking that new drivers start from zero for an "uninitialized" clock. Thanks, Richard