Re: [PATCH] rcu: Only pin GP kthread when full dynticks is actually used

From: Frederic Weisbecker
Date: Fri Jun 13 2014 - 12:09:51 EST


On Fri, Jun 13, 2014 at 08:58:12AM -0700, Paul E. McKenney wrote:
> > Maybe what we should do instead is to have something like this on RCU kthread init:
> >
> > cpumask_var_t gp_kthread_mask;
> >
> > if (alloc_cpumask_var(gp_kthread_mask, GFP_KERNEL))
> > return -EFAULT;
> >
> > cpumask_andnot(gp_kthread_mask, cpu_possible_mask, tick_nohz_full_mask);
> >
> > set_cpus_allowed_ptr(current, gp_kthread_mask);
> >
> > free_cpumask_var(gp_kthread_mask);
>
> I was guessing that RCU's kthreads would not be the only ones that wanted
> similar binding. But if you feel strongly about this, we could at least
> start by placing it local to RCU as above.

Hmm, I don't feel well creating mirrored cpumasks (nor solely negation cpumasks in general).
Also exposing that nohz gut is probably not a good idea either, except for RCU due to
the sysidle stuff.

Now you're right that we can expect that this non-nohz affinity stuff is going to be reused.

Could it be housekeeping_affine(struct task_struct *tsk) maybe?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/