lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Mon,  1 Jul 2024 18:00:22 +0530
From: Aboorva Devarajan <aboorvad@...ux.ibm.com>
To: tj@...nel.org, void@...ifault.com
Cc: aboorvad@...ux.ibm.com, linux-kernel@...r.kernel.org
Subject: [PATCH sched_ext/for-6.11] sched_ext: Documentation: Remove mentions of scx_bpf_switch_all

Updated sched_ext doc to eliminate references to scx_bpf_switch_all,
which has been removed in recent sched_ext versions.

Signed-off-by: Aboorva Devarajan <aboorvad@...ux.ibm.com>
---
 Documentation/scheduler/sched-ext.rst | 32 ++++++++++++++++-----------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/Documentation/scheduler/sched-ext.rst b/Documentation/scheduler/sched-ext.rst
index 497eeaa5ecbe..d887e9e11256 100644
--- a/Documentation/scheduler/sched-ext.rst
+++ b/Documentation/scheduler/sched-ext.rst
@@ -44,17 +44,24 @@ options should be enabled to use sched_ext:
     CONFIG_PAHOLE_HAS_SPLIT_BTF=y
     CONFIG_PAHOLE_HAS_BTF_TAG=y
 
-sched_ext is used only when the BPF scheduler is loaded and running.
 
-If a task explicitly sets its scheduling policy to ``SCHED_EXT``, it will be
-treated as ``SCHED_NORMAL`` and scheduled by CFS until the BPF scheduler is
-loaded. On load, such tasks will be switched to and scheduled by sched_ext.
+sched_ext is used only when the BPF scheduler is loaded and running. To use
+sched_ext, a task can invoke ``sched_setscheduler`` with the ``SCHED_EXT``
+policy constant.
 
-The BPF scheduler can choose to schedule all normal and lower class tasks by
-calling ``scx_bpf_switch_all()`` from its ``init()`` operation. In this
-case, all ``SCHED_NORMAL``, ``SCHED_BATCH``, ``SCHED_IDLE`` and
-``SCHED_EXT`` tasks are scheduled by sched_ext. In the example schedulers,
-this mode can be selected with the ``-a`` option.
+When the BPF scheduler is not loaded, tasks with the ``SCHED_EXT`` policy are
+treated as ``SCHED_NORMAL`` and scheduled by CFS. ``SCHED_NORMAL`` tasks
+continue to be scheduled by CFS.
+
+When the BPF scheduler is loaded, all tasks with the ``SCHED_EXT`` policy are
+switched to sched_ext. By default, if the ``struct ops->flag`` is not set to
+``SCX_OPS_SWITCH_PARTIAL``, ``SCHED_EXT``, ``SCHED_NORMAL``, and lower class
+tasks are scheduled by sched_ext. In this case, all ``SCHED_NORMAL``,
+``SCHED_BATCH``, ``SCHED_IDLE``, and ``SCHED_EXT`` tasks are scheduled by
+sched_ext.
+
+However, if the ``struct ops->flag`` is set to``SCX_OPS_SWITCH_PARTIAL``,
+only tasks with the policy set to ``SCHED_EXT`` are scheduled by sched_ext.
 
 Terminating the sched_ext scheduler program, triggering :kbd:`SysRq-S`, or
 detection of any internal error including stalled runnable tasks aborts the
@@ -156,13 +163,12 @@ optional. The following modified excerpt is from
             scx_bpf_dispatch(p, SCX_DSQ_GLOBAL, SCX_SLICE_DFL, enq_flags);
     }
 
-    s32 BPF_STRUCT_OPS(simple_init)
+    s32 BPF_STRUCT_OPS_SLEEPABLE(simple_init)
     {
             /*
-             * All SCHED_OTHER, SCHED_IDLE, and SCHED_BATCH tasks should
-             * use sched_ext.
+             * By default, all SCHED_EXT, SCHED_OTHER, SCHED_IDLE, and
+             * SCHED_BATCH tasks should use sched_ext.
              */
-            scx_bpf_switch_all();
             return 0;
     }
 
-- 
2.25.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ