New "timeout" api, to replace callout
Luigi Rizzo
rizzo at icir.org
Sun Dec 2 07:28:15 PST 2007
On Sun, Dec 02, 2007 at 03:08:41PM +0000, Poul-Henning Kamp wrote:
> In message <20071202055031.A8107 at xorpc.icir.org>, Luigi Rizzo writes:
>
>
> >This is why i suggest having a 'scale' that can represent '1 tick'
> >(and also don't depend on TIMEOUT_MSEC == 1000 and so on, but keep
> >them opaque and require that the client code uses one of the supported
> >scales).
>
>
> Using a deadline timer based in the HPET, the timeout can be scheduled
> to any 1/14318181th of a second
This must obviously come for a price or there would be no reason to
provide 'millisecond' and 'second' precisions that you suggested.
I agree that the API should not assume that the hardware is based on
a periodic timer, but in the same way it should not assume that
the hardware can generate arbitrary timeouts.
Secondy:
> and there will be no concept of "a
> tick" as we know it now.
> Clients should say how often they want to be called, and they should
> express it in terms of time, not based on some implementation detail
> of a historical implementation of the scheduler.
"periodically with whatever period is convenient to you" is
a legitimate request that client code might have.
(I understand that this concept of time is very southern european :)
It wouldn't make sense to do poll-based event handling at the same
rate on a 133MHz soekris or on a 3 GHz multicore cpu.
Even if you kick HZ out of your API, it will come back
in some indirect form.
In any case: in terms of API it costs absolutely nothing to support
system-dependent resolutions instead of absolute ones, so
i don't quite understand the opposition.
cheers
luigi
More information about the freebsd-arch
mailing list