From: Roland Mainz <[EMAIL PROTECTED]>
Date: Wed, 08 Mar 2006 02:51:37 +0100

> http://mail.opensolaris.org/pipermail/opensolaris-discuss/2006-March/013917.html).

I read that email before I replied, it was quoted in the email
you originally CC:'d me on.

sysconf(_SC_PAGESIZE) should return the correct page size, and
that's what applications use to construct their arguments to
mmap() and other system calls where the page size influences
how the arguments should be.

The only thing that breaks is if apps don't call sysconf(_SC_PAGESIZE)
or some similar function such as getpagesize() to obtain that
information portably.

Or did Solaris accidently return 8K always in some version of the
Solaris libc?  I don't see how this is possible, as applications
compiled on sun4c/sun4m systems should execute fine on a sun4u Solaris
machine, and they would hit the page size difference too.  This
even covers the worst case of statically linking against a libc
that accidently returns a fixed value, it would break such sun4c/sun4m
compiled apps too.

I also disagree with Eric Lowe about the usefulness of increasing the
base page size.  It's very useful, and that's why we have several
platforms under Linux which have moved up to a default page size of
64K or larger (IA64, PowerPC 64-bit).  We even use 256MB TLB entries
for the Linux kernel on Niagara, and if the chip supported 16GB TLB
entries we'd use those too, it's a huge issue.

There are so many applications which are TLB miss bound, and this is
especially true with the tiny 64-entry Data and Instruction TLBs in
the Niagara cores, which btw must be shared with the real->physical
TLB mappings the hypervisor uses to implement domain isolation and
also the locked TLB entries setup by OBP and the OS.

The TSB only helps so much, even with the Hypervisor or hw doing the
TSB walk and per-address-space dynamically sized TSBs.
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to