Re: [PATCH 13/13] workqueue: record global worker ID instead of pool ID in work->data when off-queue

Lai Jiangshan
2013-02-05T15:18:54Z

On Tue, Feb 5, 2013 at 6:12 AM, Tejun Heo <tj@kernel.org> wrote:
> Hello,
>
> One more thing.
>
> On Fri, Feb 01, 2013 at 02:41:36AM +0800, Lai Jiangshan wrote:
>> @@ -1216,7 +1198,11 @@ static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
>> list_del_init(&work->entry);
>> cwq_dec_nr_in_flight(get_work_cwq(work), get_work_color(work));
>>
>> - clear_work_cwq(work, pool->id);
>> + /* Does the work is still running? */
>> + worker = find_worker_executing_work(pool, work);
>> + worker_gwid = worker ? worker->gwid: WORK_OFFQ_WORKER_NONE;
>> + clear_work_cwq(work, worker_gwid);
>
> Any chance we can remove the busy_hash? Having to keep it around
> isn't a big deal but it would be nice if can get rid of it.

It is very possible, but it needs a different trade-off.
And I didn't plan to implement it in the series.
I will discus it when this series is settled down.

Thanks,
lai

>
> Thanks.
>
> --
> tejun
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/