Re: Work queue questions

From: Tejun Heo
Date: Mon Sep 24 2012 - 16:08:05 EST


Hello,

On Mon, Sep 24, 2012 at 08:57:40PM +0100, Deepawali Verma wrote:
> May be I misunderstood, I read in the documentation about max_active.
> In this case, max_active is 1, but I created three workqueues, do you

I see. Why are you doing that? Is there ordering requirement? Why
not just use system_unbound_wq?

> mean to say for this case, single thread can process three requests
> queued up in the three different workqueues.

In the following execution log you posted,

kworker/u:1-21 [000] 110.964895: task_event: MYTASKJOB2381 XStarted
kworker/u:1-21 [000] 110.964909: task_event: MYTASKJOB2381 Xstopped
kworker/u:1-21 [000] 110.965137: task_event: MYTASKJOB2382 XStarted
kworker/u:1-21 [000] 110.965154: task_event: MYTASKJOB2382 Xstopped
kworker/u:5-3724 [000] 110.965311: task_event: MYTASKJOB2383 XStarted
kworker/u:5-3724 [000] 110.965325: task_event: MYTASKJOB2383 Xstopped

The first two got executed on the same worker thread but the third one
is on a different one. It really looks like you just don't have large
enough work for scheduler to interleave them or migrate workers to
different CPUs.

Thanks.

--
tejun
--
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/