[PATCH 3/3] PowerPC/mpc85xx: Add hotplug support on E6500 cores

Chenhui Zhao chenhui.zhao at freescale.com
Thu Aug 6 14:32:21 AEST 2015



On Thu, Aug 6, 2015 at 11:16 AM, Scott Wood <scottwood at freescale.com> 
wrote:
> On Wed, 2015-08-05 at 19:08 +0800, Chenhui Zhao wrote:
>>  On Sat, Aug 1, 2015 at 8:22 AM, Scott Wood <scottwood at freescale.com>
>>  wrote:
>>  > On Fri, 2015-07-31 at 17:20 +0800,  b29983 at freescale.comwrote:
>>  > >  +             /*
>>  > >  +              * If both threads are offline, reset core to 
>> start.
>>  > >  +              * When core is up, Thread 0 always gets up 
>> first,
>>  > >  +              * so bind the current logical cpu with Thread 0.
>>  > >  +              */
>>  > >  +             if (hw_cpu != cpu_first_thread_sibling(hw_cpu)) {
>>  > >  +                     int hw_cpu1, hw_cpu2;
>>  > >  +
>>  > >  +                     hw_cpu1 = 
>> get_hard_smp_processor_id(primary);
>>  > >  +                     hw_cpu2 = 
>> get_hard_smp_processor_id(primary +
>>  > > 1);
>>  > >  +                     set_hard_smp_processor_id(primary, 
>> hw_cpu2);
>>  > >  +                     set_hard_smp_processor_id(primary + 1,
>>  > > hw_cpu1);
>>  > >  +                     /* get new physical cpu id */
>>  > >  +                     hw_cpu = get_hard_smp_processor_id(nr);
>>  >
>>  > NACK as discussed in http://patchwork.ozlabs.org/patch/454944/
>>  >
>>  > -Scott
>> 
>>  You said,
>> 
>>      There's no need for this. I have booting from a thread1, and 
>> having
>>  it
>>      kick its thread0, working locally without messing with the 
>> hwid/cpu
>>      mapping.
>> 
>>  I still have questions here. After a core reset, how can you boot
>>  Thread1
>>  of the core first. As I know, Thread0 boots up first by default.
> 
> So the issue isn't that thread1 comes up first, but that you *want* 
> thread1
> to come up first and it won't.  I don't think this remapping is an 
> acceptable
> answer, though.  Instead, if you need only thread1 to come up, start 
> the
> core, have thread0 start thread1, and then send thread0 into whatever 
> waiting
> state it would be in if thread1 had never been offlined.
> 
> -Scott

Remapping is a concise solution. what's the harm of it?
Keeping things simple is good in my opinion.

-Chenhui





More information about the Linuxppc-dev mailing list