Re: [PATCH 06/10] workqueue: convert worker_idr to worker_ida

Tejun Heo
2014-05-06T16:38:27Z

Hello,

On Tue, May 06, 2014 at 12:35:24PM -0400, Tejun Heo wrote:
> On Wed, May 07, 2014 at 12:33:34AM +0800, Lai Jiangshan wrote:
> > On Mon, May 5, 2014 at 10:59 PM, Tejun Heo <tj@kernel.org> wrote:
> > > On Sun, Apr 27, 2014 at 12:09:01PM +0800, Lai Jiangshan wrote:
> > >> @@ -2224,6 +2220,9 @@ woke_up:
> > >> spin_unlock_irq(&pool->lock);
> > >> WARN_ON_ONCE(!list_empty(&worker->entry));
> > >> worker->task->flags &= ~PF_WQ_WORKER;
> > >> +
> > >> + set_task_comm(worker->task, "kworker_die");
> > >> + ida_simple_remove(&pool->worker_ida, worker->id);
> > >> worker_unbind_pool(worker);
> > >> kfree(worker);
> > >> return 0;
> > >
> > > Does this chunk belong to this patch? Why no description about this
> > > change?
> >
> > "set_task_comm()" doesn't belong to this patch. it avoids two workers
> > have the same name.(one is dying, the other one is newly created"
>
> Separate out this to a separate patch? A better name would be
> "kworker_dying". Does this matter tho?

On the second thought, before these patches, we only freed ID after
the task exited, right? Hmm... yeah, it can be confusing for
debugging. Can you please do the above in the patch which moves IDR
freeing to the worker itself and explain accordingly?

Thanks.

--
tejun