Re: [patch 0/2] Introduce round_jiffies() to save spurious wakeups

Christoph Hellwig
2006-10-11T17:23:36Z

On Tue, Oct 10, 2006 at 06:02:45PM +0200, Arjan van de Ven wrote:
> Hi,
>
> the following 2 patches will introduce the round_jiffies() api and users
> thereof.
>
> The general idea is that by rounding the jiffies for certain timers to
> the next whole second will make those timers all happen at the same
> time; and thus reduce the number of times the cpu has to wake up to
> service timers (this assumes a tickless kernel)
>
> Obviously only timers where the exact time of firing isn't so important
> can do this; several of the recurring "always live" timers of the kernel
> are of this kind, they want "about once a second" or "about once every 4
> seconds" and such, and don't really care about the exact jiffy in which
> they fire.
>
> An alternative would have been to introduce mod_timer_rounded() or
> somesuch APIs (but there's many variants that take jiffies); I feel that
> an explicit caller based rounding actually is quite reasonable.

I think the API you proposed is horrible. Having jiffies exposed in
ani API is a mistake, and adding more makes this problem worse. I'd suggest
to start with Alan's patches that add a timer variant that takes a miliseconds
argument instead of jiffies and add a _rounded varaint to it that has
a new parameter that specifies the precision.