FERRAMENTAS LINUX: O Compilador GCC escolhe uma nova opção para ajudar com o Live Kernel Patching

sábado, 1 de dezembro de 2018

O Compilador GCC escolhe uma nova opção para ajudar com o Live Kernel Patching




Confira !!



Somando-se à lista de novos recursos para o GCC 9, que devem ser lançados no começo do ano que vem, há um novo sinalizador -flive-patching = para ajudar com cenários como o live kernel patching do kernel.

Esse complemento de suporte de correção ao vivo do GCC foi feito pela Oracle e trata de controlar as otimizações / comportamento ao querer compilar o código para o contexto de aplicá-lo como um patch ativo. Em particular, para patch ao vivo do kernel do Linux, para evitar reinicializações do sistema ao aplicar atualizações de segurança / manutenção. Com a Oracle, o foco está no seu próprio patch de kernel ao vivo do Ksplice para evitar reinicializações, mas este trabalho também deve ser relevante para os gostos do kGraft do SUSE e do patch ao vivo do kernel Kpatch da Red Hat.

O sinalizador -flive-patching = permite um valor de clone inlinepara habilitar somente otimizações de inlining e clonagem ou inline-only-static para habilitar apenas o inlining de funções estáticas. Claro que, por padrão, esse sinalizador não é relevante. A documentação recém-adicionada explica a importância do comportamento de otimização do compilador no live-patching:
Se a otimização do compilador usa o corpo de uma função ou informação extraída de seu corpo para otimizar / alterar outra função, a última é chamada de função impactada da primeira. Se uma função for corrigida, suas funções afetadas também devem ser corrigidas.

As funções impactadas são decididas pelas otimizações interprocedurais do compilador. Por exemplo, inserir uma função em seu chamador, clonar uma função e alterar seu chamador para chamar esse novo clone ou extrair as informações de pureza / constância de uma função para otimizar seus chamadores diretos ou indiretos, etc.

Geralmente, quanto mais otimizações de IPA são ativadas, maior o número de funções afetadas para cada função. Para controlar o número de funções impactadas e calcular facilmente a lista de funções afetadas, fornecemos controle para habilitar parcialmente as otimizações de IPA em dois níveis diferentes.

Mais detalhes através deste envio de quinta-feira apresentando a nova funcionalidade para a próxima versão estável do GCC 9.1.

Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário