2009-04-09 14:55:23

by Jon Hunter

[permalink] [raw]
Subject: [PATCH] Allow deferrable timers for intervals tv2-tv5 to be deferred

In the current kernel implementation only kernel timers for time
interval tv1 are being deferred. This patch allows any timer that is
configured as deferrable to be defer regardless of time interval.

This patch was previously discussed on another the thread [1] and Ack'ed
by Venki Pallipadi the author of the original deferrable timer patch.

Venki, could you also ack this patch for confirmation?

Cheers
Jon

[1] http://marc.info/?l=linux-kernel&m=123196343531966&w=2


Signed-off-by: Jon Hunter <[email protected]>
---
kernel/timer.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/kernel/timer.c b/kernel/timer.c
index b455556..6ab6e96 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1012,6 +1012,9 @@ cascade:
index = slot = timer_jiffies & TVN_MASK;
do {
list_for_each_entry(nte, varp->vec + slot, entry) {
+ if (tbase_get_deferrable(nte->base))
+ continue;
+
found = 1;
if (time_before(nte->expires, expires))
expires = nte->expires;
--
1.6.1


2009-04-09 16:21:02

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: Re: [PATCH] Allow deferrable timers for intervals tv2-tv5 to be deferred

On Thu, 2009-04-09 at 07:54 -0700, Jon Hunter wrote:
> In the current kernel implementation only kernel timers for time
> interval tv1 are being deferred. This patch allows any timer that is
> configured as deferrable to be defer regardless of time interval.
>
> This patch was previously discussed on another the thread [1] and Ack'ed
> by Venki Pallipadi the author of the original deferrable timer patch.
>
> Venki, could you also ack this patch for confirmation?
>
> Cheers
> Jon
>
> [1] http://marc.info/?l=linux-kernel&m=123196343531966&w=2
>
>

Acked-by: Venkatesh Pallipadi <[email protected]>

> Signed-off-by: Jon Hunter <[email protected]>
> ---
> kernel/timer.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/kernel/timer.c b/kernel/timer.c
> index b455556..6ab6e96 100644
> --- a/kernel/timer.c
> +++ b/kernel/timer.c
> @@ -1012,6 +1012,9 @@ cascade:
> index = slot = timer_jiffies & TVN_MASK;
> do {
> list_for_each_entry(nte, varp->vec + slot, entry) {
> + if (tbase_get_deferrable(nte->base))
> + continue;
> +
> found = 1;
> if (time_before(nte->expires, expires))
> expires = nte->expires;