FERRAMENTAS LINUX: O Kernel Linux 5.10 para o ARM64 tem uma otimização de desempenho "8 ~ 20x" esquecida há dois anos

sexta-feira, 23 de outubro de 2020

O Kernel Linux 5.10 para o ARM64 tem uma otimização de desempenho "8 ~ 20x" esquecida há dois anos

 


Confira !!

Na semana passada, ocorreu o conjunto principal de atualizações da arquitetura ARM de 64 bits para o Kernel Linux 5.10, enquanto hoje um segundo lote de alterações foi enviado para este kernel. Essa primeira rodada teve o suporte de Memory Tagging Extension (MTE) e Pointer Authentication, entre outras melhorias, enquanto este pull secundário tem duas otimizações de desempenho notáveis.

O primeiro é uma otimização de desempenho que os desenvolvedores do Arm reconhecem que foi aparentemente esquecida por cerca de dois anos. Em 2018, o gerenciamento de memória foi acelerado em cerca de 20 vezes para a chamada do sistema mremap em grandes regiões de memória. Esse trabalho foi mesclado, mas o recurso nunca foi habilitado para as compilações do kernel do Linux ARM64 até agora.

Esse patch de um engenheiro do Google foi uma otimização para mremap, uma vez que o Android depende de usá-lo para grandes regiões de memória durante várias operações. A chamada do sistema mremap pode ser bastante lenta sem páginas enormes transparentes (THP), enquanto este patch torna as coisas mais rápidas copiando no nível PMD quando possível. A aceleração em 2018 pelo engenheiro foi relatada como cerca de 20x mais rápida no x86 (x86_64) com um mremapa de 1 GB levando apenas 144 ~ 160 microssegundos em vez de 3,4 ~ 3,6 milissegundos. Mas para sistemas com suporte a THP, não é provável que haja muita diferença de desempenho.

A chamada de sistema mremap é usada para expandir / reduzir um mapeamento de memória existente. Mremap é usado em particular no Android e, portanto, a ênfase do Google em torná-lo mais rápido. Enquanto o trabalho foi mesclado, tomar esse caminho mais rápido para remapeamento de nível PMD requer a configuração de HAVE_MOVE_PMD e isso nunca foi habilitado como parte do ARM64 Kconfig - inicialmente foi adiado enquanto aguardava outras melhorias, mas depois esquecido. Alguns dias atrás, foi notado sobre HAVE_MOVE_PMD sendo definido para x86, mas não ARM64 sem bloqueadores atuais impedindo-o de ser habilitado. Os testes realizados este mês viram uma melhoria de 8 vezes com esta chamada de sistema no ARM64.

Portanto, a solicitação de extração de hoje habilita HAVE_MOVE_PMD para ARM64 no Kernel Linux 5.10, "isso demonstrou melhorar o desempenho do mremap (), que é muito usado pelo Android runtime [coleta de lixo], e parece que esquecemos de habilitar esse upstream em 2018. "

Esse pullals tem várias correções junto com outra otimização: melhor Spectre Mitigação V2 em CPUs Qualcomm Centriq "Falkor". Mas, com a Qualcomm tendo desistido de suas ambições de chip de servidor ARM, a otimização do Spectre V2 provavelmente beneficiará poucos. Essa otimização vem do Falkor ser capaz de mitigar a Variante Dois do Spectre chamando o firmware ou emitindo um sequência mágica de ramos. Essa sequência mágica é mais rápida, mas requer condições especiais e a lógica de seleção do ARM64 atualmente só foi configurada para habilitá-la se a mitigação do firmware não estivesse disponível.


Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário