freenode
Kernel & Low-Level

Linus demands real users before hazard pointers land

McKenney and Desnoyers floated a full RFC series; Torvalds wants core conversions and real workload numbers, not torture tests.

Linus Torvalds has told concurrency developers he will not merge hazard pointers into the Linux kernel until someone converts a real, widely used subsystem and shows measurable gains on real workloads.

Paul E. McKenney posted a 28-patch RFC on the linux-kernel list with a simple hazard-pointer implementation, largely from Mathieu Desnoyers, plus torture tests and integration into the existing rcutorture harness. Hazard pointers give existence guarantees for objects and, unlike RCU, can reclaim protected memory without waiting for a grace period. The design keeps a few per-CPU slots for the fast path, falls back to on-stack backup slots, and works with the scheduler so blocked or preempted tasks do not hold per-CPU slots indefinitely.

Torvalds replied that the missing piece from earlier looks is still missing: actual numbers from a real load. Tight-loop microbenchmarks are "just garbage" and "actively misleading," he wrote. He wants a conversion of something core that everybody uses, not a driver, test module, or AppArmor, with cleaner code and visible speedups. The dcache would impress him. "Show me the money," he said, adding that the kernel is not an academic project and that an alternative to heavily depended-on RCU needs major proof. Years of talk without a core user already look like a failure signal to him.

Desnoyers agreed that synchronization infrastructure without a significant in-tree user is not very relevant, and suggested waiting for Boqun Feng's planned lockdep reclaim-path work so both can be proposed together.