Noah Yan wrote: > I just realized that for Solaris x86, userland and kernel share the same > address space (4G in 32bit), like the 3G/1G split in Linux and other kernel, > but in SPARC sun4u, the user and kernel have separate address space, each > with 4G in 32-bit. > > Is it just a matter of having different size of AS, or other reasons? > What is the advantage of the shared one over the separated one?
none, really. > What is the advantage of the separated one over shared one? Full 4 GB address space for 32 bit apps. Full 4 GB address space for the kernel (critical for 32 bit machines with large memory) Note that with Solaris 10, Solaris no longer supports 32 bit kernels on SPARC/ > Why solaris makes the difference for the x86 and SPARC? I mean what the > difference of the architecture cause this. As Adam pointed out, sun4u machines support alternate address spaces. > Also seems sun4d has shared AS, what cause Solaris use the separate AS in > sun4u? What forced the issue is the need to support large amounts of physical memory with 32 bit kernels. There's also better rogue pointer detection, but this is secondary. > For PowerPC implementation, which approach should we use, and why? > If powerpc doesn't support the idea of multiple active 32 bit address spaces, you're basically stuck with a shared kernel/user space. 32 bit architectures are rapidly becoming less and less interesting, of course; there are significant kernel performance advantages being able to directly map all of physical memory. It's like uni-processors - they're on the way out given the trends in chip design; cranking the MHz isn't really an option any more, but our transistor budget continues to increase. Adding cores and threads is a relatively straightforward (step and repeat) way of getting significant performance wins on many workloads. - Bart -- Bart Smaalders Solaris Kernel Performance barts at cyber.eng.sun.com http://blogs.sun.com/barts
