On Wed, 2010-06-16 at 17:50 +0200, Tejun Heo wrote:
It's not a flushing situation .. The high priority thread is a userspace
thread so it , AFAIK, can't flush any workqueues.
I didn't see anything in there related to this discussion.
Why not? They currently are to no known ill effects (none that I know
of).
It may not have been a feature in the past, but it's used as a feature
now.. So it is a feature even tho you don't want it to be.
But it is in the mainline, that's why we're talking right now.
What I was thinking is that you could have a debugfs interface which
would list off what workqueues you system is processing and give the
user the ability to pull one or more of those workqueues into individual
threads for processing, just like it currently is. That way I can
prioritize the work items with out you having to give priorities through
your entire system.
The alternative is that you would give each work item a settable
priority and your whole system would have to honor that, which would be
a little like re-creating the scheduler.
The cases are all in the mainline kernel, you just have to look at the
code in a different way to understand them .. If I have a userspace
thread at a high priority and I'm making calls into the kernel, some of
those call inevitably will put work items onto workqueues, right? I'm
sure you can think of 100's of ways in which this could happen .. At
that point my thread depends on the workqueue thread, since the
workqueue thread is doing processing for which I've , in some way,
requested from userspace.
Daniel
--