[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1234102566.4244.7.camel@localhost.localdomain>
Date: Sun, 08 Feb 2009 14:16:06 +0000
From: James Bottomley <James.Bottomley@...senPartnership.com>
To: linux-kernel <linux-kernel@...r.kernel.org>
Cc: Ingo Molnar <mingo@...e.hu>, hpa <hpa@...or.com>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: x86: unify genapic code, unify subarchitectures, remove old
subarchitecture code
> 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.
James
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists