Messages in this thread |  | | From | Salvatore Dipietro <> | | Subject | [PATCH 0/1] sched: Restore PREEMPT_NONE as default | | Date | Fri, 3 Apr 2026 19:19:36 +0000 |
| |
We are reporting a throughput and latency regression on PostgreSQL pgbench (simple-update) on arm64 caused by commit 7dadeaa6e851 ("sched: Further restrict the preemption modes") introduced in v7.0-rc1.
The regression manifests as a 0.51x throughput drop on a pgbench simple-update workload with 1024 clients on a 96-vCPU (AWS EC2 m8g.24xlarge) Graviton4 arm64 system. Perf profiling shows 55% of CPU time is consumed spinning in PostgreSQL's userspace spinlock (s_lock()) under PREEMPT_LAZY:
|- 56.03% - StartReadBuffer |- 55.93% - GetVictimBuffer |- 55.93% - StrategyGetBuffer |- 55.60% - s_lock <<<< 55% of time | |- 0.39% - el0t_64_irq | |- 0.10% - perform_spin_delay |- 0.08% - LockBufHdr |- 0.07% - hash_search_with_hash_value |- 0.40% - WaitReadBuffers
1. Test environment ___________________
Hardware: 1x AWS EC2 m8g.24xlarge (12x 1TB IO2 32000 iops RAID0 XFS) OS: AL2023 (ami-03a8d3251f401ffca) Kernel: next-20260331 Database: PostgreSQL 17 Workload: pgbench simple-update 1024 clients, 96 threads, 1200s duration scale factor 8470, fillfactor=90, prepared protocol
2. Results __________
Configuration Run 1 Run 2 Run 3 Average vs Base __________________ _________ _________ _________ _________ _______ BASELINE 47242.39 53369.18 51644.29 50751.96 1.00x w/ revert 92906.62 103976.03 98814.94 98565.86 1.94x
3. Reproduction _______________
On the AWS EC2 m8g.24xlarge, install and run the PostgreSQL database using the repro-collection repository like:
# Reproducer code: git clone https://github.com/aws/repro-collection.git ~/repro-collection
# Setup and start PostgreSQL server in terminal 1: ~/repro-collection/run.sh postgresql SUT --ldg=127.0.0.1
# Run pgbench load generator in terminal 2: PGBENCH_SCALE=8470 \ PGBENCH_INIT_EXTRA_ARGS="--fillfactor=90" \ PGBENCH_CLIENTS=1024 \ PGBENCH_THREADS=96 \ PGBENCH_DURATION=1200 \ PGBENCH_BUILTIN=simple-update \ PGBENCH_PROTOCOL=prepared \ ~/repro-collection/run.sh postgresql LDG --sut=127.0.0.1
Salvatore Dipietro (1): sched: Restore PREEMPT_NONE as default
kernel/Kconfig.preempt | 3 --- 1 file changed, 3 deletions(-)
base-commit: 9147566d801602c9e7fc7f85e989735735bf38ba -- 2.50.1 (Apple Git-155)
AMAZON DEVELOPMENT CENTER ITALY SRL, viale Monte Grappa 3/5, 20124 Milano, Italia, Registro delle Imprese di Milano Monza Brianza Lodi REA n. 2504859, Capitale Sociale: 10.000 EUR i.v., Cod. Fisc. e P.IVA 10100050961, Societa con Socio Unico
|  |