From: david laight <david.laight@runbox.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Prakash Sangappa <prakash.sangappa@oracle.com>,
LKML <linux-kernel@vger.kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
Boqun Feng <boqun.feng@gmail.com>,
Jonathan Corbet <corbet@lwn.net>,
Madadi Vineeth Reddy <vineethr@linux.ibm.com>,
K Prateek Nayak <kprateek.nayak@amd.com>,
Steven Rostedt <rostedt@goodmis.org>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Arnd Bergmann <arnd@arndb.de>,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>
Subject: Re: [patch V3 07/12] rseq: Implement syscall entry work for time slice extensions
Date: Fri, 21 Nov 2025 09:28:41 +0000 [thread overview]
Message-ID: <20251121092841.4a2e0cf0@pumpkin> (raw)
In-Reply-To: <874iqpkkid.ffs@tglx>
On Thu, 20 Nov 2025 12:31:54 +0100
Thomas Gleixner <tglx@linutronix.de> wrote:
...
> > • Due to the contentious nature of the workload these tests produce
> > highly erratic results, but the optimization is showing improved
> > performance across 3x tests with/without use of time slice extension.
> >
> > • Swingbench throughput with use of time slice optimization
> > • Run 1: 50,008.10
> > • Run 2: 59,160.60
> > • Run 3: 67,342.70
> > • Swingbench throughput without use of time slice optimization
> > • Run 1: 36,422.80
> > • Run 2: 33,186.00
> > • Run 3: 44,309.80
> > • The application performs 55% better on average with the optimization.
>
> 55% is insane.
>
> Could you please ask your performance guys to provide numbers for the
> below configurations to see how the different parts of this work are
> affecting the overall result:
>
> 1) Linux 6.17 (no rseq rework, no slice)
>
> 2) Linux 6.17 + your initial attempt to enable slice extension
>
> We already have the numbers for the full new stack above (with and
> without slice), so that should give us the full picture.
If is also worth checking that you don't have a single (or limited)
thread test where the busy thread is being bounced between cpu.
While busy the cpu frequency is increased, when moved to an idle
cpu it will initially run at the low frequency and then speed up.
This effect doubled the execution time of a (mostly) single threaded
fpga compile from 10 minutes to 20 minutes - all caused by one of
the mitigations that slowed down syscall entry/exit enough that a
load of basically idle processes that woke every 10ms to all be
active at once.
You've also got the underlying problem that you can't disable
interrupts in userspace.
If an ISR happens in your 'critical region' you just lose 'big time'.
Any threads that contend pretty much have to wait for the ISR
(and any non-threaded softints) to complete.
With heavy network traffic that can easily exceed 1ms.
Nothing you can to to the scheduler will change it.
David
next prev parent reply other threads:[~2025-11-21 9:29 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-29 13:22 [patch V3 00/12] rseq: Implement time slice extension mechanism Thomas Gleixner
2025-10-29 13:22 ` [patch V3 01/12] sched: Provide and use set_need_resched_current() Thomas Gleixner
2025-10-29 13:22 ` [patch V3 02/12] rseq: Add fields and constants for time slice extension Thomas Gleixner
2025-10-30 22:01 ` Prakash Sangappa
2025-10-31 14:32 ` Thomas Gleixner
2025-10-31 19:31 ` Mathieu Desnoyers
2025-10-31 20:58 ` Thomas Gleixner
2025-11-01 22:53 ` Thomas Gleixner
2025-11-03 17:00 ` Mathieu Desnoyers
2025-11-03 19:19 ` Florian Weimer
2025-11-04 0:20 ` Steven Rostedt
2025-10-29 13:22 ` [patch V3 03/12] rseq: Provide static branch for time slice extensions Thomas Gleixner
2025-10-29 17:23 ` Randy Dunlap
2025-10-29 21:12 ` Thomas Gleixner
2025-10-31 19:34 ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 04/12] rseq: Add statistics " Thomas Gleixner
2025-10-31 19:36 ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 05/12] rseq: Add prctl() to enable " Thomas Gleixner
2025-10-31 19:43 ` Mathieu Desnoyers
2025-10-31 21:05 ` Thomas Gleixner
2025-10-29 13:22 ` [patch V3 06/12] rseq: Implement sys_rseq_slice_yield() Thomas Gleixner
2025-10-31 19:46 ` Mathieu Desnoyers
2025-10-31 21:07 ` Thomas Gleixner
2025-11-03 17:07 ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 07/12] rseq: Implement syscall entry work for time slice extensions Thomas Gleixner
2025-10-31 19:53 ` Mathieu Desnoyers
2025-11-19 0:20 ` Prakash Sangappa
2025-11-19 15:25 ` Thomas Gleixner
2025-11-20 7:37 ` Prakash Sangappa
2025-11-20 11:31 ` Thomas Gleixner
2025-11-21 0:12 ` Prakash Sangappa
2025-11-26 22:02 ` Prakash Sangappa
2025-11-21 9:28 ` david laight [this message]
2025-10-29 13:22 ` [patch V3 08/12] rseq: Implement time slice extension enforcement timer Thomas Gleixner
2025-10-29 18:45 ` Steven Rostedt
2025-10-29 21:37 ` Thomas Gleixner
2025-10-29 23:53 ` Steven Rostedt
2025-10-31 19:59 ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 09/12] rseq: Reset slice extension when scheduled Thomas Gleixner
2025-10-31 20:03 ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 10/12] rseq: Implement rseq_grant_slice_extension() Thomas Gleixner
2025-10-29 20:08 ` Steven Rostedt
2025-10-29 21:46 ` Thomas Gleixner
2025-10-29 22:04 ` Steven Rostedt
2025-10-31 14:33 ` Thomas Gleixner
2025-10-29 13:22 ` [patch V3 11/12] entry: Hook up rseq time slice extension Thomas Gleixner
2025-10-29 13:22 ` [patch V3 12/12] selftests/rseq: Implement time slice extension test Thomas Gleixner
2025-10-29 15:10 ` [patch V3 00/12] rseq: Implement time slice extension mechanism Sebastian Andrzej Siewior
2025-10-29 15:40 ` Steven Rostedt
2025-10-29 21:49 ` Thomas Gleixner
2025-11-06 17:28 ` Prakash Sangappa
2025-11-10 14:23 ` Mathieu Desnoyers
2025-11-10 17:05 ` Mathieu Desnoyers
2025-11-11 16:42 ` Mathieu Desnoyers
2025-11-12 6:30 ` Prakash Sangappa
2025-11-12 20:40 ` Mathieu Desnoyers
2025-11-12 21:57 ` Thomas Gleixner
2025-11-12 23:17 ` Prakash Sangappa
2025-11-13 2:34 ` Prakash Sangappa
2025-11-13 14:38 ` Thomas Gleixner
2025-11-12 20:31 ` Thomas Gleixner
2025-11-12 20:46 ` Mathieu Desnoyers
2025-11-12 21:54 ` Thomas Gleixner
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=20251121092841.4a2e0cf0@pumpkin \
--to=david.laight@runbox.com \
--cc=arnd@arndb.de \
--cc=bigeasy@linutronix.de \
--cc=boqun.feng@gmail.com \
--cc=corbet@lwn.net \
--cc=kprateek.nayak@amd.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=prakash.sangappa@oracle.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=vineethr@linux.ibm.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