Re: [PATCH v3] sched/core: Use empty mask to reset cpumasks in sched_setaffinity()

From: Peter Zijlstra
Date: Tue Oct 03 2023 - 06:06:30 EST


On Thu, Aug 03, 2023 at 10:32:18PM -0400, Waiman Long wrote:
> Since commit 8f9ea86fdf99 ("sched: Always preserve the user requested
> cpumask"), user provided CPU affinity via sched_setaffinity(2) is
> perserved even if the task is being moved to a different cpuset. However,
> that affinity is also being inherited by any subsequently created child
> processes which may not want or be aware of that affinity.
>
> One way to solve this problem is to provide a way to back off from
> that user provided CPU affinity. This patch implements such a scheme
> by using an empty cpumask to signal a reset of the cpumasks to the
> default as allowed by the current cpuset.

So I still don't like this much, the normal state is all bits set:

$ grep allowed /proc/self/status
Cpus_allowed: ff,ffffffff

The all clear bitmask just feels weird for this.