From: Jeff Garzik <jgarzik@pobox.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Fix up riscom8 driver to use work queues instead of task queueing.
Date: Mon, 18 Aug 2003 15:25:30 -0400 [thread overview]
Message-ID: <20030818192529.GC19067@gtf.org> (raw)
In-Reply-To: <Pine.LNX.4.44.0308181210430.5929-100000@home.osdl.org>
On Mon, Aug 18, 2003 at 12:12:19PM -0700, Linus Torvalds wrote:
>
> On Mon, 18 Aug 2003, Jeff Garzik wrote:
> >
> > schedule_work() is _not_ for that. As currently implemented, you have
> > no guarantees that your schedule_work()-initiated work will even
> > begin in this century.
>
> In theory yes. In practice no. schedule_work() tries to wake up the worker
> process immediately, and as such usually gets the work done asap.
>
> But hey, if you want to improve on the drivers, please go wild. I care
> more about "real life working" than "theoretical but doesn't work".
hehe ;-) well,
* I've hit this situation in real life (waiting on a driver doing
error handling, hogging the single shared workqueue on UP). It
actually gets nasty if a bunch of drivers all throw errors at
the same time... (more below)
* re "improve the drivers" -- if you mean "fixing" those hogging the
shared workqueue, I think that's a workqueue API flaw. If you mean
further fix up the drivers you just modified, well... I think
slackness on my part will win there :)
There was talk in another thread about fixing up workqueue to create
a new kernel thread, if one isn't available within five seconds.
That seemed reasonable to me. Another useful addition to workqueue,
for drivers, would be a one-shot thread "runme(func, func_data)" API.
I think a lot of the device driver error handling is more appropriate
to this one-shot API than the current workqueue API. Error handling is
already a slow path, so the overhead of thread creation on each call is
mitigated.
Jeff
next prev parent reply other threads:[~2003-08-18 19:25 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200308181806.h7II6K6D014918@hera.kernel.org>
2003-08-18 18:09 ` Fix up riscom8 driver to use work queues instead of task queueing Jeff Garzik
2003-08-18 18:21 ` Linus Torvalds
2003-08-18 18:28 ` Russell King
2003-08-18 18:47 ` Linus Torvalds
2003-08-18 18:59 ` Russell King
2003-08-18 19:10 ` Linus Torvalds
2003-08-18 18:44 ` Jeff Garzik
2003-08-18 19:12 ` Linus Torvalds
2003-08-18 19:25 ` Jeff Garzik [this message]
2003-08-18 19:36 ` Linus Torvalds
2003-08-18 20:32 ` Andrew Morton
2003-08-18 21:24 ` Jeff Garzik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030818192529.GC19067@gtf.org \
--to=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.