All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.