From: James Bottomley <James.Bottomley@SteelEye.com>
To: Mark Lord <lkml@rtr.ca>
Cc: Jeff Garzik <jgarzik@pobox.com>,
Christoph Hellwig <hch@infradead.org>, Mark Lord <lsml@rtr.ca>,
Linux Kernel <linux-kernel@vger.kernel.org>,
SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH] QStor SATA/RAID driver for 2.6.9-rc3
Date: 12 Oct 2004 13:12:03 -0500 [thread overview]
Message-ID: <1097604730.1763.177.camel@mulgrave> (raw)
In-Reply-To: <416C19B9.7000806@rtr.ca>
On Tue, 2004-10-12 at 12:51, Mark Lord wrote:
> That's how it works already, thanks, except that it
> does have a few calls to in_interrupt() rather than
> simply passing itself a flag parameter to convey the
> same information -- I'll fix that now.
>
> Except that it uses schedule_work() rather than a tasklet.
> The bottom half is only there for abnormal conditions
> like major chip errors and hotplug events.
>
> So the only new suggestion here is to use a tasklet for
> the bottom-half processing rather than schedule_work()?
>
> I thought work queues were the preferred mechanism for
> infrequent uses such as this these days? A tasklet is no
> problem here though, so long as worker threads (schedule_work)
> do not also rely on tasklets.
Really, no, you don't want to be doing what you are doing in
qs_process_sff_entry()
At certain points you decide you have too much work, disable interrupts
on the card and reschedule the routine in a work queue.
Please, please don't do this. It's a sure fire recipe for a hang.
Suppose a prior task in the workqueue needs to page something in from
swap and you're the swap device for instance....
What you need to do is to gather as much information as will reset the
interrupt and then process the data as a tasklet. For your hotplug
events, they should be fire and forget as schedule_work().
*never* disable interrupts and have re-enabling them contingent on a
workqueue thread.
James
next prev parent reply other threads:[~2004-10-12 18:12 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-04 19:11 [PATCH] QStor SATA/RAID driver for 2.6.9-rc3 Mark Lord
2004-10-07 13:42 ` Mark Lord
2004-10-07 14:07 ` Christoph Hellwig
2004-10-07 15:35 ` Mark Lord
2004-10-07 15:50 ` Jeff Garzik
2004-10-07 20:17 ` Mark Lord
2004-10-07 20:30 ` Jeff Garzik
2004-10-07 20:34 ` Mark Lord
2004-10-07 20:46 ` Jeff Garzik
2004-10-07 20:54 ` Mark Lord
2004-10-07 21:15 ` Christoph Hellwig
2004-10-07 22:03 ` Mark Lord
2004-10-20 15:44 ` Christoph Hellwig
2004-10-07 23:39 ` PATCH] " Mark Lord
2004-10-13 18:56 ` [PATCH] QStor SATA/RAID driver for 2.6.9-rc4 Mark Lord
2004-10-08 13:19 ` [PATCH] QStor SATA/RAID driver for 2.6.9-rc3 James Bottomley
2004-10-08 15:15 ` Mark Lord
2004-10-08 15:27 ` James Bottomley
2004-10-08 15:34 ` Mark Lord
2004-10-08 15:38 ` Jeff Garzik
2004-10-08 16:01 ` James Bottomley
2004-10-12 17:00 ` Mark Lord
2004-10-12 17:05 ` Jeff Garzik
2004-10-12 17:09 ` James Bottomley
2004-10-12 17:31 ` Jeff Garzik
2004-10-08 15:38 ` Mark Lord
2004-10-08 15:47 ` James Bottomley
2004-10-08 15:49 ` Jeff Garzik
2004-10-12 16:59 ` Mark Lord
2004-10-12 17:03 ` Jeff Garzik
2004-10-12 17:14 ` Mark Lord
2004-10-12 17:19 ` Jeff Garzik
2004-10-12 17:23 ` Jeff Garzik
2004-10-12 17:17 ` James Bottomley
2004-10-12 17:22 ` Mark Lord
2004-10-12 17:30 ` James Bottomley
2004-10-12 17:33 ` Mark Lord
2004-10-12 17:42 ` Jeff Garzik
2004-10-12 17:51 ` Mark Lord
2004-10-12 18:12 ` James Bottomley [this message]
2004-10-12 18:36 ` Mark Lord
2004-10-12 18:25 ` driver hacking tips (was Re: [PATCH] QStor SATA/RAID driver for 2.6.9-rc3) Jeff Garzik
2004-10-12 19:18 ` Mark Lord
2004-10-12 19:40 ` Jeff Garzik
2004-10-12 17:34 ` [PATCH] QStor SATA/RAID driver for 2.6.9-rc3 Jeff Garzik
2004-10-07 20:31 ` Christoph Hellwig
2004-10-07 20:35 ` Jeff Garzik
2004-10-07 21:16 ` Mark Lord
2004-10-07 21:44 ` Jeff Garzik
2004-10-07 21:45 ` Jeff Garzik
2004-10-13 20:04 ` Jeff Garzik
2004-10-13 22:16 ` Mark Lord
2004-10-13 22:41 ` Jeff Garzik
2004-10-13 23:24 ` Mark Lord
2004-10-13 23:39 ` Jeff Garzik
2004-10-14 16:30 ` Mark Lord
2004-10-14 16:37 ` Mark Lord
2004-10-14 16:52 ` [PATCH] Export ata_scsi_simulate() for use by non-libata drivers Mark Lord
2004-10-14 17:04 ` Jeff Garzik
2004-10-14 18:44 ` Mark Lord
2004-10-15 5:04 ` Jeff Garzik
2004-10-15 13:25 ` John W. Linville
2004-10-15 14:59 ` Randy.Dunlap
2004-10-15 15:38 ` 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=1097604730.1763.177.camel@mulgrave \
--to=james.bottomley@steeleye.com \
--cc=hch@infradead.org \
--cc=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lkml@rtr.ca \
--cc=lsml@rtr.ca \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).