>> > I would like to provide a way for user space to inform the kernel >> > that the persistent clock drifts so it can make a corresponding >> > adjustment when resuming from a long suspend period. >> > >> > In my use case it would be enough for me to set this parameter on >> > boot. In use cases with continuous network access, NTP daemons >> > could be enhanced to periodically update this parameter with the >> > daemon's best estimate of the persistent clock drift. >> >> That needs some thought. The RTC people (cc'ed now) might have opionions >> on that. >> > > The RTC subsystem already has two interfaces to correct the drift of an > RTC. However, this is currently limited to RTC that have hardware > support for this feature. I guess we could had software emulation of the > feature to be able to correct for any RTCs but this will raise many > design questions, like how often the correction has to happen, what to > do with RTC that have a counter that doesn't reset when setting their > time, etc... > > I guess this would be able to solve your particular issue has you will > need a mechanism to handle when you overshoot the regular correction > timer. > > However, everything falls down once the machine is turned off, making > the whole effort moot... Today two mechanism are regularly used to correct for rtc drift while the machine is powered off: the hwclock program and chronyd with the "-s" option. They both rely on the RTC running at the same rate when the machine is on or off. So I agree with you that trying to emulate hardware RTC drift correction in software is not going to work well.