Um patch trabalhado por um engenheiro da Intel para liberação de TLB em lote para migração de página com fólios está mostrando alguns resultados promissores e atualmente trabalhando para o kernel da linha principal.
A otimização do engenheiro da Intel, Huang Ying, foi adotada pelo ramo "mm-unstable" de Andrew Morton. Se tudo correr bem, esta otimização pode ser mesclada para o próximo ciclo do kernel Linux v6.3. O patch resume bem o trabalho:
A liberação de TLB custará alguns ciclos de CPU durante a migração do fólio em algumas situações. Por exemplo, ao migrar um fólio de um processo com vários encadeamentos ativos executados em várias CPUs. Depois de agrupar o _unmap e o _move em migration_pages(), a liberação do TLB pode ser agrupada facilmente com o mecanismo de lotes de liberação do TLB existente. Este patch implementa isso.
Usamos o caso de teste a seguir para testar o patch.
Em um servidor Intel de 2 soquetes,
- Execute o benchmark de acesso à memória pmbench
- Execute `migratepages` para migrar páginas do pmbench entre o nó 0 e o nó 1 para frente e para trás.
Com o patch, o TLB flushing IPI reduz 99,1% durante o teste e o número de páginas migradas com sucesso por segundo aumenta 291,7%.
NOTA: [A liberação de TLB é feita em lote apenas para fólios normais, não para fólios THP. Porque a sobrecarga de liberação de TLB para fólios THP é muito menor do que para fólios normais (cerca de 1/512 na plataforma x86).
A Intel continua fazendo um ótimo trabalho upstream do kernel, além de apenas habilitar oportunamente seu novo hardware, mas também foi otimizando incansavelmente o kernel do Linux para um maior desempenho e eficiência.
Até a próxima !!
Nenhum comentário:
Postar um comentário