Fim da bateria drenada? Kernel Linux 7.0-rc1 corrige falha crítica de energia em chips AMD

Correção no Kernel Linux 7.0-rc1 garante estabilidade e economia de energia em hardware AMD!

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...
  • Correção de bug crítico: O erro "scheduling while atomic" foi removido, eliminando travamentos durante os ciclos de suspensão e retomada.
  • Eficiência energética: A implementação correta dos estados PCI permite que o sistema alcance o modo S0i3 (Modern Standby) em chips AMD.
  • Autoria oficial: A solução foi desenvolvida pela própria AMD para otimizar seus controladores Ethernet de 10GbE no Kernel Linux 7.0-rc1.
  • Mudança técnica: O driver agora gerencia corretamente o estado D3hot, garantindo que o hardware entre em sono profundo sem erros.
  • Disponibilidade: A correção já faz parte do ciclo de desenvolvimento do Kernel Linux 7.0 e chegará em breve às distribuições estáveis.

O desenvolvedor Raju Rangoju, da AMD, enviou uma série de patches para o subsistema de rede do Kernel Linux 7.0-rc1 visando corrigir falhas críticas de suspensão e retomada de energia no driver amd-xgbe. A atualização resolve erros de execução atômica e permite que sistemas equipados com controladores Ethernet AMD 10GbE finalmente alcancem o estado de economia de energia mais profundo, conhecido como S0i3 ou Modern Standby.

Esta correção chega em um momento crucial: como acompanhamos na análise inicial do Kernel Linux 7.0 no SempreUpdate, os primeiros RCs apresentaram instabilidades e até pânicos do sistema ao despertar da suspensão em diversos hardwares.

Essa modificação é vital para usuários de hardware AMD recente que enfrentavam dificuldades para colocar seus dispositivos em modo de espera ou notavam um consumo excessivo de bateria durante o repouso. O patch atua diretamente na forma como o driver gerencia o estado do dispositivo PCI durante a transição de energia no Kernel Linux 7.0-rc1.

O que isso significa na prática

Para o usuário comum, essa mudança resulta em maior estabilidade e eficiência energética. Antes da correção, o driver AMD XGBE impedia que o sistema entrasse no “sono profundo” (S0i3), gerando registros de erro como “Last suspend didn’t reach deepest state”. O erro técnico “scheduling while atomic” também podia causar travamentos quando o computador tentava dormir ou acordar, pois o sistema tentava realizar tarefas de espera em um estado que proibia pausas.

Detalhes da implementação

A investigação técnica no Kernel Linux 7.0-rc1 revelou dois problemas no driver. O primeiro envolvia o uso indevido de travas de rotação (spinlocks) nas funções xgbe_powerdown() e xgbe_powerup(). O driver tentava desabilitar o NAPI e limpar filas de trabalho — funções que podem entrar em estado de espera (sleep) — enquanto segurava um spinlock, o que é proibido pela arquitetura do núcleo.

O segundo ponto foi a ausência de operações completas de gerenciamento de energia PCI. O patch implementa o modelo padrão:

  • Suspensão: Desativa interrupções, coloca a camada física (PHY) em modo de baixo consumo, limpa o barramento mestre (bus mastering) e salva o estado da configuração PCI antes de colocar o dispositivo em D3hot.
  • Retomada: Restaura o estado D0, reabilita o dispositivo e as interrupções, e reinicia a interface de rede.
OperaçãoMudança implementadaImpacto técnico
Gerenciamento de travasRemoção de spinlocks desnecessáriosElimina o erro “scheduling while atomic”
Estado PCIImplementação de D3hot e economia de estadoPermite entrada no estado S0i3
Sincronização NAPIReordenação das chamadasGarante desligamento limpo da interface

Curiosidades e bastidores da discussão

A recepção na LKML trouxe um olhar rigoroso sobre a organização do código. Simon Horman, revisor do subsistema de rede, orientou o desenvolvedor da AMD sobre a política de submissão, pois o patch misturava correções urgentes com limpezas estéticas. A orientação reforçou que, em ciclos como o do Kernel Linux 7.0-rc1, as correções devem focar na estabilidade imediata, enquanto refatorações devem seguir para ciclos posteriores de desenvolvimento (net-next).

Quando isso chega no meu PC?

Como os patches foram submetidos para o ciclo do Kernel Linux 7.0-rc1, a expectativa é que a correção seja integrada à versão estável final em meados de abril de 2026. Usuários de distribuições rolling release, como Arch Linux e openSUSE Tumbleweed, devem receber a atualização assim que o ciclo de desenvolvimento for concluído e a versão estável lançada. Distribuições de ciclo fixo devem aplicar essa correção em seus kernels de suporte a longo prazo ou em atualizações de manutenção futuras.

Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.