No Linux, o kernel controla todas as falhas da TLB?

2

Estou tentando organizar na minha cabeça alguns conceitos sobre o Gerenciamento de Memória do Linux e tenho as seguintes perguntas:

No Linux, as falhas da TLB são tratadas pelo código do kernel? Até mesmo a falha é uma simples pesquisa na tabela de páginas para ver se existe um mapeamento (uma página a caminho) [ 1 ]? Quer dizer, o chamado page walk é executado pelo código do kernel?

A chamada page walk (uma resposta a algum tipo de erro da TLB) é considerada uma falha de página suave?

    
por gsi-frank 17.08.2017 / 05:38

1 resposta

3

Isso depende do processador. Na arquitetura x86, as falhas da TLB são tratadas pelo hardware, portanto, é transparente para o kernel. A única vez que o código do kernel lida com o TLB é quando o conteúdo do TLB deve ser descartado (um TLB flush).

Uma "falha de página virtual" geralmente se refere à situação em que uma página de memória está presente na RAM, mas isso não é conhecido na MMU, ou seja, não há entrada para o quadro de página nas tabelas de páginas.

    
por 17.08.2017 / 09:11