Re: [PATCH] rtc: class: Fix max epoch in rtc_hctosys on 32-bit systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 18 Feb 2025 at 17:39, Alexandre Belloni
<alexandre.belloni@xxxxxxxxxxx> wrote:
>
> On 18/02/2025 17:05:23+0100, Arnd Bergmann wrote:
> > On Tue, Feb 18, 2025, at 16:40, Alexandre Belloni wrote:
> > > On 18/02/2025 15:51:24+0100, Arnd Bergmann wrote:
> > >> On Tue, Feb 18, 2025, at 14:30, Alexandre Belloni wrote:
> > >>
> > >> I don't know how many 32-bit machines are affected by the bug
> > >> where they return a random time, or if they are more or less
> > >> common than in the past.
> > >
> > > This is going to break some of the Marvell board that RMK uses because I
> > > guess he is not updating his userspace.
> > >
> > > Also, I'd note that OpenEmbedded switched to 64-bit time_t by default
> > > just last year.
> > >
> > > I'm not against removing the workaround but keeping it doesn't actually
> > > break anyone, it is still possible to set the time properly from
> > > userspace as it should be done anyway so I'm not sure about the urgency.
> > > The impact is mostly about messages timestamp in the boot log, before
> > > being able to run hwclock or any similar tool.
> > >
> > > Or am I missing anything?
> >
> > The main problem with the current approach is that it suddenly
> > breaks systems in the future (at the time_t overflow), which is
> > the opposite of how the rest of the time_t conversion worked.
>
> Yes, it will suddenly stop setting the time on boot which the platform
> can (and will) survive because it will probably then start NTP. However,
> without the workaround, systemd will just crash on boot, bricking the
> device. So as I see it, on one hand, I have mostly recoverable breakage
> and on the other breakage that mean going on the field and reflashing
> the device because the system will probably not be able to do any OTA
> anymore.

You guys think that all devices have a network connection? Even in 2038
I don't think that will be anywhere close to true, since there are a ton of
32-bit embedded devices out there running linux with no network.
Just my company has thousands.

I'm using rtc-pcf8563 with systemd on i.MX6 (majority has no internet), and
I just removed this check locally. That way my devices can keep time until
2070 (EPOCH+100Y), which is currently the upper limit of the rtc-pcf8563.

>
> >
> > We now have distros with systemd that advertize support [1],
> > and we know this breaks every single machine they run on that
> > uses an RTC to set the time.
>
> No, this breaks systems that only rely on RTC_HCTOSYS without a
> fallback.
>
> RTC_HCTOSYS alone is anyway pretty bad idea and no one interested in
> time should use it because it can be off up to a second which can take
> 4 to 7 days to resolve by selewing and not stepping. Anyone serious
> should use hwclock or similar to set the system time precisely after
> boot so the offset will be closer to a few ms.
>

Suits me fine. I do think that documenting this would be nice, since most of the
hardware seems to be able to handle dates after Y2038 - it's mostly a userspace
issue now.

-- 
Regards
Einar Jón





[Index of Archives]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux