All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] sched/rt: Disable RT_RUNTIME_SHARE by default
@ 2016-11-16 20:19 Daniel Bristot de Oliveira
  2017-01-02 17:21 ` Daniel Bristot de Oliveira
  0 siblings, 1 reply; 2+ messages in thread
From: Daniel Bristot de Oliveira @ 2016-11-16 20:19 UTC (permalink / raw)
  To: Ingo Molnar, Peter Zijlstra
  Cc: Steven Rostedt, Clark Williams, Luis Claudio R . Goncalves, linux-kernel

The RT_RUNTIME_SHARE sched feature enables the sharing of rt_runtime
between CPUs, allowing a CPU to run a real-time task up to 100% of the
time while leaving more space for non-real-time tasks to run on the CPU
that lend rt_runtime.

The problem is that a CPU can easily borrow enough rt_runtime to allow
a spinning rt-task to run forever, starving per-cpu tasks like kworkers,
which are non-real-time by design.

This patch disables RT_RUNTIME_SHARE by default, avoiding this problem.
The feature will still be present for users that want to enable it,
though. It also documents this option.

v1->v2:
 Unified the documentation and the disabling in a single patch

Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Clark Williams <williams@redhat.com>
Cc: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
Cc: linux-kernel@vger.kernel.org
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>

diff --git a/kernel/sched/features.h b/kernel/sched/features.h
index 69631fa..d609ca9 100644
--- a/kernel/sched/features.h
+++ b/kernel/sched/features.h
@@ -65,7 +65,17 @@ SCHED_FEAT(RT_PUSH_IPI, true)
 #endif
 
 SCHED_FEAT(FORCE_SD_OVERLAP, false)
-SCHED_FEAT(RT_RUNTIME_SHARE, true)
+
+/*
+ * Enables the sharing of rt_runtime between CPUs, allowing a CPU to
+ * run real-time tasks up to 100% of the time while leaving more
+ * space for non-real-time tasks to run on the CPU that lend rt_runtime.
+ *
+ * WARNING: This may allow the starvation of non-real-time tasks pinned
+ * to the CPU in which spinning rt-tasks run forever.
+ */
+SCHED_FEAT(RT_RUNTIME_SHARE, false)
+
 SCHED_FEAT(LB_MIN, false)
 SCHED_FEAT(ATTACH_AGE_LOAD, true)
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] sched/rt: Disable RT_RUNTIME_SHARE by default
  2016-11-16 20:19 [PATCH v2] sched/rt: Disable RT_RUNTIME_SHARE by default Daniel Bristot de Oliveira
@ 2017-01-02 17:21 ` Daniel Bristot de Oliveira
  0 siblings, 0 replies; 2+ messages in thread
From: Daniel Bristot de Oliveira @ 2017-01-02 17:21 UTC (permalink / raw)
  To: Ingo Molnar, Peter Zijlstra
  Cc: Steven Rostedt, Clark Williams, Luis Claudio R . Goncalves, linux-kernel

On 11/16/2016 09:19 PM, Daniel Bristot de Oliveira wrote:
> The RT_RUNTIME_SHARE sched feature enables the sharing of rt_runtime
> between CPUs, allowing a CPU to run a real-time task up to 100% of the
> time while leaving more space for non-real-time tasks to run on the CPU
> that lend rt_runtime.
> 
> The problem is that a CPU can easily borrow enough rt_runtime to allow
> a spinning rt-task to run forever, starving per-cpu tasks like kworkers,
> which are non-real-time by design.
> 
> This patch disables RT_RUNTIME_SHARE by default, avoiding this problem.
> The feature will still be present for users that want to enable it,
> though. It also documents this option.
> 
> v1->v2:
>  Unified the documentation and the disabling in a single patch
> 
> Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Cc: Clark Williams <williams@redhat.com>
> Cc: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
> Cc: linux-kernel@vger.kernel.org
> Acked-by: Steven Rostedt <rostedt@goodmis.org>
> Acked-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>

This is a gentle ping :-)

any additional comment for this patch?

-- Daniel

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-01-02 17:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-16 20:19 [PATCH v2] sched/rt: Disable RT_RUNTIME_SHARE by default Daniel Bristot de Oliveira
2017-01-02 17:21 ` Daniel Bristot de Oliveira

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.