Re: [PATCH v6 3/5] sched: Enforce user requested affinity

From: Peter Zijlstra
Date: Wed Aug 31 2022 - 05:21:38 EST


On Wed, Aug 31, 2022 at 11:18:22AM +0200, Peter Zijlstra wrote:
> On Thu, Aug 25, 2022 at 09:01:17PM -0400, Waiman Long wrote:
>
> > @@ -9352,6 +9381,11 @@ int sched_cpu_activate(unsigned int cpu)
> > sched_update_numa(cpu, true);
> > sched_domains_numa_masks_set(cpu);
> > cpuset_cpu_active();
> > + /*
> > + * Preallocated scratch cpumask
> > + */
> > + if (!rq->scratch_mask)
> > + rq->scratch_mask = kmalloc(cpumask_size(), GFP_KERNEL);
> > }
>
> this is too late; I think you'll have to add a sched_cpu_prepare() and
> simply fail the cpu-up when the allocation fails.

Alternatively, waste some more memory and add yet another per-cpu
cpumask.