Re: [PATCH 1/2] kthread_create

Jeff Garzik
2003-12-31T06:35:03Z

Rusty Russell wrote:
> For #2, if you really can't wait for keventd, perhaps your own
> workqueue is in order?

Way too wasteful, and doing so is working around a fundamental failing
of workqueues: keventd gives no guarantee that your scheduled work will
be executed this week, this month, or this year :)

keventd is used by two competing classes of users: those who want
low-latency, quick execution in task context (Tux-ish), and those who
just want to run something in task context, where they might sleep
(perhaps for a long time).

So it would be nice to have thread pool semantics occasionally found in
userspace: if thread pool is full when new work is queued,
_temporarily_ increase the pool size (or create a one-shot kthread).
Sure you have kthread creation overhead, but at least you have a
reasonable guarantee that your work won't wait 5-30 seconds or more
before being performed.

Jeff