![]() | |||||||||||||
Messages in this thread |
Liu, Hong wrote:
> POSIX says: POSIX timers should not expire before their scheduled time.
>
> Due to the timer started between jiffies, there are cases that the timer
> will expire before its scheduled time.
> This patch ensures timers will not expire early.
>
> --- a/kernel/posix-timers.c 2005-03-10 15:46:27.329333664 +0800
> +++ b/kernel/posix-timers.c 2005-03-10 15:50:11.884196136 +0800
> @@ -957,7 +957,8 @@
> &expire_64, &(timr->wall_to_prev))) {
> return -EINVAL;
> }
> - timr->it_timer.expires = (unsigned long)expire_64;
> + timr->it_timer.expires = (unsigned long)expire_64 + 1;
> tstojiffie(&new_setting->it_interval, clock->res, &expire_64);
> timr->it_incr = (unsigned long)expire_64;
>
Has this happened?? The following code (in adjust_abs_time()) is supposed to
prevent this sort of thing:
if (oc.tv_sec | oc.tv_nsec) {
oc.tv_nsec += clock->res;
timespec_norm(&oc);
}
Also, we run rather extensive tests for this sort of thing.
--
George Anzinger george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
| ||||||||||||
| Last update: 2005-03-22 14:11 [from the cache] ©2003-2008 | |||||||||||||