[PATCH v2 0/2] sched, cgroup/cpuset: Keep user set cpus affinity

From: Waiman Long
Date: Mon Aug 01 2022 - 11:41:57 EST


v2:
- Rework the v1 patch by extending the semantics of user_cpus_ptr to
store user set cpus affinity and keeping to it as much as possible.

The user_cpus_ptr field is added by commit b90ca8badbd1 ("sched:
Introduce task_struct::user_cpus_ptr to track requested affinity")
which uses it narrowly to allow keeping cpus affinity intact with
asymmetric cpu setup.

This patchset extends user_cpus_ptr to store user set cpus affinity
via sched_setaffinity() API. With that information avaiable, it will
enable cpuset to keep cpus afinity as close to what the user wants as
possible within the cpu list constraint of the current cpuset.

Waiman Long (2):
sched: Use user_cpus_ptr for saving user provided cpumask in
sched_setaffinity()
cgroup/cpuset: Keep user set cpus affinity

include/linux/sched.h | 1 +
kernel/cgroup/cpuset.c | 24 ++++++++++++--
kernel/sched/core.c | 71 ++++++++++++++++++++++++++++++------------
kernel/sched/sched.h | 1 -
4 files changed, 74 insertions(+), 23 deletions(-)

--
2.31.1