Urgent.News

What's breaking now, across thousands of outlets.

Tech

Linux 7.4 Workqueue Changes Bring A "10 To 100 Times Faster" Optimization

Adding to all the exciting performance optimizations and other improvements for Linux 7.4 is an exciting workqueue improvement. It's not too often getting to talk about "10 to 100 times faster" software improvements...

Linux 7.4 introduces significant improvements to the workqueue system, resulting in a 10 to 100 times faster optimization. Flushing a workqueue now only visits the queues used since the last flush, rather than visiting one per possible CPU. This optimization leads to a substantial performance boost on large machines, particularly in the XFS CIL workqueue, which is flushed on every log force.

On a 128-CPU machine, the XFS CIL workqueue previously spent up to 64us per flush. However, after the optimization, flushing this workqueue increased from 40k to 4.2M per second and from 450k to 4.3M on an idle per-cpu workqueue. Similarly, on a 192-CPU 2-node machine, flushing an idle per-cpu workqueue saw a dramatic increase from 40k to 4.2M per second, while an idle unbound workqueue improved from 450k to 4.3M per second.

When 16 threads each queue a work item and flush a workqueue, the performance of per-cpu workqueues improved from 30k to 110k flushes per second, while idle unbound workqueues saw an improvement from 60k to 180k flushes per second. Dense flushes with every pwq active remain unchanged on per-cpu workqueues, but are 15-20% slower on unbound ones. Importantly, the queue path itself remains unchanged in Linux 7.4.

Written by urgent.news from Phoronix's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at phoronix.com →

More in Tech

Kubernetes Has Garbage Collection. Why Did We Build Another One?

This is article 2 of 10 in Beyond Kubernetes Defaults . Read article 1: When Kubernetes Primitives Aren’t Enough first. This article is cross-published from Zen Mesh .

  • Kubernetes has built-in resource lifecycle management features.
  • Zen Cleaner is a garbage collector for explicit cleanup policies.
  • Policy controller justified for unrelated resource kinds and different TTLs.

More from Friday 23 October →