[Top] [All Lists]

Re: [PATCH 10/27] mips, smpboot: Use generic SMP booting infrastructure

To: Yong Zhang <>
Subject: Re: [PATCH 10/27] mips, smpboot: Use generic SMP booting infrastructure
From: "Srivatsa S. Bhat" <>
Date: Sun, 03 Jun 2012 17:18:16 +0530
Cc:,,,,,,,,,,, Ralf Baechle <>, Eric Dumazet <>, Mike Frysinger <>, David Howells <>, Arun Sharma <>,
In-reply-to: <20120603082507.GA16829@zhy>
List-archive: <>
List-help: <>
List-id: linux-mips <>
List-owner: <>
List-post: <>
List-software: Ecartis version 1.0.0
List-subscribe: <>
List-unsubscribe: <>
References: <> <> <20120603082507.GA16829@zhy>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120424 Thunderbird/12.0
On 06/03/2012 01:55 PM, Yong Zhang wrote:

> On Fri, Jun 01, 2012 at 02:42:32PM +0530, Srivatsa S. Bhat wrote:
>> Convert mips to use the generic framework to boot secondary CPUs.
>> Notes:
>> 1. The boot processor was setting the secondary cpu in cpu_online_mask!
>> Instead, leave it up to the secondary cpu (... and it will be done by the
>> generic code now).
>> 2. Make the boot cpu wait for the secondary cpu to be set in cpu_online_mask
>> before returning.
> We don't need to wait for both cpu_callin_map (The code above yours)
> any more.

Yes, I noticed that while writing the patch. But then, I thought of cleaning
up the hundreds of callin/callout/commenced maps in various architectures and
bringing them out into core code in a later series, and clean this up at that 
I didn't want to do too many invasive changes all at one-shot.

But I guess for this particular case of mips, I can get rid of the wait for
cpu_callin_map in this patchset itself. I'll update this patch with that change.


>> 3. Don't enable interrupts in cmp_smp_finish() and vsmp_smp_finish().
>> Do it much later, in generic code.
> Hmmm... the bad thing is that some board enable irq more early than
> ->smp_finish(), I have sent patches for that (by moving irq enable
> to smp_finish() and delaying smp_finish()).
> Please check patch#0001~patch#0004 in
>> 4. In synchronise_count_slave(), use local_save_flags() instead of
>> local_irq_save() because irqs are still disabled.
> We can just remove local_irq_save()/local_irq_restore() like:

So what is the status of those patches? Has anyone picked them up?

I could rebase this patch on top of yours, or better yet, if your
patches haven't been picked up yet, I could include them in this
patchset itself to avoid too many dependencies on external patches.

What do you say?

Srivatsa S. Bhat

<Prev in Thread] Current Thread [Next in Thread>