Re: Overview of concurrency managed workqueue

From: Daniel Walker
Date: Wed Jun 16 2010 - 09:27:20 EST


On Wed, 2010-06-16 at 14:10 +0200, Tejun Heo wrote:
> Hello,
>
> On 06/15/2010 09:43 PM, Daniel Walker wrote:
> > I noticed that you removed the RT workqueue since it's no longer used,
> > but it's possible that a user can raise the priority of a given work
> > queue thread into real time priorities. So with single threaded, and
> > multithreaded workqueues specific to certain areas of the kernel the
> > user would have a greater ability to control priorities of those areas.
> >
> > It looks like with your patches it would remove that level of
> > flexability effectively making all the work item the same priority with
> > no ability to raise or lower .. Is that accurate ?
>
> Yes, that is. With new cmwq, a wq can't assume association with
> specific kthread and thus can't use wq as simple frontend to kthreads,
> but if somebody wants dedicated kthreads instead of shared ones in
> units of work, [s]he should be using kthread.

I'm not talking about coders using workqueues when they should be using
kthreads .. We're talking about currently existing workqueues. Aren't
you converting all _current_ workqueues to your system?

> wq does provide nicer tools for synchronization but in general I don't
> think using kthread is too hard and there aren't too many cases
> anyway. If there are many users && kthread is difficult to use
> directly, we can definitely write up a wrapping layer tho. But I
> really think using wq as wrapper around kthreads and manipulating
> worker thread directly is an abusement.

It would be a hack the user would have to patch onto there kernel in
order to get back functionality your taking away.

I think from your perspective workqueue threads are all used for
"concurrency management" only, but I don't think that's true. Some will
be user for prioritization (I'm talking about _current_ workqueues).

Could you address or ponder how the work items could be prioritized
under your system?

Daniel

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