Re: [patch 08/34] arm: Use generic idle loop

Paul E. McKenney
2013-05-01T00:55:35Z

On Tue, Apr 30, 2013 at 05:49:06PM -0700, Stephen Boyd wrote:
> On 04/25/13 14:01, Thomas Gleixner wrote:
> > On Thu, 25 Apr 2013, Stephen Boyd wrote:
> >> On 04/09/13 02:38, Russell King - ARM Linux wrote:
> >>> On Tue, Apr 09, 2013 at 11:20:31AM +0200, Thomas Gleixner wrote:
> >>>> On Mon, 8 Apr 2013, Russell King - ARM Linux wrote:
> >>>>> On Mon, Mar 25, 2013 at 03:02:39PM +0100, Thomas Gleixner wrote:
> >>>>> So, how can I review these changes when all there is is a git URL, and
> >>>>> I *do* not want to pull them into my tree without first looking at the
> >>>>> patches, possibly reviewing them and *replying* with the patch inline?
> >>>> the patches were CC'ed to LKML and linux-arch and I expected that you
> >>>> are at least having the latter. Find the relevant patch inlined below.
> >>> I've not been on linux-arch for a few years now, after it evolved into
> >>> yet another lkml-like list with high traffic rates, where mainly specific
> >>> x86 issues seemed to be discussed, rather than it being a way to contact
> >>> all arch maintainers.
> >>>
> >>>> It is a counter. I looked carefully at all the various slightly
> >>>> differently fcked up implementations and picked the counter based one
> >>>> as it fits all requirements.
> >>> Great, thanks. The attached patch looks fine to me.
> >> I'm pretty sure that we need to apply this patch now that
> >> rcu_idle_enter()/exit() is called lower down in the idle loop. Kevin,
> >> did you test hotplug?
> > If the patch is agreed on, I guess I should take it via my idle
> > consolidation branch, right ?
>
> Yes I think so. Hopefully Russell King or Paul McKenney can ack this patch.
>
> >
> >> ----8<-----
> >>
> >> From: Stephen Boyd <sboyd@codeaurora.org>
> >> Subject: [PATCH] ARM: smp: Drop RCU_NONIDLE usage in cpu_die()
> >>
> >> Before f7b861b (arm: Use generic idle loop, 2013-03-21) ARM would
> >> kill the CPU within the rcu idle section. Now that the
> >> rcu_idle_enter()/exit() pair have been pushed lower down in the
> >> idle loop this is no longer true and so using RCU_NONIDLE here is
> >> no longer necessary and also harmful because RCU is not actually
> >> idle at this point.
> >>
> >> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>

>From an RCU perspective:

Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

> >> ---
> >> arch/arm/kernel/smp.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
> >> index 4619177..78f1eb5 100644
> >> --- a/arch/arm/kernel/smp.c
> >> +++ b/arch/arm/kernel/smp.c
> >> @@ -233,7 +233,7 @@ void __ref cpu_die(void)
> >> mb();
> >>
> >> /* Tell __cpu_die() that this CPU is now safe to dispose of */
> >> - RCU_NONIDLE(complete(&cpu_died));
> >> + complete(&cpu_died);
> >>
> >> /*
> >> * actual CPU shutdown procedure is at least platform (if not
> >>
> >> --
> >> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> >> hosted by The Linux Foundation
> >>
> >>
>
>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> hosted by The Linux Foundation
>