Categorias
Kernel Linux

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

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.

Por Emanuel Negromonte

Fundador do SempreUPdate. Acredita no poder do trabalho colaborativo, no GNU/Linux, Software livre e código aberto. É possível tornar tudo mais simples quando trabalhamos juntos, e tudo mais difícil quando nos separamos.

Sair da versão mobile