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:
- Introdução do balanceamento de carga cache-aware.
- Correções de erros de compilação e ajustes funcionais.
- Evita migração desnecessária dentro do mesmo domínio de cache preferido.
- Desativa o cache-aware temporariamente caso o domínio preferido esteja saturado.
- 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.