cache TLB que flusa quando uma página é trocada

1

Recentemente ouvi dizer que o Linux simplesmente libera o cache de TLB quando os dados correspondentes nesse endereço físico são trocados, resultando na subutilização do TLB. Não sei se todos os sistemas operacionais fazem o mesmo.

Se isso for verdade, o aumento da RAM e a troca de contexto manterão o cache no TLB?

    
por kevin 07.02.2013 / 06:51

2 respostas

2

Parece que o kernel Linux gerencia o cache TLB e TLB com a mesma abordagem. No nível independente de arquitetura, não há nada como liberar uma parte ou um cache TLB inteiro do AFAIK. A vm irá, por exemplo, mostrar as coisas, e há alguns ganchos nessa ação que ativarão o código dependente de hardware, se necessário. Dependendo da CPU, o kernel pode fazer vários page flushes para cada página, ou a CPU suporta o intervalo de limpeza da página, ou ele não suporta nem o kernel usa o flush mais caro que libera o cache completo.

Existem dois artigos interessantes sobre este tópico:

por 01.03.2013 / 09:05
0

Para trocar dados é um pouco mais caro do que excluir uma linha TLB (que não será de uso posterior). E liberar o TLB completo provavelmente também é muito mais barato.

As honchos do Linux são loucas por desempenho absoluto. Se eles fizerem o que você diz, é porque a arquitetura afetada não permite nada melhor (ou simplesmente não importa).

    
por 07.02.2013 / 18:55