Enviadas no ano passado como uma "solicitação de comentários", foram duas rodadas de patches do engenheiro do Google, James Houghton, para introduzir o conceito de HugeTLB High Granularity Mapping (HGM) no kernel Linux. No início do novo ano, o conjunto de 46 patches em seu estado pós-RFC foi enviado para revisão.
O HugeTLB HGM permite que as páginas HugeTLB sejam mapeadas em alta granularidade de maneira semelhante às páginas enormes transparentes (THPs) sendo mapeadas por PTE. A motivação do Google em torno do HugeTLB HGM para páginas no PAGE_SIZE do kernel tem implicações úteis para migração ao vivo de VM e tratamento de falha de memória.
Alguns dos principais detalhes de benefícios da série de patches HugeTLB HGM:
Ser capaz de retomar uma vCPU 100 vezes mais rápido é útil para a estabilidade do convidado, e ser capaz de usar páginas 1G pode melhorar significativamente o desempenho do convidado em estado estável.
Depois de copiar totalmente uma página enorme na rede, queremos reduzir o mapeamento ao que seria normalmente (por exemplo, um PUD para uma página 1G). Em vez de fazer com que o kernel faça isso automaticamente, deixamos que o espaço do usuário nos diga para recolher um intervalo (via MADV_COLLAPSE).
- Falha de memória
Quando um erro de memória é encontrado em uma página HugeTLB, seria ideal se pudéssemos desmapear apenas a seção PAGE_SIZE que continha o erro. Isso é o que os THPs são capazes de fazer. Usando o mapeamento de alta granularidade, poderíamos fazer isso, mas isso não é abordado nesta série de patches.
O usuário inicial da API de espaço de usuário proposta para esta adição de kernel é a pós-cópia userfaultfd de alta granularidade para manipulação de HugeTLB.
Inicialmente, esse suporte de mapeamento de alta granularidade HugeTLB é apenas x86_64, mas há planos para AArch64 e potencialmente outras arquiteturas de CPU também. Mais detalhes sobre o suporte HugeTLB HGM através da série de patches de hoje .
Até a próxima !!
Nenhum comentário:
Postar um comentário