Melhor desempenho

Google lança patches para melhorias no desempenho de suspensão e retomada assíncrona no Linux

Nuvem de palavras relacionadas a termos e códigos do Linux Kernel, destacando palavras como 'Linux', 'user', 'channel', 'int', 'static', 'ipmi', 'mutex', e outras usadas em patches e desenvolvimento do kernel.

O Google, através do engenheiro Saravana Kannan, recentemente introduziu um conjunto de patches para otimizar a suspensão e retomada assíncrona de dispositivos no kernel do Linux. Essas melhorias visam reduzir a sobrecarga associada a esses processos críticos e melhorar os tempos de resposta durante a suspensão e retomada de dispositivos. Testado inicialmente no Google Pixel 6, esse patch promete impactar positivamente outros dispositivos também, oferecendo uma solução mais eficiente e rápida para gerenciar o consumo de energia e a utilização de recursos.

Como os patches funcionam?

Otimização do Enfileiramento de Suspensão e Retomada:
Uma das principais mudanças introduzidas por esses patches é a reestruturação do processo de enfileiramento para a suspensão e retomada assíncrona dos dispositivos. A técnica adotada, chamada de breadth-first queuing, melhora a forma como as operações de suspensão e retomada são gerenciadas no sistema. Ao invés de uma abordagem tradicional, que pode ser mais lenta e com maior sobrecarga, essa técnica organiza as tarefas de forma mais eficiente, garantindo que as operações sejam realizadas em paralelo quando possível, sem sobrecarregar os recursos do sistema.

Desabilitação Temporária do EAS (Energy-Aware Scheduling):
Outro ajuste significativo foi a desabilitação temporária do EAS (Energy-Aware Scheduling) durante a retomada de dispositivos. O EAS é responsável por balancear o consumo de energia entre as CPUs, mas pode causar uma latência adicional ao não utilizar as CPUs maiores de forma rápida o suficiente durante o processo de retomada. Durante essa janela de retomada, onde é esperado um alto grau de paralelismo, desabilitar o EAS ajuda a reduzir a latência de programação e a interrupção dos threads, acelerando o processo de retomada do sistema.

Impacto nos Testes de Desempenho:
Nos testes realizados com o Google Pixel 6, o novo patch demonstrou melhorias consideráveis tanto no tempo de suspensão quanto de retomada. A comparação entre o método antigo e a nova abordagem mostrou ganhos notáveis:

FaseTempo de suspensão (antigo)Tempo de suspensão (novo)Tempo de retomada (antigo)Tempo de retomada (novo)
Dpm_suspend()107 ms62 ms75 ms61 ms
Dpm_resume()75 ms61 ms90 ms61 ms
Total182 ms123 ms162 ms123 ms

Os resultados indicam uma redução significativa no tempo total de suspensão e retomada, com uma melhoria de até 30% no desempenho geral do sistema.

O que ainda pode ser melhorado?

Embora os testes iniciais mostrem um grande avanço, Saravana Kannan observou que ainda há espaço para otimizações adicionais. O principal objetivo agora é garantir que essas mudanças sejam incorporadas sem introduzir bugs ou problemas de estabilidade. Caso os patches sejam aprovados e mostrem-se estáveis, o próximo passo será trabalhar em aprimoramentos adicionais para tornar ainda mais rápido o processo de suspensão e retomada em dispositivos Linux.

Conclusão

Os novos patches de otimização de suspensão e retomada assíncrona oferecem ganhos importantes para o kernel do Linux, com uma redução substancial nos tempos de resposta e um melhor gerenciamento de energia. Isso resulta em um sistema mais eficiente, especialmente em dispositivos móveis e sistemas embarcados, como o Google Pixel 6, que se beneficiam dessas melhorias. O trabalho de Saravana Kannan promete continuar a evoluir, oferecendo ainda mais melhorias no desempenho do kernel do Linux.

Links internos e externos: