RE: Questions about SMP bootup control

From: Zhu, Yijun (NSN - CN/Beijing)
Date: Mon Mar 22 2010 - 03:46:00 EST




-----Original Message-----
From: ext Andi Kleen [mailto:andi@xxxxxxxxxxxxxx]
Sent: Monday, March 22, 2010 11:29 AM
To: Zhu, Yijun (NSN - CN/Beijing)
Cc: linux-kernel@xxxxxxxxxxxxxxx; linux-arch@xxxxxxxxxxxxxxx
Subject: Re: Questions about SMP bootup control

"Zhu, Yijun (NSN - CN/Beijing)" <yijun.zhu@xxxxxxx> writes:

> Hi All:
>
> I want to do some modification on the SMP architecture.
>
> Purpose:
> Only the first CPU is running the linux OS, while others do some
private
> services processing.
>
> My solution:
> In the end of the start_secondary() function, I try to schedu the
slave
> cpu to call my private endless loop instead of cpu_idle();
>
> Result:
> The system can NOT up, there is no interactive cli.
>
> Question:
> Is there some wrong with my modification or I go to the wrong way?


> Presumably you're doing this to own that CPU exclusively.
>
> Hooking at cpu_idle is not very useful then because interrupts will be
> already enabled and the system participate in IPIs etc, so you can't
> simply disable them, the others will miss them.
>
> You would rather need to prevent them from being started in the
> first place, e.g. by exluding them with maxcpus=..
>
> A better alternative might be to use isolcpus=... and schedule
> a standard program.
>
> -Andi
> --
> ak@xxxxxxxxxxxxxxx -- Speaking for myself only.

Thank you very much. But when I try to apply with the isolcpus opinion,
It seems it still can NOT work.
All other CPUs are isolated, only the first one is left.
Then I found all others are still initialized by the start_secondary()
even I use the isolated opinion, in the end,
I add an endless loop instead of cpu_idle(), The system still can NOT
up.

So is there any mistake in what I did, could someone be kindness to give
me more suggestions.

Thanks in advance.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/