Re: x86: unify genapic code, unify subarchitectures, remove oldsubarchitecture code

From: Ingo Molnar
Date: Sun Feb 22 2009 - 18:26:16 EST



* James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote:

> > I ported the NUMAQ / Summit / bigsmp and ES7000
> > subarchitectures to the new setup. They build and boot on
> > regular hardware but are otherwise untested. The x86/Voyager
> > subarch is not fully ported yet (i cleaned up its Kconfig
> > impact) and hence disabled it for the time being. It ought
> > to be relatively straightforward to port it to the new code.
>
> OK, so I analysed the voyager requirements.
>
> The first simple one is that safe_smp_processor_id() and
> hard_smp_processor_id() need to be abstracted, probably
> through smp_ops. This one is probably trivial since 99% of the
> price of doing this has already been paid in the smp ops.
>
> The other big problem is mm/tlb.c. This directly uses genapic
> with 8 vectors which is impossible for voyager: the QIC only
> has 8 separate IPI vectors for everything. The two
> alternatives which spring to mind are either to rebase
> mm/tlb.c on top of smp_call_function. This would add a small
> amount to the critical path, but would also allow vector
> scaling beyond the current 8 IPI vectors to a per processor
> number (i.e. might scale better beyond 8 cores). Or to keep
> voyager separate and move pieces of paravirt ops (or rather a
> separated piece of pv_ops) into smp_ops to effect the
> separation. Instinct says to try the former first.

Ping - it's been two weeks now and i havent gotten any patches
from you and Voyager is still broken in the latest x86
development tree.

So we've queued up the patch below for now which removes the
Voyager subarch code. Let us know if you have any patches to
look at.

Thanks,

Ingo

-------------->