[RFC/PATCH 2/2] powerpc: 44x doesn't need G set everywhere
Josh Boyer
jwboyer at linux.vnet.ibm.com
Thu Dec 11 00:31:43 EST 2008
On Wed, 10 Dec 2008 16:50:50 +1100
Benjamin Herrenschmidt <benh at kernel.crashing.org> wrote:
> After discussing with chip designers, it appears that it's not
> necessary to set G everywhere on 440 cores. The various core
> errata related to prefetch should be sorted out by firmware by
> disabling icache prefetching in CCR0. We add the workaround to
> the kernel however just in case oooold firmwares don't do it.
>
> This is valid for -all- 4xx core variants. Later ones hard wire
> the absence of prefetch but it doesn't harm to clear the bits
> in CCR0 (they should already be cleared anyway).
>
> We still leave G=1 on the linear mapping for now, we need to
> stop over-mapping RAM to be able to remove it.
Hm. Over-mapping it has the nice advantage that we use as few pinned
TLB entries as possible. For 440x6 cores with more than 256 MiB of
DRAM, you could theoretically use a single 1GiB TLB entry to map all
kernel DRAM.
Do you think the trade-offs of allowing speculative accesses are worth
the increased TLB pressure? Large base pages will help with that in
some workloads, but others are still going to be TLB constrained.
I know, I'm probably paranoid. But changing things like this around
without some kind of benchmark data or testcase to make sure we aren't
making it worse gives me the heebee-geebees.
josh
More information about the Linuxppc-dev
mailing list