Parece que alguns sistemas BSD têm um tamanho de superpágina de 2 MB, enquanto outros têm 4 MB. Eu não vi nenhum outro. Existe alguma maneira de saber qual é o tamanho da superpágina disponível? Idealmente a partir da linha de comando e sem ter que habilitá-los.
Alan L. Cox fez alguns benchmarks interessantes do Opteron e foi co-autor do artigo original da superpage (apresentado na Usenix 2002): Suporte prático e transparente ao sistema operacional para superpáginas
Superpages foi introduzido em 2013 para o FreeBSD 7.2 para amd64 e i386
Em 2014 foi adicionado ao FreeBSD 10.0 para ARMv6/v7. Ele suporta páginas de 4KB e 1MB dinamicamente . A revisão 25418 indica que
vm.pmap.sp_enabled
é usado (definido emloader.conf
). Se você não estiver usando o carregador, encontre-o emsys/arm/arm/pmap-v6.c
. Há uma boa apresentação do BSDcan por Zbigniew Bodek: Suporte Transparent Superpages para FreeBSD no ARMVocê verifica isso usando sysctl :
O Linux obteve grande suporte a páginas (superpáginas) em 2011 com a versão 2.6.38 do kernel . Veja também Páginas enormes Introdução . No Linux (somente!), isso é tratado pelo enormeadm , conforme sugerido em outra resposta.
Quanto ao OS XI , acho que está ativado por padrão , mas não sou de forma alguma uma fonte autorizada sobre isso. Parece que quando eles testam eles simplesmente tentam alocar as superpáginas. Não vejo nenhuma verificação se as superpáginas estão ativadas ou não.
Para os kernels XNU e Mach (MacOS/Darwin), se estou lendo os cabeçalhos corretamente, em x86_64 é sempre 2 MB, caso contrário não é suportado.
Para fazer isso dinamicamente, você deve fazer algo como: