On Fri, 6 Jul 2012 03:24:00 +0900, <[email protected]> wrote: > > This is a note to let you know that I've just added the patch titled > > ARM: fix rcu stalls on SMP platforms > > to the 3.0-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git; > a=summary > > The filename of the patch is: > arm-fix-rcu-stalls-on-smp-platforms.patch > and it can be found in the queue-3.0 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let <[email protected]> know about it.
Greg, this patch must be changed slightly for stable 3.0 tree, because some back-ports on ltsi-3.0 are missing. I'll send another patch later. Sorry for confusion. > From 7deabca0acfe02b8e18f59a4c95676012f49a304 Mon Sep 17 00:00:00 2001 > From: Russell King <[email protected]> > Date: Thu, 19 Jan 2012 15:20:58 +0000 > Subject: ARM: fix rcu stalls on SMP platforms > > From: Russell King <[email protected]> > > commit 7deabca0acfe02b8e18f59a4c95676012f49a304 upstream. > > We can stall RCU processing on SMP platforms if a CPU sits in its idle > loop for a long time. This happens because we don't call irq_enter() > and irq_exit() around generic_smp_call_function_interrupt() and > friends. Add the necessary calls, and remove the one from within > ipi_timer(), so that they're all in a common place. > > Signed-off-by: Russell King <[email protected]> > Signed-off-by: UCHINO Satoshi <[email protected]> > Signed-off-by: Greg Kroah-Hartman <[email protected]> > > --- > arch/arm/kernel/smp.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > --- a/arch/arm/kernel/smp.c > +++ b/arch/arm/kernel/smp.c > @@ -445,9 +445,7 @@ static DEFINE_PER_CPU(struct clock_event > static void ipi_timer(void) > { > struct clock_event_device *evt = > &__get_cpu_var(percpu_clockevent); > - irq_enter(); > evt->event_handler(evt); > - irq_exit(); > } > > #ifdef CONFIG_LOCAL_TIMERS > @@ -568,7 +566,9 @@ asmlinkage void __exception_irq_entry do > > switch (ipinr) { > case IPI_TIMER: > + irq_enter(); > ipi_timer(); > + irq_exit(); > break; > > case IPI_RESCHEDULE: > @@ -576,15 +576,21 @@ asmlinkage void __exception_irq_entry do > break; > > case IPI_CALL_FUNC: > + irq_enter(); > generic_smp_call_function_interrupt(); > + irq_exit(); > break; > > case IPI_CALL_FUNC_SINGLE: > + irq_enter(); > generic_smp_call_function_single_interrupt(); > + irq_exit(); > break; > > case IPI_CPU_STOP: > + irq_enter(); > ipi_cpu_stop(cpu); > + irq_exit(); > break; > > default: > > > Patches currently in stable-queue which might be from > [email protected] are > > queue-3.0/arm-fix-rcu-stalls-on-smp-platforms.patch Thanks, Uchino -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
