public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mitsumasa KONDO <kondo.mitsumasa@gmail.com>
To: andres@anarazel.de
Cc: abuehaze@amazon.com, alisaidi@amazon.com, bigeasy@linutronix.de,
	blakgeof@amazon.com, dipietro.salvatore@gmail.com,
	dipiets@amazon.it, linux-kernel@vger.kernel.org,
	mark.rutland@arm.com, peterz@infradead.org, tglx@kernel.org,
	vschneid@redhat.com, kondo.mitsumasa@gmail.com
Subject: Re: [PATCH 0/1] sched: Restore PREEMPT_NONE as default
Date: Sat, 11 Apr 2026 00:38:03 +0900	[thread overview]
Message-ID: <20260410153803.74151-1-kondo.mitsumasa@gmail.com> (raw)
In-Reply-To: <uqkncodj4i7emoheyehxzdmc65rfwxgpjz5wvg2pe5y3gqx2al@p6ivvdp3pjjm>

Hi,

Thank you Salvatore for the thorough cross-architecture benchmarks
and pg_stat_activity data, and Andres for the insightful analysis
of the spinlock and huge page behavior.

Apologies for yet another hypothesis, but I suspect the regression
may not be limited to spinlock contention alone -- it could be
triggering a secondary feedback loop in the kernel's Buffered I/O
throttling:

  PREEMPT_LAZY -> lock holders preempted during page faults
  -> spinlock contention (838/1024 backends stalled)
  -> dirty page generation rate drops
  -> bdi->write_bandwidth estimate converges to artificially
     low value (exponential smoothing makes recovery slow)
  -> balance_dirty_pages() over-throttles on next burst
  -> throughput cannot recover -> 0.51x

Huge pages break this loop at the entry point: fewer TLB misses
mean fewer page faults while holding spinlocks, so contention
never escalates and the bandwidth estimator stays calibrated.

Note that the rseq slice extension was validated with Oracle,
which uses Direct I/O, bypassing the page cache and
balance_dirty_pages() entirely. PostgreSQL uses Buffered I/O
by default, so this class of regression would not have been
caught in that validation.

My worst-case concern is that this loop could affect any
Buffered I/O workload where PREEMPT_LAZY disrupts dirty page
generation patterns, not just PostgreSQL.

Regards,
-- 
Mitsumasa KONDO
NTT Software Innovation Center

  reply	other threads:[~2026-04-10 15:38 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-03 19:19 [PATCH 0/1] sched: Restore PREEMPT_NONE as default Salvatore Dipietro
2026-04-03 19:19 ` [PATCH 1/1] " Salvatore Dipietro
2026-04-03 21:32 ` [PATCH 0/1] " Peter Zijlstra
2026-04-04 17:42   ` Andres Freund
2026-04-05  1:40     ` Andres Freund
2026-04-05  4:21       ` Andres Freund
2026-04-05  6:08         ` Ritesh Harjani
2026-04-05 14:09           ` Andres Freund
2026-04-05 14:44             ` Andres Freund
2026-04-07  8:29               ` Peter Zijlstra
2026-04-07  8:27             ` Peter Zijlstra
2026-04-07 10:17             ` David Laight
2026-04-07  8:20           ` Peter Zijlstra
2026-04-07  9:07             ` Peter Zijlstra
2026-04-07 11:19         ` Mark Rutland
2026-04-08 20:08           ` Salvatore Dipietro
2026-04-08 20:51             ` Andres Freund
2026-04-10 15:38               ` Mitsumasa KONDO [this message]
2026-04-07  8:49     ` Peter Zijlstra
2026-04-06  0:43   ` Qais Yousef
2026-04-05 14:44 ` Mitsumasa KONDO
2026-04-05 16:43   ` Andres Freund
2026-04-06  1:46     ` Mitsumasa KONDO

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260410153803.74151-1-kondo.mitsumasa@gmail.com \
    --to=kondo.mitsumasa@gmail.com \
    --cc=abuehaze@amazon.com \
    --cc=alisaidi@amazon.com \
    --cc=andres@anarazel.de \
    --cc=bigeasy@linutronix.de \
    --cc=blakgeof@amazon.com \
    --cc=dipietro.salvatore@gmail.com \
    --cc=dipiets@amazon.it \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=peterz@infradead.org \
    --cc=tglx@kernel.org \
    --cc=vschneid@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox