public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Boot cpu != cpu 0 ?
@ 2009-11-27  9:33 Nikita V. Youshchenko
  2009-11-27 10:33 ` Andi Kleen
  0 siblings, 1 reply; 2+ messages in thread
From: Nikita V. Youshchenko @ 2009-11-27  9:33 UTC (permalink / raw)
  To: linux-kernel

Hi

How hard it could be to build a system on multi-core arm hardware, that has 
linux SMP running in cores other than 0th ?

Say, if bootloader starts kernel on hardware core 1, will kernel be able to 
work (and use cores 1,2,3 on 4-core hardware) after some tweaking? 
Or "boot cpu" concept is uncouplable from "hardware core 0" by 
architecture? 

I'm asking because there is a project with a strict requerement to have 
core 0 reserved and not touched by linux, and I need to understand how 
realistic it is.

Thanks for any hints.

Nikita

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Boot cpu != cpu 0 ?
  2009-11-27  9:33 Boot cpu != cpu 0 ? Nikita V. Youshchenko
@ 2009-11-27 10:33 ` Andi Kleen
  0 siblings, 0 replies; 2+ messages in thread
From: Andi Kleen @ 2009-11-27 10:33 UTC (permalink / raw)
  To: Nikita V. Youshchenko; +Cc: linux-kernel

"Nikita V. Youshchenko" <yoush@cs.msu.su> writes:

> How hard it could be to build a system on multi-core arm hardware, that has 
> linux SMP running in cores other than 0th ?
>
> Say, if bootloader starts kernel on hardware core 1, will kernel be able to 
> work (and use cores 1,2,3 on 4-core hardware) after some tweaking? 
> Or "boot cpu" concept is uncouplable from "hardware core 0" by 
> architecture? 
>
> I'm asking because there is a project with a strict requerement to have 
> core 0 reserved and not touched by linux, and I need to understand how 
> realistic it is.

You need to be clear what CPU 0 means. It could be "Linux CPU
number 0" That will be always there (it's hard coded), but that's
really only a numbering convention inside a kernel that essentially
says "nth booted CPU"

Then there's the APIC ID, which is the number the CPU hardware
knows about. There's a APIC ID == 0. Linux does not rely
on CPU #0 having APIC ID 0, at least not in principle
(this has regressed occasionally in the past)

The larger problem with sharing cores like this is the memory map --
e.g. you would need to coordinate which kernels owns which hardware
and which memory, which is not trivial without help. The usual way to
do this is to use a VM.

-Andi
-- 
ak@linux.intel.com -- Speaking for myself only.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-11-27 10:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-27  9:33 Boot cpu != cpu 0 ? Nikita V. Youshchenko
2009-11-27 10:33 ` Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox