From: David Laight <david.laight.linux@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Joel Fernandes <joel@joelfernandes.org>,
Prakash Sangappa <prakash.sangappa@oracle.com>,
Peter Zijlstra <peterz@infradead.org>,
linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Ankur Arora <ankur.a.arora@oracle.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-mm@kvack.org, x86@kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
luto@kernel.org, bp@alien8.de, dave.hansen@linux.intel.com,
hpa@zytor.com, juri.lelli@redhat.com, vincent.guittot@linaro.org,
willy@infradead.org, mgorman@suse.de, jon.grimm@amd.com,
bharata@amd.com, raghavendra.kt@amd.com,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
Konrad Wilk <konrad.wilk@oracle.com>,
jgross@suse.com, Andrew.Cooper3@citrix.com,
Vineeth Pillai <vineethrp@google.com>,
Suleiman Souhlal <suleiman@google.com>,
Ingo Molnar <mingo@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Clark Williams <clark.williams@gmail.com>,
bigeasy@linutronix.de, daniel.wagner@suse.com,
Joseph Salisbury <joseph.salisbury@oracle.com>,
broonie@gmail.com
Subject: Re: [RFC][PATCH 1/2] sched: Extended scheduler time slice
Date: Mon, 10 Feb 2025 17:20:59 +0000 [thread overview]
Message-ID: <20250210172059.07cda916@pumpkin> (raw)
In-Reply-To: <20250206083039.0916ad24@gandalf.local.home>
On Thu, 6 Feb 2025 08:30:39 -0500
Steven Rostedt <rostedt@goodmis.org> wrote:
> On Wed, 5 Feb 2025 22:07:12 -0500
> Joel Fernandes <joel@joelfernandes.org> wrote:
> > >
> > > RT tasks don't have a time slice. They are affected by events. An external
> > > interrupt coming in, or a timer going off that states something is
> > > happening. Perhaps we could use this for SCHED_RR or maybe even
> > > SCHED_DEADLINE, as those do have time slices.
> > >
> > > But if it does get used, it should only be used when the task being
> > > scheduled is the same SCHED_RR priority, or if SCHED_DEADLINE will not fail
> > > its guarantees.
> > >
> >
> > Right, it would apply still to RR/DL though...
>
> But it would have to guarantee that the RR it is delaying is of the same
> priority, and that delaying the DL is not going to cause something to miss
> its deadline.
>
> >
> > > > In any case, if you want this to only work on FAIR tasks and not RT
> > > > tasks, why is that only possible to do with rseq() + LAZY preemption
> > > > and not Prakash's new API + all preemption modes?
> > > >
> > > > Also you can just ignore RT tasks (not that I'm saying that's a good
> > > > idea but..) in taskshrd_delay_resched() in that patch if you ever
> > > > wanted to do that.
> > > >
> > > > I just feel the RT latency thing is a non-issue AFAICS.
> > >
> > > Have you worked on any RT projects before?
> >
> > Heh.. I think maybe you misunderstood my statement, I was mentioning
> > that I felt (similar to Peter I think) that NOT adopting this feature
> > generically for all tasks due to a concern of 50us latency maybe does
> > not make sense since poorly designed app / random hardware already
> > have this issue. I think the main concern discussed in this thread is
> > (and please CMIIW):
>
> We have code that has sub 100us latency and less. If some random user space
> application applies this, adding 50us (or even 20us) will break these. And
> this has nothing to do with poorly designed applications or hardware.
>
> By adding this as a feature that works everywhere, you will break use cases
> that work today.
Hmmm... you lose big-time anyway.
All you need is a lot of network traffic 'pinch' the process context until
the hardware interrupt, NAPI softint code and rcu softint code completes.
That can easily take several milliseconds.
We managed to get a trace of a SCHED_FIFO task being pre-empted by a
higher priority SCHED_FIFO task.
The chosen target cpu was active running a worker thread.
That got interrupted and ran softint code for several milliseconds.
Other cpu became idle, but the scheduler rather expects to be able
to run RT threads on the cpu it chooses.
The same can happen if an RT thread grabs a mutex for a short time.
All it takes is a hardware interrupt and the mutex hold time goes
through the roof.
You don't need a context switch to hurt you.
The only userspace fix is to replace all the mutex with atomic operations.
(And even they can be griefsome because they are measurable slow.)
David
next prev parent reply other threads:[~2025-02-10 17:21 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-31 22:58 [RFC][PATCH 0/2] sched: Extended Scheduler Time Slice revisited Steven Rostedt
2025-01-31 22:58 ` [RFC][PATCH 1/2] sched: Extended scheduler time slice Steven Rostedt
2025-02-01 11:59 ` Peter Zijlstra
2025-02-01 12:47 ` Steven Rostedt
2025-02-01 18:11 ` Peter Zijlstra
2025-02-01 23:06 ` Steven Rostedt
2025-02-03 8:43 ` Peter Zijlstra
2025-02-03 8:53 ` Peter Zijlstra
2025-02-03 16:45 ` Steven Rostedt
2025-02-04 3:28 ` Suleiman Souhlal
2025-02-04 3:57 ` Steven Rostedt
2025-02-04 9:16 ` Peter Zijlstra
2025-02-04 12:51 ` Steven Rostedt
2025-02-04 13:16 ` Steven Rostedt
2025-02-04 15:05 ` Steven Rostedt
2025-02-04 15:30 ` Peter Zijlstra
2025-02-04 16:11 ` Steven Rostedt
2025-02-05 9:07 ` Peter Zijlstra
2025-02-05 13:10 ` Steven Rostedt
2025-02-05 13:44 ` Steven Rostedt
2025-02-04 22:44 ` Prakash Sangappa
2025-02-05 0:56 ` Joel Fernandes
2025-02-05 3:04 ` Steven Rostedt
2025-02-05 5:09 ` Joel Fernandes
2025-02-05 13:16 ` Steven Rostedt
2025-02-05 13:38 ` Steven Rostedt
2025-02-05 21:08 ` Prakash Sangappa
2025-02-05 21:19 ` Steven Rostedt
2025-02-05 21:33 ` Steven Rostedt
2025-02-05 21:36 ` Prakash Sangappa
2025-02-06 3:07 ` Joel Fernandes
2025-02-06 13:30 ` Steven Rostedt
2025-02-06 13:44 ` Sebastian Andrzej Siewior
2025-02-06 13:48 ` Peter Zijlstra
2025-02-06 13:53 ` Sebastian Andrzej Siewior
2025-02-06 13:57 ` Peter Zijlstra
2025-02-06 14:20 ` Steven Rostedt
2025-02-06 14:22 ` Sebastian Andrzej Siewior
2025-02-06 14:27 ` Peter Zijlstra
2025-02-06 14:57 ` Steven Rostedt
2025-02-06 15:01 ` Sebastian Andrzej Siewior
2025-02-10 19:43 ` Steven Rostedt
2025-02-10 22:04 ` David Laight
2025-02-10 22:15 ` Steven Rostedt
2025-02-11 8:21 ` Sebastian Andrzej Siewior
2025-02-11 10:57 ` Peter Zijlstra
2025-02-11 15:28 ` Steven Rostedt
2025-02-12 12:11 ` Sebastian Andrzej Siewior
2025-02-12 15:00 ` Steven Rostedt
2025-02-12 15:18 ` Sebastian Andrzej Siewior
2025-02-10 14:07 ` Joel Fernandes
2025-02-10 19:48 ` Steven Rostedt
2025-02-10 17:20 ` David Laight [this message]
2025-02-10 17:27 ` Steven Rostedt
2025-02-10 19:44 ` Steven Rostedt
2025-02-10 21:51 ` David Laight
2025-02-10 21:58 ` Steven Rostedt
2025-02-01 14:35 ` Mathieu Desnoyers
2025-02-01 23:08 ` Steven Rostedt
2025-02-01 23:18 ` Linus Torvalds
2025-02-01 23:35 ` Linus Torvalds
2025-02-02 3:26 ` Steven Rostedt
2025-02-02 3:22 ` Steven Rostedt
2025-02-02 7:22 ` Matthew Wilcox
2025-02-02 22:29 ` Steven Rostedt
2025-01-31 22:58 ` [RFC][PATCH 2/2] sched: Shorten time that tasks can extend their time slice for Steven Rostedt
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=20250210172059.07cda916@pumpkin \
--to=david.laight.linux@gmail.com \
--cc=Andrew.Cooper3@citrix.com \
--cc=akpm@linux-foundation.org \
--cc=ankur.a.arora@oracle.com \
--cc=bharata@amd.com \
--cc=bigeasy@linutronix.de \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=broonie@gmail.com \
--cc=clark.williams@gmail.com \
--cc=daniel.wagner@suse.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=joel@joelfernandes.org \
--cc=jon.grimm@amd.com \
--cc=joseph.salisbury@oracle.com \
--cc=juri.lelli@redhat.com \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mgorman@suse.de \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=prakash.sangappa@oracle.com \
--cc=raghavendra.kt@amd.com \
--cc=rostedt@goodmis.org \
--cc=suleiman@google.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=vincent.guittot@linaro.org \
--cc=vineethrp@google.com \
--cc=willy@infradead.org \
--cc=x86@kernel.org \
/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