Cette évolution des performances du système est une nouveauté de Solaris Express version 9/06.
La gestion des grandes pages Solaris a été optimisée en étendant la prise en charge MPSS (Multiple Page Size Support, prise en charge de plusieurs tailles de page) aux entités suivantes :
mémoire partagée SysV non-ISM/DISM ;
mappages MAP[lowbar]SHARED créés par mmap() de /dev/zero ou avec l'indicateur MAP[lowbar]ANON.
Dans les versions antérieures à Solaris Express 9/06, les applications utilisateur pouvaient uniquement mapper les segments ISM/DISM SysV avec de grandes pages et aucune prise en charge n'était prévue pour l'utilisation de grandes pages pour les segments créés par MAP[lowbar]SHARED mmap() de /dev/zero ou par mmap(). La nouvelle fonction assure la prise en charge des grandes pages des deux manières suivantes :
Sur les systèmes SPARC, les grandes pages sont automatiquement attribuées par le noyau Solaris à des mappages de mémoire partagée d'une taille suffisante pour la mémoire SysV non-ISM/DISM ou /dev/zero ou MAP[lowbar]ANON.
Sur les systèmes SPARC et x86, l'interface memcntl(MC[lowbar]HAT[lowbar]ADVISE) a été améliorée pour permettre aux utilisateurs de demander de façon explicite l'utilisation de grandes pages pour la mémoire anonyme MAP[lowbar]SHARED (créée par mmap() de /dev/zero ou avec l'indicateur MAP[lowbar]ANON) et pour la mémoire SysV non-ISM/DISM.
Auparavant, les mappages de memcntl(MC[lowbar]HAT[lowbar]ADVISE) à MAP[lowbar]SHARED s'appliquaient uniquement à la mémoire créée par des fichiers de mappage standard. Le principal intérêt de la fonction d'extension MPSS est l'amélioration potentielle des performances pour les applications créant de grands segments de mémoire partagée non-ISM/DISM ou disposant d'importants mappages MAP[lowbar]SHARED /dev/zero ou MAP[lowbar]ANON. Cette évolution des performances est liée au nombre réduit d'échecs TLB dus à l'utilisation de pages plus grandes.