Re: nfs+tcp boot failures on linuxnext-20180924 from switch tcp_clock_ns to CLOCK_TAI

From: Eric Dumazet
Date: Wed Sep 26 2018 - 22:18:47 EST




On 09/26/2018 06:15 PM, Leonard Crestez wrote:
> Hello,
>
> It seems that after commit 72b0094f9182 ("tcp: switch tcp_clock_ns() to
> CLOCK_TAI base") some systems that use nfs over tcp fail to boot. The
> last line printed in the log is from systemd:
>
> [ 7.232579] systemd[1]: System time before build time, advancing clock.
>
> Superficially it looks like very large clock discontinuities now break
> TCP. Maybe boottime could avoid such issues?
>
> I didn't find similar reports anywhere else. The machines Iâm seeing
> this are all 32bit arm imx (this shouldnât matter) and it seems their
> RTC isnât properly setup so they boot with realtime set to unix zero,
> then a ~50 years jump happens when systemd starts up. This is the
> likely trigger for this issue.
>

Thanks for the report.

It is annoying, because SCM_TXTIME and net/sched/sch_etf.c are using CLOCK_TAI,
so it means that if we convert TCP (and net/sched/sch_fq.c) back to ktime_get_ns(),
we will have to differentiate in skbs the clock base.

This has been discussed in the past (When ETF was merged in 4.19) and we chose
to use a common clock base.