[PATCH] arm: spin one more cycle in timer-based delays
Peter Zijlstra
peterz at infradead.org
Fri Nov 18 06:42:10 PST 2016
On Fri, Nov 18, 2016 at 03:18:58PM +0100, Mason wrote:
> If I understand correctly, udelay is, in fact, a wrapper around
> several possible implementations. (Run-time decision on arch/arm)
>
> 1) The "historical" software loop-based method, which is calibrated
> during init.
>
> 2) A hardware solution, based on an actual timer, ticking away
> at a constant frequency.
I'd say clock, a timer would imply interrupts or somesuch, which is of
course not useful for udelay.
x86 with TSC uses this, although recent chips have grown an timed-mwait
instruction and that too can be used.
The TSC based ones (including the mwait) try very hard to not return
early.
> 3) others?
On x86 there's a variant that times itself based on io port accesses
which have a 'known' slowness.
More information about the linux-arm-kernel
mailing list