Eric Lowe wrote:
Holger Berger wrote:
I wasn't directly involved in the 64K prototype but only 64K and
larger
were used for user applications, and the page_t was 64K in span
(PAGESIZE=65536). There may have been some 8K mappings in the
kernel due
to OBP handing off translation lists with holes -- I don't remember
the
details there.
OK I asked for you -- OBP does everything with 8K pages, so we run into
trouble when trying to remap OBP's translations into the kernel (which
includes a good portion of the kernel itself). As a result, with a 64K
pagesize kernel you still end up with a bunch of 8K translations in the
kernel.
Since these hunks of memory don't have page_t's -- they exist long before
the kernel initializes the virtual memory system -- it's mainly a problem
for US-III+/IV/IV+ processors since we have to keep one of the big TLBs
programmed for 8K in nucleus (kernel) context. That leads to greater TLB
pressure on the 64K kernel pages and in a loss of associativity which
generates more conflict misses on the 8K translations.
The SPARC boot rewrite (to use GRUB to boot the kernel instead of relying
on the 1275 interfaces for early system services) should help alleviate
this problem, but it's still a ways off.
- Eric
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org