Messages in this thread | | | Date | Mon, 24 Sep 2012 11:05:16 -0700 | From | Tejun Heo <> | Subject | Re: [PATCH] memstick: add support for legacy memorysticks |
| |
Hello,
On Mon, Sep 24, 2012 at 05:09:23PM +0200, Maxim Levitsky wrote: > > Now that my exams done.... > > Can you spare me from using a workqueue?
I'd much prefer if you convert to workqueue.
> > The point is that using current model I wake the worker thread as much > > as I want to, and I know that it will be woken once an will do all the > > work till request queue is empty.
You can do exactly the same thing by scheduling the same work item multiple times. "Waking up" just becomes "scheduling the work item".
> > With workqueues, it doesn't work this way. I have to pass the request as > > a work item or something like that. > > Any pointers?
No, there's no reason to change the structure of the code in any way. Just use a work item as you would use a kthread.
> Also probably due to that reason MMC doesn't use a workqueue ether, but > a raw kthread, in pretty much same way I do.
Mostly because I haven't gotten around to convert it yet. The problems with direct kthread usage are that they're much more difficult to get completely correct with freeze and exit conditions - the last time I checked it was easier to spot broken ones than correct ones - and they create dedicated threads which usually are underutilized.
Thanks.
-- tejun
| |