This system performance enhancement is new in the Solaris Express 9/06 release.
Starting with this release, Solaris large-page support has been enhanced by extending multiple page size support (MPSS) to the following:
Non-ISM/DISM SysV shared memory
MAP_SHARED mappings created by mmap() of /dev/zero or with the MAP_ANON flag
In releases prior to Solaris Express 9/06, user applications could only map ISM/DISM SysV segments with large pages and there was no support for the use of large pages for segments created by MAP_SHARED mmap() of /dev/zero or mmap(). The new feature extends large-page support in the following two ways:
On SPARC based systems, large pages are automatically assigned by the Solaris kernel to large enough shared memory mappings of either non-ISM/DISM SysV or /dev/zero or MAP_ANON.
On SPARC and x86 based systems, the memcntl(MC_HAT_ADVISE) interface has been enhanced to enable users to explicitly request the use of large pages for MAP_SHARED anonymous memory (created by mmap() of /dev/zero or with the MAP_ANON flag) and non-ISM/DISM SysV memory.
In prior releases, however, memcntl(MC_HAT_ADVISE) against MAP_SHARED mappings worked only against memory created by mapping regular files. The significant advantage of the MPSS extension feature is potential performance improvement for applications that create large non-ISM/DISM shared memory segments or have big MAP_SHARED /dev/zero or MAP_ANON mappings. This performance improvement is due to the reduction of TLB misses due to the use of larger pages.