Quantos níveis de tabela de páginas o kernel do Linux usa? 4 ou 5?

0

Este artigo diz que o Linux usa tabelas de páginas de três níveis.

No entanto, no livro Arquitetura Professional Linux Kernel , no capítulo 3.3.1, diz que o Linux usa tabelas de páginas de cinco níveis.

Além disso, este artigo diz 'A mesclagem de tabelas de páginas de cinco níveis (fora da janela de mesclagem) para 4.11- rc2, em vez disso, apenas levantou uma sobrancelha '.

Minha pergunta é quantos níveis de tabela de páginas o Kernel realmente usa? Se mudou no histórico, qual versão?

    
por user3824053 18.07.2017 / 12:25

2 respostas

2

O problema é que isso depende da versão do kernel e da arquitetura do processador (porque é necessário ter suporte no hardware para um determinado número de tabelas de páginas). Em x86 de 32 bits sem PAE, são 3 níveis. Em 32-bit x86 com PAE eu acredito que é de 4 níveis. Em x86 de 64 bits, geralmente são 4 níveis, mas o suporte para 5 foi mesclado recentemente (no entanto, apenas processadores de servidor Intel high-end suportam isso, e apenas os mais recentes). No SPARC de 64 bits, eu acho que ele tem 5 níveis desde o início, e eu acho que o s390 de 64 bits e o PPC também usam 5 níveis, mas não tenho certeza.

    
por 18.07.2017 / 13:07
1

Eu verifiquei os códigos do kernel do Linux e recebi algo diferente da resposta de Austin.

arch / x86 / Kconfig

  config PGTABLE_LEVELS
        int
        default 5 if X86_5LEVEL
        default 4 if X86_64
        default 3 if X86_PAE
        default 2
    
por 10.10.2017 / 09:59