Re: [PATCH v4] sched/core: Use zero length to reset cpumasks in sched_setaffinity()

From: Peter Zijlstra
Date: Wed Oct 04 2023 - 05:44:02 EST


On Wed, Oct 04, 2023 at 11:23:41AM +0200, Ingo Molnar wrote:

> > if (user_mask) {
> > - cpumask_copy(user_mask, in_mask);
> > + /*
> > + * All-set user cpumask resets affinity and drops the explicit
> > + * user mask.
> > + */
> > + cpumask_and(user_mask, in_mask, cpu_possible_mask);
> > + if (cpumask_equal(user_mask, cpu_possible_mask)) {
> > + kfree(user_mask);
> > + user_mask = NULL;
> > + }
>
> Question: is there any observable behavioral difference between current
> (old) all-set cpumask calls and the patched (new) one?

Very little I think -- the main difference is that we no longer carry
the ->user_cpus_ptr mask around, and that saves a little masking.