Os processadores modernos da AMD, especialmente os mais novos da linha Ryzen com arquitetura Zen, possuem núcleos que não são todos iguais. Alguns podem atingir frequências mais altas ou têm mais cache, o que os torna mais rápidos em certas tarefas.
O recurso Preferred Core (ou “núcleo preferido”) permite que o sistema operacional priorize esses núcleos mais potentes ao executar programas, melhorando o desempenho geral — principalmente em atividades que exigem rapidez, como jogos ou softwares pesados.
O desafio atual no Linux
Desde o kernel Linux 6.9, o sistema já reconhece e usa essa preferência de núcleos nos processadores AMD. No entanto, essa preferência era estática — ou seja, ela era definida apenas uma vez, quando o sistema era inicializado.
Mas em alguns modelos de processadores, como os Ryzen X3D, as características dos núcleos podem mudar durante o uso. Isso significa que a escolha dos núcleos preferenciais também deveria mudar dinamicamente para continuar oferecendo o melhor desempenho — algo que o Linux ainda não fazia de forma eficiente.
A solução da AMD: atualização dinâmica das preferências
Para resolver esse problema, a AMD desenvolveu um novo método chamado sched_update_asym_prefer_cpu()
. Ele permite que o Linux recalcule automaticamente quais núcleos devem ser preferidos sempre que houver mudança no comportamento dos núcleos, sem precisar reiniciar ou refazer toda a estrutura de agendamento do sistema (que é o mecanismo que distribui as tarefas entre os núcleos).
Por que isso é melhor?
A tentativa anterior da AMD envolvia desabilitar o uso de cache para essa informação, recalculando tudo o tempo inteiro. Mas isso gerava mais lentidão e sobrecarregava o sistema.
Com essa nova abordagem, o Linux mantém a informação em cache, mas a atualiza apenas quando necessário. Isso garante um equilíbrio entre desempenho e eficiência, aproveitando o máximo do processador sem desperdício de recursos.
Benefícios práticos para o usuário
Com essa melhoria:
- Seu sistema Linux poderá responder melhor às mudanças internas do processador, como variações de temperatura ou consumo de energia.
- Tarefas mais pesadas, como renderização, jogos ou compilação de programas, poderão ser executadas de forma mais rápida e fluida.
- O consumo de energia também pode ser otimizado, priorizando núcleos mais eficientes quando apropriado.
Ferramenta de diagnóstico incluída
Outra novidade é a possibilidade de visualizar essas preferências em tempo real usando o debugfs
, um sistema interno de diagnóstico do Linux. Essa funcionalidade será útil para desenvolvedores, técnicos e usuários avançados que queiram verificar se tudo está funcionando como esperado.
O que vem a seguir?
Essa atualização ainda está sendo analisada pela comunidade de desenvolvedores do kernel Linux. Se for aprovada, pode ser incluída nas próximas versões oficiais, trazendo uma grande melhoria especialmente para usuários de Ryzen no Linux.
Resumo técnico para desenvolvedores
- A atualização introduz o método
sched_update_asym_prefer_cpu()
. - A prioridade dos núcleos preferenciais (
asym_prefer_cpu
) passa a ser atualizada dinamicamente. - A atualização é aplicada apenas a domínios de agendamento sem sobreposição (
!SD_OVERLAP
). - O patch também adiciona leitura via
debugfs
para facilitar testes e validações.