public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched/idle: Drop !! while calculating 'broadcast'
@ 2014-06-24  4:31 Viresh Kumar
  2014-06-24  8:03 ` Peter Zijlstra
  2014-07-05 10:43 ` [tip:sched/core] sched/idle: Drop !! while calculating 'broadcast ' tip-bot for Viresh Kumar
  0 siblings, 2 replies; 6+ messages in thread
From: Viresh Kumar @ 2014-06-24  4:31 UTC (permalink / raw)
  To: mingo, peterz; +Cc: linux-kernel, linaro-kernel, Viresh Kumar

We don't need 'broadcast' to be set to 'zero or one', but to 'zero or non-zero'
and so the extra operation to convert it to 'zero or one' can be skipped.

Also change type of 'broadcast' to unsigned int, i.e. type of
drv->states[*].flags.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
Rebased over: 3.16-rc2.

 kernel/sched/idle.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
index cf009fb..9f1608f 100644
--- a/kernel/sched/idle.c
+++ b/kernel/sched/idle.c
@@ -79,7 +79,7 @@ static void cpuidle_idle_call(void)
 	struct cpuidle_device *dev = __this_cpu_read(cpuidle_devices);
 	struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
 	int next_state, entered_state;
-	bool broadcast;
+	unsigned int broadcast;
 
 	/*
 	 * Check if the idle task must be rescheduled. If it is the
@@ -135,7 +135,7 @@ use_default:
 		goto exit_idle;
 	}
 
-	broadcast = !!(drv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP);
+	broadcast = drv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP;
 
 	/*
 	 * Tell the time framework to switch to a broadcast timer
-- 
2.0.0.rc2


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

* Re: [PATCH] sched/idle: Drop !! while calculating 'broadcast'
  2014-06-24  4:31 [PATCH] sched/idle: Drop !! while calculating 'broadcast' Viresh Kumar
@ 2014-06-24  8:03 ` Peter Zijlstra
  2014-06-24 10:48   ` Viresh Kumar
  2014-06-24 12:18   ` Mike Galbraith
  2014-07-05 10:43 ` [tip:sched/core] sched/idle: Drop !! while calculating 'broadcast ' tip-bot for Viresh Kumar
  1 sibling, 2 replies; 6+ messages in thread
From: Peter Zijlstra @ 2014-06-24  8:03 UTC (permalink / raw)
  To: Viresh Kumar; +Cc: mingo, linux-kernel, linaro-kernel

On Tue, Jun 24, 2014 at 10:01:01AM +0530, Viresh Kumar wrote:
> We don't need 'broadcast' to be set to 'zero or one', but to 'zero or non-zero'
> and so the extra operation to convert it to 'zero or one' can be skipped.
> 
> Also change type of 'broadcast' to unsigned int, i.e. type of
> drv->states[*].flags.

All true; but does it change anything? That is, does your compiler
generate better code because of this?

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

* Re: [PATCH] sched/idle: Drop !! while calculating 'broadcast'
  2014-06-24  8:03 ` Peter Zijlstra
@ 2014-06-24 10:48   ` Viresh Kumar
  2014-06-24 12:18   ` Mike Galbraith
  1 sibling, 0 replies; 6+ messages in thread
From: Viresh Kumar @ 2014-06-24 10:48 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Ingo Molnar, Linux Kernel Mailing List, Lists linaro-kernel

On 24 June 2014 13:33, Peter Zijlstra <peterz@infradead.org> wrote:
> All true; but does it change anything? That is, does your compiler
> generate better code because of this?

Compilers are smart enough now a days and may not  perform !!
at all I believe.. And so this patch is more about code clarity ..

I tried comparing results for ARM and got this with/without
this patch ..

$ size ../bexynos/kernel/sched/idle.o
   text   data    bss    dec    hex filename
    690     30      0    720    2d0 ../bexynos/kernel/sched/idle.o

Don't know if some architectures are using somewhat dumb
compilers which might result in better code with this patch :)

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

* Re: [PATCH] sched/idle: Drop !! while calculating 'broadcast'
  2014-06-24  8:03 ` Peter Zijlstra
  2014-06-24 10:48   ` Viresh Kumar
@ 2014-06-24 12:18   ` Mike Galbraith
  2014-06-24 12:35     ` Viresh Kumar
  1 sibling, 1 reply; 6+ messages in thread
From: Mike Galbraith @ 2014-06-24 12:18 UTC (permalink / raw)
  To: Peter Zijlstra; +Cc: Viresh Kumar, mingo, linux-kernel, linaro-kernel

On Tue, 2014-06-24 at 10:03 +0200, Peter Zijlstra wrote: 
> On Tue, Jun 24, 2014 at 10:01:01AM +0530, Viresh Kumar wrote:
> > We don't need 'broadcast' to be set to 'zero or one', but to 'zero or non-zero'
> > and so the extra operation to convert it to 'zero or one' can be skipped.
> > 
> > Also change type of 'broadcast' to unsigned int, i.e. type of
> > drv->states[*].flags.
> 
> All true; but does it change anything? That is, does your compiler
> generate better code because of this?

x86_64 gcc-4.8.3 made 1 less instruction, a shift.

-Mike


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

* Re: [PATCH] sched/idle: Drop !! while calculating 'broadcast'
  2014-06-24 12:18   ` Mike Galbraith
@ 2014-06-24 12:35     ` Viresh Kumar
  0 siblings, 0 replies; 6+ messages in thread
From: Viresh Kumar @ 2014-06-24 12:35 UTC (permalink / raw)
  To: Mike Galbraith
  Cc: Peter Zijlstra, Ingo Molnar, Linux Kernel Mailing List,
	Lists linaro-kernel

On 24 June 2014 17:48, Mike Galbraith <umgwanakikbuti@gmail.com> wrote:
> x86_64 gcc-4.8.3 made 1 less instruction, a shift.

I thought about doing this test for x86 as well, and over-estimated
compilers intelligence. I must have done it :)

And finally this patch is worth more than I originally estimated :)

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

* [tip:sched/core] sched/idle: Drop !! while calculating 'broadcast '
  2014-06-24  4:31 [PATCH] sched/idle: Drop !! while calculating 'broadcast' Viresh Kumar
  2014-06-24  8:03 ` Peter Zijlstra
@ 2014-07-05 10:43 ` tip-bot for Viresh Kumar
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot for Viresh Kumar @ 2014-07-05 10:43 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, peterz, viresh.kumar, tglx

Commit-ID:  89abb5ad10ae8ac3405e635ac80815f781c8b8e9
Gitweb:     http://git.kernel.org/tip/89abb5ad10ae8ac3405e635ac80815f781c8b8e9
Author:     Viresh Kumar <viresh.kumar@linaro.org>
AuthorDate: Tue, 24 Jun 2014 10:01:01 +0530
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Sat, 5 Jul 2014 11:17:31 +0200

sched/idle: Drop !! while calculating 'broadcast'

We don't need 'broadcast' to be set to 'zero or one', but to 'zero or non-zero'
and so the extra operation to convert it to 'zero or one' can be skipped.

Also change type of 'broadcast' to unsigned int, i.e. type of
drv->states[*].flags.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Cc: linaro-kernel@lists.linaro.org
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/0dfbe2976aa108c53e08d3477ea90f6360c1f54c.1403584026.git.viresh.kumar@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 kernel/sched/idle.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
index cf009fb..9f1608f 100644
--- a/kernel/sched/idle.c
+++ b/kernel/sched/idle.c
@@ -79,7 +79,7 @@ static void cpuidle_idle_call(void)
 	struct cpuidle_device *dev = __this_cpu_read(cpuidle_devices);
 	struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
 	int next_state, entered_state;
-	bool broadcast;
+	unsigned int broadcast;
 
 	/*
 	 * Check if the idle task must be rescheduled. If it is the
@@ -135,7 +135,7 @@ use_default:
 		goto exit_idle;
 	}
 
-	broadcast = !!(drv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP);
+	broadcast = drv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP;
 
 	/*
 	 * Tell the time framework to switch to a broadcast timer

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

end of thread, other threads:[~2014-07-05 10:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-24  4:31 [PATCH] sched/idle: Drop !! while calculating 'broadcast' Viresh Kumar
2014-06-24  8:03 ` Peter Zijlstra
2014-06-24 10:48   ` Viresh Kumar
2014-06-24 12:18   ` Mike Galbraith
2014-06-24 12:35     ` Viresh Kumar
2014-07-05 10:43 ` [tip:sched/core] sched/idle: Drop !! while calculating 'broadcast ' tip-bot for Viresh Kumar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox