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