Re: [PATCH v4 04/22] kthread: Add create_kthread_worker*()

From: Petr Mladek
Date: Tue Feb 16 2016 - 11:11:49 EST


On Tue 2016-02-16 16:44:43, Petr Mladek wrote:
> On Mon 2016-01-25 13:53:39, Tejun Heo wrote:
> > On Mon, Jan 25, 2016 at 04:44:53PM +0100, Petr Mladek wrote:
> > > +struct kthread_worker *
> > > +create_kthread_worker_on_cpu(int cpu, const char namefmt[])
> > > +{
> > > + if (cpu < 0 || cpu > num_possible_cpus())
> > > + return ERR_PTR(-EINVAL);
> >
> > Comparing cpu ID to num_possible_cpus() doesn't make any sense. It
> > should either be testing against cpu_possible_mask or testing against
> > nr_cpu_ids. Does this test need to be in this function at all?
>
> I wanted to be sure. The cpu number is later passed to
> cpu_to_node(cpu) in kthread_create_on_cpu().
>
> I am going to replace this with a check against nr_cpu_ids in
> kthread_create_on_cpu() which makes more sense.
>
> I might be too paranoid. But this is slow path. People
> do mistakes...

I take it back. I will remove the check at all.
Michal Hocko persuaded me offline that it does not make
much sense. This function is used from kernel code.
I need to believe that the usage is sane at this level.
Also too many checks makes the code harder to read.

Thanks,
Petr