[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <498F0ED9.1080906@goop.org>
Date: Sun, 08 Feb 2009 08:56:57 -0800
From: Jeremy Fitzhardinge <jeremy@...p.org>
To: James Bottomley <James.Bottomley@...senPartnership.com>
CC: linux-kernel <linux-kernel@...r.kernel.org>,
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
James Bottomley wrote:
> 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).
I floated an experimental patch to do just that last year. There were
concerns because it had a pretty significantly hit on the performance of
tlb-heavy benchmarks; and since then a multicast smp_call_function ends
up kmallocing, which probably won't help matters. I got called away to
other things before really exploring all the options here, so it may
well be worth reviving that work.
> 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.
This should be easy since you can can hook all the tlb operations via
pv_mmu_ops. And to avoid duplicating a lot of similar-looking code, you
could just do a generic smp_call_function-based version.
J
--
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