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