Re: Questions about SMP bootup control

From: Andi Kleen
Date: Sun Mar 21 2010 - 23:29:15 EST


"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.
--
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/