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.

CargaTipo de workqueueAntes (flushes/s)Depois (flushes/s)Variação do throughput
Ociosaper-CPU40.0004.200.000105×
Ociosaunbound450.0004.300.000≈ 9,6×
16 threadsper-CPU30.000110.000≈ 3,7×
16 threadsunbound60.000180.0003×

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.