2010-08-17 06:38:03

by Changli Gao

[permalink] [raw]
Subject: [PATCH] timer: initialize the field slack of timer_list

TIMER_INITIALIZER() should initialize the field slack of timer_list as
__init_timer() does.

Signed-off-by: Changli Gao <[email protected]>
---
include/linux/timer.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/linux/timer.h b/include/linux/timer.h
index 38cf093..81de484 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -54,6 +54,7 @@ extern struct tvec_base boot_tvec_bases;
.expires = (_expires), \
.data = (_data), \
.base = &boot_tvec_bases, \
+ .slack = -1, \
__TIMER_LOCKDEP_MAP_INITIALIZER( \
__FILE__ ":" __stringify(__LINE__)) \
}


2010-08-19 23:56:03

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] timer: initialize the field slack of timer_list

On Tue, 17 Aug 2010 14:37:44 +0800
Changli Gao <[email protected]> wrote:

> TIMER_INITIALIZER() should initialize the field slack of timer_list as
> __init_timer() does.
>

So it should.

> ---
> include/linux/timer.h | 1 +
> 1 file changed, 1 insertion(+)
> diff --git a/include/linux/timer.h b/include/linux/timer.h
> index 38cf093..81de484 100644
> --- a/include/linux/timer.h
> +++ b/include/linux/timer.h
> @@ -54,6 +54,7 @@ extern struct tvec_base boot_tvec_bases;
> .expires = (_expires), \
> .data = (_data), \
> .base = &boot_tvec_bases, \
> + .slack = -1, \
> __TIMER_LOCKDEP_MAP_INITIALIZER( \
> __FILE__ ":" __stringify(__LINE__)) \
> }

I wonder what the runtime effects of this change are. Methinks we were
wasting a few cycles in apply_slack()?