A Phoronix informou que uma otimização de workqueues foi integrada ao Git da linha de desenvolvimento Linux 7.4 em 22 de outubro de 2026. A mudança altera o percurso feito durante um flush: em vez de verificar uma fila para cada CPU possível, ele visita as filas usadas desde o flush anterior.
O que muda nas workqueues do kernel
Workqueues são filas usadas pelo kernel Linux para adiar tarefas e executá-las de forma assíncrona. A alteração, de autoria do desenvolvedor Tejun Heo, muda o percurso do flush; o caminho que enfileira o trabalho permanece igual. A mudança se refere às workqueues do kernel, não a uma API de filas do espaço de usuário (userspace).
A motivação envolve o XFS, sistema de arquivos cuja workqueue CIL é esvaziada a cada log force. Segundo a Phoronix, o engenheiro da Huawei Yao Kai relatou que percorrer essa fila consumia até 64 microssegundos por flush em uma máquina com 128 CPUs.
O que mostram as taxas de throughput
A Phoronix reproduziu números da mensagem do commit de Heo para uma máquina com 192 CPUs e dois nós. Throughput é a quantidade de operações concluídas por segundo. Nos testes com 16 threads, cada thread enfileirava um item de trabalho e fazia o flush.
| Carga | Tipo de workqueue | Antes (flushes/s) | Depois (flushes/s) | Variação do throughput |
| Ociosa | per-CPU | 40.000 | 4.200.000 | 105× |
| Ociosa | unbound | 450.000 | 4.300.000 | ≈ 9,6× |
| 16 threads | per-CPU | 30.000 | 110.000 | ≈ 3,7× |
| 16 threads | unbound | 60.000 | 180.000 | 3× |
As razões comparam flushes concluídos por segundo. Latência ponta a ponta, que mede o tempo até a conclusão de uma tarefa, é outra métrica; os números da tabela são de throughput.
O resultado muda sob carga densa
Quando todas as workqueues de pool estavam ativas, os flushes densos per-CPU permaneceram iguais, enquanto os unbound ficaram de 15% a 20% mais lentos. Portanto, os resultados relatados variam conforme o tipo de fila e a carga testada.