Re: [RFC PATCH 01/13] arm: Fix mutual exclusion in arch_gettimeoffset

From: Michael Schmitz
Date: Wed Nov 14 2018 - 20:34:35 EST



On 14/11/18 8:58 PM, Russell King - ARM Linux wrote:

Are you saying that's not possible on arm, because the current timer rundown
counter can't be read while the timer is running?

If I were to run a second timer at higher rate for clocksource, but keeping
the 10 ms timer as clock event (could easily do that by using timer D on
Atari Falcon) - how would that improve my timekeeping? Clock events still
only happen 10 ms apart ...
Ah, I think you're talking about something else.

You seem to be talking about what happens when time keeping interrupts
happen.
That's what I understood your comment was about.
I'm talking about the resolution of gettimeofday() and the other
interfaces that are used (eg) for packet capture timestamping and
the like - the _user_ visible effects of the timekeeping system.

With the existing implementation, all these have better-than-jiffy
resolution - in the case of RPC, that's 500ns, rather than 10ms
which would be the case without gettimeoffset(). Removing
gettimeoffset() as Finn has proposed without preserving that
resolution is simply completely unacceptable.

I agree - but Finn had also offered to supply patches to arm that would have added a clocksource_read() function very much like for those m68k platforms that had used gettimeoffset(). I wondered what reason there was for these not to work on arm

I now realize you'd never seen that offer.

The proposal to drop architectures still relying on arch_gettimeoffset() had been raising enough of a response on linux-m68k to make me conclude that same proposal had been kicked on to other arch MLs affected as well. I'm a bit naive that way.

Now your criticism of arch_gettimeoffset() (missing timer rollover because the timer interrupt has been cleared by the interrupt handler) still stands. I just can't find the offset() functions shown in the 5cfc8ee0bb51 patch. Any hints?

Cheers,

ÂÂÂ Michael