* [RFC PATCH v2 1/9] arm: avoid using on_each_cpu hard coded ret value
2012-01-08 13:32 [RFC PATCH v2 0/9] Remove useless on_each_cpu return value Gilad Ben-Yossef
@ 2012-01-08 13:32 ` Gilad Ben-Yossef
2012-01-08 16:12 ` Russell King - ARM Linux
2012-01-08 13:32 ` [RFC PATCH v2 2/9] ia64: " Gilad Ben-Yossef
` (7 subsequent siblings)
8 siblings, 1 reply; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
To: linux-kernel
Cc: Gilad Ben-Yossef, Will Deacon, Peter Zijlstra, Paul Mackerras,
Ingo Molnar, Arnaldo Carvalho de Melo, Russell King, Grant Likely,
Rob Herring, linux-arm-kernel, devicetree-discuss
on_each_cpu always returns a hard coded return code of zero.
Removing all tests based on this return value saves run time
cycles for compares and code bloat for branches.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: Will Deacon <will.deacon@arm.com>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
CC: Paul Mackerras <paulus@samba.org>
CC: Ingo Molnar <mingo@elte.hu>
CC: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
CC: Russell King <linux@arm.linux.org.uk>
CC: Grant Likely <grant.likely@secretlab.ca>
CC: Rob Herring <rob.herring@calxeda.com>
CC: linux-arm-kernel@lists.infradead.org
CC: devicetree-discuss@lists.ozlabs.org
---
arch/arm/kernel/perf_event.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index 5bb91bf..6e9acb7 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -616,7 +616,7 @@ static int __init
cpu_pmu_reset(void)
{
if (cpu_pmu && cpu_pmu->reset)
- return on_each_cpu(cpu_pmu->reset, NULL, 1);
+ on_each_cpu(cpu_pmu->reset, NULL, 1);
return 0;
}
arch_initcall(cpu_pmu_reset);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [RFC PATCH v2 1/9] arm: avoid using on_each_cpu hard coded ret value
2012-01-08 13:32 ` [RFC PATCH v2 1/9] arm: avoid using on_each_cpu hard coded ret value Gilad Ben-Yossef
@ 2012-01-08 16:12 ` Russell King - ARM Linux
2012-01-08 16:25 ` Gilad Ben-Yossef
0 siblings, 1 reply; 13+ messages in thread
From: Russell King - ARM Linux @ 2012-01-08 16:12 UTC (permalink / raw)
To: Gilad Ben-Yossef
Cc: linux-kernel, Will Deacon, Peter Zijlstra, Paul Mackerras,
Ingo Molnar, Arnaldo Carvalho de Melo, Grant Likely, Rob Herring,
linux-arm-kernel, devicetree-discuss
On Sun, Jan 08, 2012 at 03:32:21PM +0200, Gilad Ben-Yossef wrote:
> on_each_cpu always returns a hard coded return code of zero.
>
> Removing all tests based on this return value saves run time
> cycles for compares and code bloat for branches.
>
> Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
> CC: Will Deacon <will.deacon@arm.com>
> CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
> CC: Paul Mackerras <paulus@samba.org>
> CC: Ingo Molnar <mingo@elte.hu>
> CC: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
> CC: Russell King <linux@arm.linux.org.uk>
Reviewed-by: Russell King <rmk+kernel@arm.linux.org.uk>
> CC: Grant Likely <grant.likely@secretlab.ca>
> CC: Rob Herring <rob.herring@calxeda.com>
> CC: linux-arm-kernel@lists.infradead.org
> CC: devicetree-discuss@lists.ozlabs.org
> ---
> arch/arm/kernel/perf_event.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
> index 5bb91bf..6e9acb7 100644
> --- a/arch/arm/kernel/perf_event.c
> +++ b/arch/arm/kernel/perf_event.c
> @@ -616,7 +616,7 @@ static int __init
> cpu_pmu_reset(void)
> {
> if (cpu_pmu && cpu_pmu->reset)
> - return on_each_cpu(cpu_pmu->reset, NULL, 1);
> + on_each_cpu(cpu_pmu->reset, NULL, 1);
There's not much to review here...
Thanks.
> return 0;
> }
> arch_initcall(cpu_pmu_reset);
> --
> 1.7.0.4
>
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [RFC PATCH v2 1/9] arm: avoid using on_each_cpu hard coded ret value
2012-01-08 16:12 ` Russell King - ARM Linux
@ 2012-01-08 16:25 ` Gilad Ben-Yossef
0 siblings, 0 replies; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 16:25 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: linux-kernel, Will Deacon, Peter Zijlstra, Paul Mackerras,
Ingo Molnar, Arnaldo Carvalho de Melo, Grant Likely, Rob Herring,
linux-arm-kernel, devicetree-discuss
On Sun, Jan 8, 2012 at 6:12 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
<SNIP>
>> diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
>> index 5bb91bf..6e9acb7 100644
>> --- a/arch/arm/kernel/perf_event.c
>> +++ b/arch/arm/kernel/perf_event.c
>> @@ -616,7 +616,7 @@ static int __init
>> cpu_pmu_reset(void)
>> {
>> if (cpu_pmu && cpu_pmu->reset)
>> - return on_each_cpu(cpu_pmu->reset, NULL, 1);
>> + on_each_cpu(cpu_pmu->reset, NULL, 1);
>
> There's not much to review here...
Oh, I've introduced fatal bugs with less... :-)
Thanks for the review.
Gilad
--
Gilad Ben-Yossef
Chief Coffee Drinker
gilad@benyossef.com
Israel Cell: +972-52-8260388
US Cell: +1-973-8260388
http://benyossef.com
"Unfortunately, cache misses are an equal opportunity pain provider."
-- Mike Galbraith, LKML
^ permalink raw reply [flat|nested] 13+ messages in thread
* [RFC PATCH v2 2/9] ia64: avoid using on_each_cpu hard coded ret value
2012-01-08 13:32 [RFC PATCH v2 0/9] Remove useless on_each_cpu return value Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 1/9] arm: avoid using on_each_cpu hard coded ret value Gilad Ben-Yossef
@ 2012-01-08 13:32 ` Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 3/9] x86: " Gilad Ben-Yossef
` (6 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Gilad Ben-Yossef, Tony Luck, Fenghua Yu, linux-ia64
on_each_cpu always returns a hard coded return code of zero.
Removing all tests based on this return value saves run time
cycles for compares and code bloat for branches.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: Tony Luck <tony.luck@intel.com>
CC: Fenghua Yu <fenghua.yu@intel.com>
CC: linux-ia64@vger.kernel.org
---
arch/ia64/kernel/perfmon.c | 12 ++----------
1 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index 89accc6..eb7cfa5 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -6511,11 +6511,7 @@ pfm_install_alt_pmu_interrupt(pfm_intr_handler_desc_t *hdl)
}
/* save the current system wide pmu states */
- ret = on_each_cpu(pfm_alt_save_pmu_state, NULL, 1);
- if (ret) {
- DPRINT(("on_each_cpu() failed: %d\n", ret));
- goto cleanup_reserve;
- }
+ on_each_cpu(pfm_alt_save_pmu_state, NULL, 1);
/* officially change to the alternate interrupt handler */
pfm_alt_intr_handler = hdl;
@@ -6542,7 +6538,6 @@ int
pfm_remove_alt_pmu_interrupt(pfm_intr_handler_desc_t *hdl)
{
int i;
- int ret;
if (hdl == NULL) return -EINVAL;
@@ -6556,10 +6551,7 @@ pfm_remove_alt_pmu_interrupt(pfm_intr_handler_desc_t *hdl)
pfm_alt_intr_handler = NULL;
- ret = on_each_cpu(pfm_alt_restore_pmu_state, NULL, 1);
- if (ret) {
- DPRINT(("on_each_cpu() failed: %d\n", ret));
- }
+ on_each_cpu(pfm_alt_restore_pmu_state, NULL, 1);
for_each_online_cpu(i) {
pfm_unreserve_session(NULL, 1, i);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 13+ messages in thread* [RFC PATCH v2 3/9] x86: avoid using on_each_cpu hard coded ret value
2012-01-08 13:32 [RFC PATCH v2 0/9] Remove useless on_each_cpu return value Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 1/9] arm: avoid using on_each_cpu hard coded ret value Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 2/9] ia64: " Gilad Ben-Yossef
@ 2012-01-08 13:32 ` Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 4/9] alpha: " Gilad Ben-Yossef
` (5 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
To: linux-kernel
Cc: Gilad Ben-Yossef, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
x86
on_each_cpu always returns a hard coded return code of zero.
Removing all tests based on this return value saves run time
cycles for compares and code bloat for branches.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: x86@kernel.org
---
arch/x86/lib/cache-smp.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/x86/lib/cache-smp.c b/arch/x86/lib/cache-smp.c
index a3c6688..760f7e1 100644
--- a/arch/x86/lib/cache-smp.c
+++ b/arch/x86/lib/cache-smp.c
@@ -14,6 +14,7 @@ EXPORT_SYMBOL(wbinvd_on_cpu);
int wbinvd_on_all_cpus(void)
{
- return on_each_cpu(__wbinvd, NULL, 1);
+ on_each_cpu(__wbinvd, NULL, 1);
+ return 0;
}
EXPORT_SYMBOL(wbinvd_on_all_cpus);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 13+ messages in thread* [RFC PATCH v2 4/9] alpha: avoid using on_each_cpu hard coded ret value
2012-01-08 13:32 [RFC PATCH v2 0/9] Remove useless on_each_cpu return value Gilad Ben-Yossef
` (2 preceding siblings ...)
2012-01-08 13:32 ` [RFC PATCH v2 3/9] x86: " Gilad Ben-Yossef
@ 2012-01-08 13:32 ` Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 5/9] ppc: " Gilad Ben-Yossef
` (4 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
To: linux-kernel
Cc: Gilad Ben-Yossef, Richard Henderson, Ivan Kokshaysky, Matt Turner,
linux-alpha
on_each_cpu always returns a hard coded return code of zero.
Removing all tests based on this return value saves run time
cycles for compares and code bloat for branches.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: Richard Henderson <rth@twiddle.net>
CC: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
CC: Matt Turner <mattst88@gmail.com>
CC: linux-alpha@vger.kernel.org
---
arch/alpha/kernel/smp.c | 7 ++-----
1 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c
index 4087a56..97707e9 100644
--- a/arch/alpha/kernel/smp.c
+++ b/arch/alpha/kernel/smp.c
@@ -659,8 +659,7 @@ void
smp_imb(void)
{
/* Must wait other processors to flush their icache before continue. */
- if (on_each_cpu(ipi_imb, NULL, 1))
- printk(KERN_CRIT "smp_imb: timed out\n");
+ on_each_cpu(ipi_imb, NULL, 1);
}
EXPORT_SYMBOL(smp_imb);
@@ -675,9 +674,7 @@ flush_tlb_all(void)
{
/* Although we don't have any data to pass, we do want to
synchronize with the other processors. */
- if (on_each_cpu(ipi_flush_tlb_all, NULL, 1)) {
- printk(KERN_CRIT "flush_tlb_all: timed out\n");
- }
+ on_each_cpu(ipi_flush_tlb_all, NULL, 1);
}
#define asn_locked() (cpu_data[smp_processor_id()].asn_lock)
--
1.7.0.4
^ permalink raw reply related [flat|nested] 13+ messages in thread* [RFC PATCH v2 5/9] ppc: avoid using on_each_cpu hard coded ret value
2012-01-08 13:32 [RFC PATCH v2 0/9] Remove useless on_each_cpu return value Gilad Ben-Yossef
` (3 preceding siblings ...)
2012-01-08 13:32 ` [RFC PATCH v2 4/9] alpha: " Gilad Ben-Yossef
@ 2012-01-08 13:32 ` Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 6/9] agp: " Gilad Ben-Yossef
` (3 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
To: linux-kernel
Cc: Gilad Ben-Yossef, Benjamin Herrenschmidt, Paul Mackerras,
Grant Likely, Rob Herring, linuxppc-dev, devicetree-discuss
on_each_cpu always returns a hard coded return code of zero.
Removing all tests based on this return value saves run time
cycles for compares and code bloat for branches.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Paul Mackerras <paulus@samba.org>
CC: Grant Likely <grant.likely@secretlab.ca>
CC: Rob Herring <rob.herring@calxeda.com>
CC: linuxppc-dev@lists.ozlabs.org
CC: devicetree-discuss@lists.ozlabs.org
---
arch/powerpc/kernel/rtas.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index 517b1d8..829629e 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -850,8 +850,7 @@ int rtas_ibm_suspend_me(struct rtas_args *args)
/* Call function on all CPUs. One of us will make the
* rtas call
*/
- if (on_each_cpu(rtas_percpu_suspend_me, &data, 0))
- atomic_set(&data.error, -EINVAL);
+ on_each_cpu(rtas_percpu_suspend_me, &data, 0);
wait_for_completion(&done);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 13+ messages in thread* [RFC PATCH v2 6/9] agp: avoid using on_each_cpu hard coded ret value
2012-01-08 13:32 [RFC PATCH v2 0/9] Remove useless on_each_cpu return value Gilad Ben-Yossef
` (4 preceding siblings ...)
2012-01-08 13:32 ` [RFC PATCH v2 5/9] ppc: " Gilad Ben-Yossef
@ 2012-01-08 13:32 ` Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 7/9] drm: " Gilad Ben-Yossef
` (2 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Gilad Ben-Yossef, David Airlie
on_each_cpu always returns a hard coded return code of zero.
Removing all tests based on this return value saves run time
cycles for compares and code bloat for branches.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: David Airlie <airlied@linux.ie>
---
drivers/char/agp/generic.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
index b072648..b6a6f6f 100644
--- a/drivers/char/agp/generic.c
+++ b/drivers/char/agp/generic.c
@@ -1329,8 +1329,7 @@ static void ipi_handler(void *null)
void global_cache_flush(void)
{
- if (on_each_cpu(ipi_handler, NULL, 1) != 0)
- panic(PFX "timed out waiting for the other CPUs!\n");
+ on_each_cpu(ipi_handler, NULL, 1);
}
EXPORT_SYMBOL(global_cache_flush);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 13+ messages in thread* [RFC PATCH v2 7/9] drm: avoid using on_each_cpu hard coded ret value
2012-01-08 13:32 [RFC PATCH v2 0/9] Remove useless on_each_cpu return value Gilad Ben-Yossef
` (5 preceding siblings ...)
2012-01-08 13:32 ` [RFC PATCH v2 6/9] agp: " Gilad Ben-Yossef
@ 2012-01-08 13:32 ` Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 8/9] smp: refactor on_each_cpu to void returning func Gilad Ben-Yossef
2012-01-08 13:32 ` [RFC PATCH v2 9/9] x86: refactor wbinvd_on_all_cpus to void function Gilad Ben-Yossef
8 siblings, 0 replies; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
To: linux-kernel; +Cc: Gilad Ben-Yossef, David Airlie, dri-devel
on_each_cpu always returns a hard coded return code of zero.
Removing all tests based on this return value saves run time
cycles for compares and code bloat for branches.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: David Airlie <airlied@linux.ie>
CC: dri-devel@lists.freedesktop.org
---
drivers/gpu/drm/drm_cache.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_cache.c b/drivers/gpu/drm/drm_cache.c
index 5928653..668653c 100644
--- a/drivers/gpu/drm/drm_cache.c
+++ b/drivers/gpu/drm/drm_cache.c
@@ -75,8 +75,7 @@ drm_clflush_pages(struct page *pages[], unsigned long num_pages)
return;
}
- if (on_each_cpu(drm_clflush_ipi_handler, NULL, 1) != 0)
- printk(KERN_ERR "Timed out waiting for cache flush.\n");
+ on_each_cpu(drm_clflush_ipi_handler, NULL, 1);
#elif defined(__powerpc__)
unsigned long i;
--
1.7.0.4
^ permalink raw reply related [flat|nested] 13+ messages in thread* [RFC PATCH v2 8/9] smp: refactor on_each_cpu to void returning func
2012-01-08 13:32 [RFC PATCH v2 0/9] Remove useless on_each_cpu return value Gilad Ben-Yossef
` (6 preceding siblings ...)
2012-01-08 13:32 ` [RFC PATCH v2 7/9] drm: " Gilad Ben-Yossef
@ 2012-01-08 13:32 ` Gilad Ben-Yossef
2012-01-08 16:14 ` Russell King - ARM Linux
2012-01-08 13:32 ` [RFC PATCH v2 9/9] x86: refactor wbinvd_on_all_cpus to void function Gilad Ben-Yossef
8 siblings, 1 reply; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
To: linux-kernel
Cc: Gilad Ben-Yossef, David Airlie, dri-devel, Benjamin Herrenschmidt,
Paul Mackerras, Grant Likely, Rob Herring, linuxppc-dev,
devicetree-discuss, Richard Henderson, Ivan Kokshaysky,
Matt Turner, linux-alpha, Thomas Gleixner, Ingo Molnar,
H. Peter Anvin, x86, Tony Luck, Fenghua Yu, linux-ia64,
Will Deacon, Peter Zijlstra, Arnaldo Carvalho de Melo,
Russell King, linux-arm-kernel
on_each_cpu returns the retunr value of smp_call_function
which is hard coded to 0.
Refactor on_each_cpu to a void function and the few callers
that check the return value to save compares and branches.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: David Airlie <airlied@linux.ie>
CC: dri-devel@lists.freedesktop.org
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Paul Mackerras <paulus@samba.org>
CC: Grant Likely <grant.likely@secretlab.ca>
CC: Rob Herring <rob.herring@calxeda.com>
CC: linuxppc-dev@lists.ozlabs.org
CC: devicetree-discuss@lists.ozlabs.org
CC: Richard Henderson <rth@twiddle.net>
CC: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
CC: Matt Turner <mattst88@gmail.com>
CC: linux-alpha@vger.kernel.org
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: x86@kernel.org
CC: Tony Luck <tony.luck@intel.com>
CC: Fenghua Yu <fenghua.yu@intel.com>
CC: linux-ia64@vger.kernel.org
CC: Will Deacon <will.deacon@arm.com>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
CC: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
CC: Russell King <linux@arm.linux.org.uk>
CC: linux-arm-kernel@lists.infradead.org
---
include/linux/smp.h | 7 +++----
kernel/smp.c | 6 ++----
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 8cc38d3..050ddd4 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -99,7 +99,7 @@ static inline void call_function_init(void) { }
/*
* Call a function on all processors
*/
-int on_each_cpu(smp_call_func_t func, void *info, int wait);
+void on_each_cpu(smp_call_func_t func, void *info, int wait);
/*
* Mark the boot cpu "online" so that it can call console drivers in
@@ -126,12 +126,11 @@ static inline int up_smp_call_function(smp_call_func_t func, void *info)
#define smp_call_function(func, info, wait) \
(up_smp_call_function(func, info))
#define on_each_cpu(func,info,wait) \
- ({ \
+ { \
local_irq_disable(); \
func(info); \
local_irq_enable(); \
- 0; \
- })
+ }
static inline void smp_send_reschedule(int cpu) { }
#define num_booting_cpus() 1
#define smp_prepare_boot_cpu() do {} while (0)
diff --git a/kernel/smp.c b/kernel/smp.c
index db197d6..f66a1b2 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -687,17 +687,15 @@ void __init smp_init(void)
* early_boot_irqs_disabled is set. Use local_irq_save/restore() instead
* of local_irq_disable/enable().
*/
-int on_each_cpu(void (*func) (void *info), void *info, int wait)
+void on_each_cpu(void (*func) (void *info), void *info, int wait)
{
unsigned long flags;
- int ret = 0;
preempt_disable();
- ret = smp_call_function(func, info, wait);
+ smp_call_function(func, info, wait);
local_irq_save(flags);
func(info);
local_irq_restore(flags);
preempt_enable();
- return ret;
}
EXPORT_SYMBOL(on_each_cpu);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [RFC PATCH v2 8/9] smp: refactor on_each_cpu to void returning func
2012-01-08 13:32 ` [RFC PATCH v2 8/9] smp: refactor on_each_cpu to void returning func Gilad Ben-Yossef
@ 2012-01-08 16:14 ` Russell King - ARM Linux
0 siblings, 0 replies; 13+ messages in thread
From: Russell King - ARM Linux @ 2012-01-08 16:14 UTC (permalink / raw)
To: Gilad Ben-Yossef
Cc: linux-kernel, David Airlie, dri-devel, Benjamin Herrenschmidt,
Paul Mackerras, Grant Likely, Rob Herring, linuxppc-dev,
devicetree-discuss, Richard Henderson, Ivan Kokshaysky,
Matt Turner, linux-alpha, Thomas Gleixner, Ingo Molnar,
H. Peter Anvin, x86, Tony Luck, Fenghua Yu, linux-ia64,
Will Deacon, Peter Zijlstra, Arnaldo Carvalho de Melo,
linux-arm-kernel
On Sun, Jan 08, 2012 at 03:32:28PM +0200, Gilad Ben-Yossef wrote:
> on_each_cpu returns the retunr value of smp_call_function
> which is hard coded to 0.
>
> Refactor on_each_cpu to a void function and the few callers
> that check the return value to save compares and branches.
>
> Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
> CC: David Airlie <airlied@linux.ie>
> CC: dri-devel@lists.freedesktop.org
> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> CC: Paul Mackerras <paulus@samba.org>
> CC: Grant Likely <grant.likely@secretlab.ca>
> CC: Rob Herring <rob.herring@calxeda.com>
> CC: linuxppc-dev@lists.ozlabs.org
> CC: devicetree-discuss@lists.ozlabs.org
> CC: Richard Henderson <rth@twiddle.net>
> CC: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
> CC: Matt Turner <mattst88@gmail.com>
> CC: linux-alpha@vger.kernel.org
> CC: Thomas Gleixner <tglx@linutronix.de>
> CC: Ingo Molnar <mingo@redhat.com>
> CC: "H. Peter Anvin" <hpa@zytor.com>
> CC: x86@kernel.org
> CC: Tony Luck <tony.luck@intel.com>
> CC: Fenghua Yu <fenghua.yu@intel.com>
> CC: linux-ia64@vger.kernel.org
> CC: Will Deacon <will.deacon@arm.com>
> CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
> CC: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
> CC: Russell King <linux@arm.linux.org.uk>
As there's only one place in the ARM code where we look at the return
value, and you've patched that away in patch 1, this looks fine. I've
not checked for users outside of arch/arm, so:
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Thanks.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [RFC PATCH v2 9/9] x86: refactor wbinvd_on_all_cpus to void function
2012-01-08 13:32 [RFC PATCH v2 0/9] Remove useless on_each_cpu return value Gilad Ben-Yossef
` (7 preceding siblings ...)
2012-01-08 13:32 ` [RFC PATCH v2 8/9] smp: refactor on_each_cpu to void returning func Gilad Ben-Yossef
@ 2012-01-08 13:32 ` Gilad Ben-Yossef
8 siblings, 0 replies; 13+ messages in thread
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
To: linux-kernel
Cc: Gilad Ben-Yossef, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
x86
wbvind_on_all_cpus returns the value from on_each_cpu as return
value.
on_each_cpu always returns a hard coded zero value and none of
the callers to wbinvd_on_all_cpu check for its return value
so we might as well just drop it.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: x86@kernel.org
---
arch/x86/include/asm/smp.h | 5 ++---
arch/x86/lib/cache-smp.c | 3 +--
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 73b11bc..989e4a8 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -158,7 +158,7 @@ void native_cpu_die(unsigned int cpu);
void native_play_dead(void);
void play_dead_common(void);
void wbinvd_on_cpu(int cpu);
-int wbinvd_on_all_cpus(void);
+void wbinvd_on_all_cpus(void);
void native_send_call_func_ipi(const struct cpumask *mask);
void native_send_call_func_single_ipi(int cpu);
@@ -173,10 +173,9 @@ static inline int num_booting_cpus(void)
}
#else /* !CONFIG_SMP */
#define wbinvd_on_cpu(cpu) wbinvd()
-static inline int wbinvd_on_all_cpus(void)
+static inline void wbinvd_on_all_cpus(void)
{
wbinvd();
- return 0;
}
#endif /* CONFIG_SMP */
diff --git a/arch/x86/lib/cache-smp.c b/arch/x86/lib/cache-smp.c
index 760f7e1..db2eee1 100644
--- a/arch/x86/lib/cache-smp.c
+++ b/arch/x86/lib/cache-smp.c
@@ -12,9 +12,8 @@ void wbinvd_on_cpu(int cpu)
}
EXPORT_SYMBOL(wbinvd_on_cpu);
-int wbinvd_on_all_cpus(void)
+void wbinvd_on_all_cpus(void)
{
on_each_cpu(__wbinvd, NULL, 1);
- return 0;
}
EXPORT_SYMBOL(wbinvd_on_all_cpus);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 13+ messages in thread