Support for mapping the kernel heap with large pages was added in S10 update 2,
but by default is only enabled for systems with 1GB of memory or more.  You
can lower this threshold by setting the segkmem_lpminphysmem tunable
in /etc/system.  The default kernel large page size is 4M on USII systems,
and should give best performance, but you can experiment with 64K if you wish
by setting segkmem_lpsize in /etc/system.  The USIIi TLB is fully associative,
so there is no disadvantage in enabling a mixture of page sizes on the system.

Over time, physical memory fragmentation may cause attempts to allocate a large
page for the kernel heap to fail, in which case small pages are used.  You can
avoid this by estimating your kernel heap memory demand and preallocating a
large page kernel heap area at boot time, by setting the segkmem_kmemlp_min
tunable in /etc/system.

All of these tunables have units of bytes.

- Steve Sistare

Raymond wrote On 08/01/06 09:33,:
Hi, I'm running Solaris 10 update 2 on Ultra 10 that has 440MHz USIIi CPU. When 
I run 'trapstat -T' I notice that Solaris kernel is mainly using 8k pages and 
about 9% of the time is spent on handling TLB misses in the kernel.

I've set the following variables in /etc/profile to force userland applications 
to use 64k pages

LD_PRELOAD=mpss.so.1
MPSSHEAP=64K
MPSSSTACK=64K
export LD_PRELOAD MPSSHEAP MPSSSTACK

I'm not sure if USIIi has a 16 or 64 entry TLB, but I figure the less time is 
spent on TLB misses the better. Is there a way to force kernel to use 64k pages 
instead of 8k?
This message posted from opensolaris.org
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to