mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Mike Galbraith <efault@gmx.de>
To: Tom Gebhardt <tomge68@gmail.com>
Cc: peterz@infradead.org, mingo@redhat.com, linux-kernel@vger.kernel.org
Subject: Re: sched/fair: DELAY_DEQUEUE causes ~25% pipe IPC regression on Raspberry Pi 5
Date: Tue, 21 Apr 2026 05:55:15 +0200	[thread overview]
Message-ID: <0a93288ace2a95616066f7a26cc45d6407dc5147.camel@gmx.de> (raw)
In-Reply-To: <CAOX0jghb6s_OUAP0Mo0bVgTohR7CR40mVakQjQKJJzDJfL79gw@mail.gmail.com>

On Mon, 2026-04-20 at 12:59 +0200, Tom Gebhardt wrote:
> Hi Mike,
> 
> thank you for testing — but I notice that your data only shows 6.12.75
> with DELAY_DEQUEUE on/off. There is no 6.6 baseline in your results.
> That is the comparison that matters: 6.6 vs 6.12 on the same hardware
> with the same tool.
> 
> There is also a version difference worth noting: you are running
> stress-ng 0.21.00, while our measurements used stress-ng 0.15.06 —
> which was the version available on Raspberry Pi OS Bookworm at the
> time of the original report. The pipe stressor calculation changed
> significantly between those versions.
> 
> This creates an uncomfortable coincidence: a measurable scheduler
> regression was introduced in 6.12 (DELAY_DEQUEUE), and around the same
> time the standard measurement tool changed how it calculates the pipe
> benchmark score. The result is that the regression becomes invisible
> when comparing with the newer tool version — not because it was fixed,
> but because the metric changed.

Aha.

> Would you be willing to run the 6.6 comparison with stress-ng 0.15.06
> on your Pi 5?

No need, your reported DELAY_DEQUEUE impact for 6.12.75+rpt-rpi-2712
appeared with stress-ng 0.15.06.

However, my local 6.12.y branch kernel, which has all eevdf fixes as
well as Peter's still pending sched/ttwu series, still does NOT repro.

git@homer:..git/raspberrypi-kernel> quilt applied|grep delay
patches/eevdf/WIP/0043-sched-fair-Removed-unsued-cfs_rq.h_nr_delayed.patch
patches/eevdf/WIP/0047-sched-fair-Do-not-try-to-migrate-delayed-dequeue-task.patch           <== ?
patches/eevdf/WIP/0065-sched-Change-ttwu_runnable-vs-sched_delayed.patch
patches/eevdf/WIP/0066-sched-Add-ttwu_queue-support-for-delayed-tasks.patch
patches/eevdf/WIP/0089-sched-fair-Prevent-negative-lag-increase-during-delayed-dequeue.patch <== ?

	-Mike

aside: benchmark preemption model sensitivity magnitude poked me in the
eye while testing, numbers below in case that's of interest to anyone.

preempt=voluntary
rpi5:..debug/sched # /usr/bin/stress-ng --pipe 4 --timeout 20s --metrics-brief
stress-ng: info:  [2566] setting to a 20 second run per stressor
stress-ng: info:  [2566] dispatching hogs: 4 pipe
stress-ng: metrc: [2566] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
stress-ng: metrc: [2566]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: metrc: [2566] pipe           45294217     20.00     22.71     57.23   2264640.83      566587.74
stress-ng: metrc: [2566] miscellaneous metrics:
stress-ng: metrc: [2566] pipe                 276.48 MB per sec pipe write rate (geometic mean of 4 instances)
stress-ng: info:  [2566] successful run completed in 20.01s
rpi5:..debug/sched # echo NO_DELAY_DEQUEUE > features
rpi5:..debug/sched # /usr/bin/stress-ng --pipe 4 --timeout 20s --metrics-brief
stress-ng: info:  [2650] setting to a 20 second run per stressor
stress-ng: info:  [2650] dispatching hogs: 4 pipe
stress-ng: metrc: [2650] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
stress-ng: metrc: [2650]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: metrc: [2650] pipe           45379684     20.00     22.69     57.24   2268917.79      567687.53
stress-ng: metrc: [2650] miscellaneous metrics:
stress-ng: metrc: [2650] pipe                 276.99 MB per sec pipe write rate (geometic mean of 4 instances)
stress-ng: info:  [2650] successful run completed in 20.00s
rpi5:..debug/sched # echo DELAY_DEQUEUE > features
rpi5:..debug/sched # /usr/bin/stress-ng --pipe 4 --timeout 20s --metrics-brief
stress-ng: info:  [2721] setting to a 20 second run per stressor
stress-ng: info:  [2721] dispatching hogs: 4 pipe
stress-ng: metrc: [2721] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
stress-ng: metrc: [2721]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: metrc: [2721] pipe           45217909     20.00     21.81     58.13   2260821.48      565698.97
stress-ng: metrc: [2721] miscellaneous metrics:
stress-ng: metrc: [2721] pipe                 276.00 MB per sec pipe write rate (geometic mean of 4 instances)
stress-ng: info:  [2721] successful run completed in 20.00s
rpi5:..debug/sched #

preempt=lazy
rpi5:..debug/sched # /usr/bin/stress-ng --pipe 4 --timeout 20s --metrics-brief
stress-ng: info:  [2070] setting to a 20 second run per stressor
stress-ng: info:  [2070] dispatching hogs: 4 pipe
stress-ng: metrc: [2070] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
stress-ng: metrc: [2070]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: metrc: [2070] pipe           32706095     20.00     17.88     62.02   1635263.85      409343.56
stress-ng: metrc: [2070] miscellaneous metrics:
stress-ng: metrc: [2070] pipe                 199.63 MB per sec pipe write rate (geometic mean of 4 instances)
stress-ng: info:  [2070] successful run completed in 20.00s
rpi5:..debug/sched # echo NO_DELAY_DEQUEUE > features
rpi5:..debug/sched # /usr/bin/stress-ng --pipe 4 --timeout 20s --metrics-brief
stress-ng: info:  [2149] setting to a 20 second run per stressor
stress-ng: info:  [2149] dispatching hogs: 4 pipe
stress-ng: metrc: [2149] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
stress-ng: metrc: [2149]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: metrc: [2149] pipe           32226171     20.00     17.93     61.98   1611264.75      403306.31
stress-ng: metrc: [2149] miscellaneous metrics:
stress-ng: metrc: [2149] pipe                 196.70 MB per sec pipe write rate (geometic mean of 4 instances)
stress-ng: info:  [2149] successful run completed in 20.01s
rpi5:..debug/sched # echo DELAY_DEQUEUE > features
rpi5:..debug/sched # /usr/bin/stress-ng --pipe 4 --timeout 20s --metrics-brief
stress-ng: info:  [2210] setting to a 20 second run per stressor
stress-ng: info:  [2210] dispatching hogs: 4 pipe
stress-ng: metrc: [2210] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
stress-ng: metrc: [2210]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: metrc: [2210] pipe           32762333     20.00     18.08     61.86   1638067.42      409835.28
stress-ng: metrc: [2210] miscellaneous metrics:
stress-ng: metrc: [2210] pipe                 199.99 MB per sec pipe write rate (geometic mean of 4 instances)
stress-ng: info:  [2210] successful run completed in 20.01s

 

  reply	other threads:[~2026-04-21  3:55 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-16 12:22 Tom Gebhardt
2026-04-16 20:04 ` Christian Loehle
2026-04-17 15:42 ` Vincent Guittot
2026-04-18 16:12   ` Tom Gebhardt
2026-04-20 14:27     ` Vincent Guittot
2026-04-20  3:53 ` Mike Galbraith
2026-04-20 10:59   ` Tom Gebhardt
2026-04-21  3:55     ` Mike Galbraith [this message]
2026-04-21 12:46       ` Tom Gebhardt
2026-04-21 13:14         ` Mike Galbraith
2026-04-23  4:51       ` Mike Galbraith
2026-04-23  8:04         ` Peter Zijlstra

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=0a93288ace2a95616066f7a26cc45d6407dc5147.camel@gmx.de \
    --to=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tomge68@gmail.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

all inboxes | Powered by JetHome®