Messages in this thread | | | Date | Wed, 28 Jan 2009 12:33:28 +0100 | Subject | Re: [RFC v2][PATCH] create workqueue threads only when needed | From | Frédéric Weisbecker <> |
| |
2009/1/28 Peter Zijlstra <a.p.zijlstra@chello.nl>: > On Wed, 2009-01-28 at 04:02 +0100, Oleg Nesterov wrote: >> >> I must admit, I don't like this patch. Perhaps I am wrong, mostly I >> dislike the complications it adds. >> >> Anybody else please vote for this change? > > Because you asked ;-) > > I too am not particularly fond of it, for much the same reasons you > mentioned. > > While I think its good to reduce the number of random kernel threads, > I'm afraid this isn't a good way to do so. > > Why does everybody and his pony create their own workqueue, is that > really because it deadlocks with keventd, or are there other reasons, if > so, which, and can we solve those?
Even with the approach of shadow workqueues, these call sites that create pointless workqueues are still a problem that should be fixed, since they consume memory for their workqueue.
The reasons for these callsites are not easy to guess, they are not so much commented and it's hard to imagine if this is because of deadlocks with kevents, too long work which can starve other kevent work, or just funny workqueues....
Depending on the reason, I guess most of them can become threads created and destroyed on the fly, or async functions as Arjan suggested, or simple kevent works.
| |