Processadores

Intel propõe agendamento cache-aware no Linux para melhorar desempenho em CPUs com múltiplos caches

Diagrama mostrando balanceamento de carga entre caches em CPUs modernas
Novo agendador da Intel visa melhorar localidade de cache no Linux

Engenheiros da Intel publicaram nesta segunda-feira (21) a mais nova versão de uma proposta para adicionar suporte a um agendador cache-aware (sensível ao cache) no kernel Linux. A proposta visa otimizar o desempenho em sistemas com múltiplos domínios de cache, agrupando tarefas com afinidade de dados em núcleos que compartilham o mesmo nível de cache.

O que é agendamento cache-aware?

O agendamento cache-aware busca melhorar a “localidade de cache”, ou seja, manter os dados utilizados pelas tarefas o mais próximo possível da CPU que os processa. Isso reduz o número de falhas de cache (cache misses), melhora o tempo de resposta e otimiza o uso do processador — especialmente em arquiteturas com caches distribuídos, como os processadores Intel Xeon “Emerald Rapids” e AMD EPYC “Milan”.

A proposta atual parte do princípio de que threads de um mesmo processo têm maior probabilidade de compartilhar dados. Assim, o agendador monitora quais domínios de cache (como o LLC – Last Level Cache) estão mais usados por cada processo e tenta alocar suas threads nesses domínios quando possível.

Benefícios e limitações atuais

Durante testes com ferramentas como o Schbench, a Intel observou ganhos reais na latência final (tail latency) quando o cache estava subutilizado. Por outro lado, quando o cache LLC está saturado, ainda ocorrem algumas regressões de desempenho, o que levou os engenheiros a implementarem novas proteções contra migrações excessivas entre domínios de cache.

O patch de código inclui ainda eventos via ftrace, que ajudam a rastrear o comportamento do balanceamento de carga e as decisões de migração, úteis para análise de desempenho e debugging.

Detalhes técnicos da proposta

O conjunto atual inclui cinco patches:

  1. Introdução do balanceamento de carga cache-aware.
  2. Correções de erros de compilação e ajustes funcionais.
  3. Evita migração desnecessária dentro do mesmo domínio de cache preferido.
  4. Desativa o cache-aware temporariamente caso o domínio preferido esteja saturado.
  5. Adiciona eventos via ftrace para facilitar o rastreamento do comportamento de agendamento.

Esses patches se aplicam ao branch sched/core do Linux 6.14, sobre o commit 4ba7518327c6.

Próximos passos

Embora promissora, a proposta ainda está em estágio de “Request for Comments” (RFC) e precisa de mais testes e validações da comunidade do kernel. Os desenvolvedores interessados já podem testar os patches e enviar feedback, especialmente sobre cenários com cargas mistas ou pesadas.

A implementação completa poderá trazer grandes melhorias para workloads sensíveis à latência e para ambientes com alta concorrência de threads, como servidores, bancos de dados e aplicações científicas.

Emanuel Negromonte Autor
Autor
Jornalista especialista em Linux a mais de 20 anos. Fundador do SempreUpdate e entusiasta do software livre.