LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] Optimise tick_nohz_stop_sched_tick() a bit
@ 2008-02-28 14:10 Karsten Wiese
  2008-02-29  1:16 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Karsten Wiese @ 2008-02-28 14:10 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andrew Morton, Thomas Gleixner, Ingo Molnar


Call
	ts = &per_cpu(tick_cpu_sched, cpu);
and
	cpu = smp_processor_id();
once instead of twice.

No functional change done, as changed code runs with local irq off.
Reduces source lines and text size (20bytes on x86_64).

Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
---
 kernel/time/tick-sched.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 686da82..851a852 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -158,9 +158,8 @@ void tick_nohz_stop_idle(int cpu)
 	}
 }
 
-static ktime_t tick_nohz_start_idle(int cpu)
+static ktime_t tick_nohz_start_idle(int cpu, struct tick_sched *ts)
 {
-	struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
 	ktime_t now, delta;
 
 	now = ktime_get();
@@ -201,8 +200,8 @@ void tick_nohz_stop_sched_tick(void)
 	local_irq_save(flags);
 
 	cpu = smp_processor_id();
-	now = tick_nohz_start_idle(cpu);
 	ts = &per_cpu(tick_cpu_sched, cpu);
+	now = tick_nohz_start_idle(cpu, ts);
 
 	/*
 	 * If this cpu is offline and it is the one which updates
@@ -222,7 +221,6 @@ void tick_nohz_stop_sched_tick(void)
 	if (need_resched())
 		goto end;
 
-	cpu = smp_processor_id();
 	if (unlikely(local_softirq_pending())) {
 		static int ratelimit;
 
-- 
1.5.3.3

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Optimise tick_nohz_stop_sched_tick() a bit
  2008-02-28 14:10 [PATCH] Optimise tick_nohz_stop_sched_tick() a bit Karsten Wiese
@ 2008-02-29  1:16 ` Andrew Morton
  2008-02-29 15:57   ` Thomas Gleixner
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2008-02-29  1:16 UTC (permalink / raw)
  To: Karsten Wiese; +Cc: linux-kernel, Thomas Gleixner, Ingo Molnar

On Thu, 28 Feb 2008 15:10:50 +0100 Karsten Wiese <fzu@wemgehoertderstaat.de> wrote:

> 
> Call
> 	ts = &per_cpu(tick_cpu_sched, cpu);
> and
> 	cpu = smp_processor_id();
> once instead of twice.
> 
> No functional change done, as changed code runs with local irq off.
> Reduces source lines and text size (20bytes on x86_64).
> 
> Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
> ---
>  kernel/time/tick-sched.c |    6 ++----
>  1 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
> index 686da82..851a852 100644
> --- a/kernel/time/tick-sched.c
> +++ b/kernel/time/tick-sched.c
> @@ -158,9 +158,8 @@ void tick_nohz_stop_idle(int cpu)
>  	}
>  }
>  
> -static ktime_t tick_nohz_start_idle(int cpu)
> +static ktime_t tick_nohz_start_idle(int cpu, struct tick_sched *ts)

Argument `cpu' is now unused.

>  {
> -	struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
>  	ktime_t now, delta;
>  
>  	now = ktime_get();
> @@ -201,8 +200,8 @@ void tick_nohz_stop_sched_tick(void)
>  	local_irq_save(flags);
>  
>  	cpu = smp_processor_id();
> -	now = tick_nohz_start_idle(cpu);
>  	ts = &per_cpu(tick_cpu_sched, cpu);
> +	now = tick_nohz_start_idle(cpu, ts);
>  
>  	/*
>  	 * If this cpu is offline and it is the one which updates
> @@ -222,7 +221,6 @@ void tick_nohz_stop_sched_tick(void)
>  	if (need_resched())
>  		goto end;
>  
> -	cpu = smp_processor_id();
>  	if (unlikely(local_softirq_pending())) {
>  		static int ratelimit;
>  


--- a/kernel/time/tick-sched.c~optimise-tick_nohz_stop_sched_tick-a-bit-fix
+++ a/kernel/time/tick-sched.c
@@ -158,7 +158,7 @@ void tick_nohz_stop_idle(int cpu)
 	}
 }
 
-static ktime_t tick_nohz_start_idle(int cpu, struct tick_sched *ts)
+static ktime_t tick_nohz_start_idle(struct tick_sched *ts)
 {
 	ktime_t now, delta;
 
@@ -200,7 +200,7 @@ void tick_nohz_stop_sched_tick(void)
 
 	cpu = smp_processor_id();
 	ts = &per_cpu(tick_cpu_sched, cpu);
-	now = tick_nohz_start_idle(cpu, ts);
+	now = tick_nohz_start_idle(ts);
 
 	/*
 	 * If this cpu is offline and it is the one which updates
_


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Optimise tick_nohz_stop_sched_tick() a bit
  2008-02-29  1:16 ` Andrew Morton
@ 2008-02-29 15:57   ` Thomas Gleixner
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Gleixner @ 2008-02-29 15:57 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Karsten Wiese, linux-kernel, Ingo Molnar

On Thu, 28 Feb 2008, Andrew Morton wrote:
> On Thu, 28 Feb 2008 15:10:50 +0100 Karsten Wiese <fzu@wemgehoertderstaat.de> wrote:
> -static ktime_t tick_nohz_start_idle(int cpu, struct tick_sched *ts)
> +static ktime_t tick_nohz_start_idle(struct tick_sched *ts)
>  {
>  	ktime_t now, delta;
>  
> @@ -200,7 +200,7 @@ void tick_nohz_stop_sched_tick(void)
>  
>  	cpu = smp_processor_id();
>  	ts = &per_cpu(tick_cpu_sched, cpu);
> -	now = tick_nohz_start_idle(cpu, ts);
> +	now = tick_nohz_start_idle(ts);
>  
>  	/*
>  	 * If this cpu is offline and it is the one which updates

Combined patch applied to hrt.git

Thanks,

	tglx


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-02-29 15:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-28 14:10 [PATCH] Optimise tick_nohz_stop_sched_tick() a bit Karsten Wiese
2008-02-29  1:16 ` Andrew Morton
2008-02-29 15:57   ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).