linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: 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, 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@oracle.com, konrad.wilk@oracle.com,
	jgross@suse.com, andrew.cooper3@citrix.com,
	Joel Fernandes <joel@joelfernandes.org>,
	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@oracle.com, broonie@gmail.com
Subject: Re: [RFC][PATCH 1/2] sched: Extended scheduler time slice
Date: Tue, 4 Feb 2025 07:51:00 -0500	[thread overview]
Message-ID: <20250204075100.3fcbfda8@gandalf.local.home> (raw)
In-Reply-To: <20250204091613.GQ7145@noisy.programming.kicks-ass.net>

On Tue, 4 Feb 2025 10:16:13 +0100
Peter Zijlstra <peterz@infradead.org> wrote:

> And yes, you can still use the whole 'delay preemption' hint for RT
> tasks just fine. Spinlocks isn't the only thing. It can be used to make
> any RSEQ section more likely to succeed.
> 
> 
> > Patch 2 changes that to do what you wrote the last time. It has a max wait
> > time of 50us.  
> 
> I'm so confused, WTF do you then need the lazy crap?
> 
> You're making things needlessly complicated again.

Do we really want to delay an RT task by 50us?

That will cause a lot more regressions.

This is a performance feature not a latency one. RT tasks are about
limiting latency and will sacrifice performance to do so. PREEMPT_RT has
great minimal latency at the expense of performance. We try to improve
performance but never at the sacrifice of latency.

RT wakeups are also more predictable. That is, they happen when an event
comes in or a timer expires and when an RT task wakes up it is to run ASAP
to handle some event.

This is about SCHED_OTHER tasks where the scheduler decides when a task
gets to run and will preempt it when its quota is over. The task has no
idea when that will happen. This is about giving the kernel a hint that
it's a bad time to interrupt the task and if it can just wait another 50us
or less, then it would be fine to schedule. SCHED_OTHER tasks never have
latency requirements less than a millisecond. And SCHED_OTHER tasks are
effected by other SCHED_OTHER tasks, even those that are lower priority.

My patches here were based on where the NEED_RESCHED_LAZY came from, and
that was from the PREEMPT_RT patch. The problem was that the kernel would
allow preemption almost everywhere. This was great for RT tasks, but non RT
tasks suffered performance issues. That's because of the timer tick going
off while a SCHED_OTHER task was holding a spin_lock converted into a mutex
and it would be scheduled out while holding that sleeping spin_lock. This
increased the amount of contention on that spin_lock, and that affected
performance.

The fix was to introduce NEED_RESCHED_LAZY which would not have the
SCHED_OTHER task preempt while holding a sleeping spin_lock. This put back
the performance close to non PREEMPT_RT.

This work I'm doing is based on that. It doesn't make sense to delay RT
tasks for a performance improvement.

-- Steve


  reply	other threads:[~2025-02-04 12:50 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 [this message]
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
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=20250204075100.3fcbfda8@gandalf.local.home \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=andrew.cooper3@citrix.com \
    --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=raghavendra.kt@amd.com \
    --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