Re: [RFC][PATCH] Introduce CLOCK_REALTIME_COARSE

From: Ingo Molnar
Date: Sat Jul 18 2009 - 08:10:46 EST



* john stultz <johnstul@xxxxxxxxxx> wrote:

> Hey all,
>
> After talking with some application writers who want very
> fast, but not fine-grained timestamps, I decided to try to
> implement a new clock_ids to clock_gettime():
> CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE which returns the
> time at the last tick. This is very fast as we don't have to
> access any hardware (which can be very painful if you're using
> something like the acpi_pm clocksource), and we can even use the
> vdso clock_gettime() method to avoid the syscall. The only trade
> off is you only get low-res tick grained time resolution.
>
> This isn't a new idea, I know Ingo pushed a patch (see commit
> 5899a0f044f3c80e9f7262ec5bc7164773a4c28e) a little while ago that
> made the vsyscall gettimeofday() return coarse grained time when
> the vsyscall64 sysctrl was set to 2. However this affects all
> applications on a system.

Note, that patch is an -rt commit, right? I.e. not yet upstream.

> With this method, applications can choose the proper
> speed/granularity trade-off for themselves.
>
> This is a first pass on this implementation, and while I did test
> it, the box I tested it with did not have a glibc new enough to
> utilize the vdso clock_gettime(), so there may still be issues
> there. I'll find a newer box for testing shortly.
>
> Any thoughts or feedback will be appreciated!

Looks good. I think we should offer both methods: your patch as an
unconditional 'coarse time' approximator always available
everywhere, plus the vsyscall redirector as well from -rt, to allow
admins/users to tweak in a global way on apps that cannot be
changed.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/