Linux 7.0 Broke PostgreSQL: The Preemption Regression Explained
Summary
The article explains a performance regression observed when Linux 7.0 removed PREEMPT_NONE, causing PostgreSQL workloads to drop throughput by about half on a 96‑vCPU Graviton4. It traces the root cause to memory-page faults occurring while a spinlock is held during buffer management, and shows how larger memory pages (huge pages) can mitigate the issue by reducing page faults and TLB pressure. It also discusses potential fixes like rseq and the tension between kernel changes and userspace reliability.