Messages in this thread |  | | Date | Tue, 5 Feb 2013 23:18:52 +0800 | Subject | Re: [PATCH 13/13] workqueue: record global worker ID instead of pool ID in work->data when off-queue | From | Lai Jiangshan <> |
| |
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/
|  |