Re: Overview of concurrency managed workqueue

From: Daniel Walker
Date: Thu Jun 17 2010 - 12:57:00 EST


On Thu, 2010-06-17 at 08:01 -0400, Andy Walls wrote:
> On Wed, 2010-06-16 at 07:05 -0700, Daniel Walker wrote:
> > On Wed, 2010-06-16 at 15:45 +0200, Tejun Heo wrote:
> > > On 06/16/2010 03:41 PM, Daniel Walker wrote:
> > > > Any workqueue that has a thread which can be prioritized from userspace.
> > > > As long as there is a thread it can usually be given a priority from
> > > > userspace, so any _current_ workqueue which uses a single thread or
> > > > multiple threads is an example of what I'm talking about.
> > >
> > > Eh... what's the use case for that? That's just so wrong. What do
> > > you do after a suspend/resume cycle? Reprioritize all of them from
> > > suspend/resume hooks?
> >
> > The use case is any situation when the user wants to give higher
> > priority to some set of work items, and there's nothing wrong with that.
> > In fact there has been a lot of work in the RT kernel related to
> > workqueue prioritization ..
>
> I'm going to agree with Tejun, that tweaking worker thread priorities
> seems like an odd thing, since they are meant to handle deferable
> actions - things that can be put off until later.

Running RT threads at all can be thought of as odd , but it's an
available feature. In order to effectively run RT threads it's best if
your able to prioritize the system, and that is available with current
workqueues period ..

The problem is Tejun is removing that , ok so maybe this feature of
workqueues is an odd thing to use (just like using RT threads). However,
people are still doing it, it is useful, and it is available in mainline
(and has been for a long time) ..

All I'm asking Tejun to do is have feature parity with current mainline,
and it's not even that hard to do that.

> If one needs to support Real Time deadlines on deferable actions,
> wouldn't using dedicated kernel threads be more deterministic?
> Would the user ever up the priority for a workqueue other than a
> single-threaded workqueue?

It's in a thread and you can prioritize it , so it's only deferable if
the user defines it that way. What your suggesting with dedicated
threads _might_ be something you would do in the long run, but to
satisfy my current of-the-moment needs I would rather re-prioritize the
workqueue instead of investing a significant amount of time re-writing
the driver when it's unknown if that would even help..

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/