sched_deadline, docs: add affinity setting with cgroup2 cpuset controller

Setting the cpu affinity mask of a SCHED_DEADLINE process using the cgroup v1
cpuset controller is already detailed. Add similar information for cgroup v2's
cpuset controller.

Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
Reviewed-by: Juri Lelli <juri.lelli@redhat.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20250527-sched-deadline-cpu-affinity-v2-2-b8b40a4feefa@sony.com
This commit is contained in:
Shashank Balaji 2025-05-27 23:55:58 +09:00 committed by Jonathan Corbet
parent ab8531cdb1
commit 0116765035

View File

@ -20,7 +20,8 @@ Deadline Task Scheduling
4.3 Default behavior 4.3 Default behavior
4.4 Behavior of sched_yield() 4.4 Behavior of sched_yield()
5. Tasks CPU affinity 5. Tasks CPU affinity
5.1 SCHED_DEADLINE and cpusets HOWTO 5.1 Using cgroup v1 cpuset controller
5.2 Using cgroup v2 cpuset controller
6. Future plans 6. Future plans
A. Test suite A. Test suite
B. Minimal main() B. Minimal main()
@ -671,12 +672,15 @@ Deadline Task Scheduling
5. Tasks CPU affinity 5. Tasks CPU affinity
===================== =====================
-deadline tasks cannot have an affinity mask smaller that the entire Deadline tasks cannot have a cpu affinity mask smaller than the root domain they
root_domain they are created on. However, affinities can be specified are created on. So, using ``sched_setaffinity(2)`` won't work. Instead, the
through the cpuset facility (Documentation/admin-guide/cgroup-v1/cpusets.rst). the deadline task should be created in a restricted root domain. This can be
done using the cpuset controller of either cgroup v1 (deprecated) or cgroup v2.
See :ref:`Documentation/admin-guide/cgroup-v1/cpusets.rst <cpusets>` and
:ref:`Documentation/admin-guide/cgroup-v2.rst <cgroup-v2>` for more information.
5.1 SCHED_DEADLINE and cpusets HOWTO 5.1 Using cgroup v1 cpuset controller
------------------------------------ -------------------------------------
An example of a simple configuration (pin a -deadline task to CPU0) follows:: An example of a simple configuration (pin a -deadline task to CPU0) follows::
@ -693,6 +697,19 @@ Deadline Task Scheduling
echo $$ > cpu0/tasks echo $$ > cpu0/tasks
chrt --sched-runtime 100000 --sched-period 200000 --deadline 0 yes > /dev/null chrt --sched-runtime 100000 --sched-period 200000 --deadline 0 yes > /dev/null
5.2 Using cgroup v2 cpuset controller
-------------------------------------
Assuming the cgroup v2 root is mounted at ``/sys/fs/cgroup``.
cd /sys/fs/cgroup
echo '+cpuset' > cgroup.subtree_control
mkdir deadline_group
echo 0 > deadline_group/cpuset.cpus
echo 'root' > deadline_group/cpuset.cpus.partition
echo $$ > deadline_group/cgroup.procs
chrt --sched-runtime 100000 --sched-period 200000 --deadline 0 yes > /dev/null
6. Future plans 6. Future plans
=============== ===============