From: "Justin T. Gibbs" <gibbs@scsiguy.com>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: SCSI Mailing List <linux-scsi@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>
Subject: Re: [PATCH] Fix aic7xxx del_timer_sync() deadlock
Date: Fri, 27 Feb 2004 13:50:50 -0700 [thread overview]
Message-ID: <3492060000.1077915050@aslan.btc.adaptec.com> (raw)
In-Reply-To: <1077910452.2157.110.camel@mulgrave>
> There's no guaranteed minimum delay time required by the specs. We
> pause for a predetermined number of unplugs if you look at the code,
> which is actually under the control of the driver. The trade off is
> that we want to try faster under heavy I/O pressure, so the delay isn't
> fixed, it's bounded by the I/O pressure in the system, which is as it
> should be.
Well, experience shows that if you implement a SCSI system based solely
on the spec, it won't work.
There are lots of devices out there that require a delay of at least
250ms in order to not deadlock their internal SCSI processor. The
I/O load of the system has no bearing on when a device will become
"unbusy" (we can't even say why it is "busy"), so I fail to see why
it should have any effect on how long we wait in response to this
condition.
>> 2) These drivers both include Domain Validation support. These commands
>> do not go through the mid-layer at all yet require proper queue full
>> and busy handling.
>
> Well, if the driver used the correct command handling infrastructure for
> that, they would go through the mid-layer and there would be no problem.
In order to issue a DV command to the end device via the mid-layer, the
host queue and the device queue must not be blocked. But, for DV to be
effective, it must be the only activity occurring on that device. How do
you reconcile the two while using the mid-layer to do your I/O? The
mid-layer has no concept of allowing a client to freeze the queue,
wait for the active count to go to zero, effectively pre-empt
the command stream with a series of special commands, and then unblock
everyone else only at the end. The closest the mid-layer comes to this
is in some of its error recovery handling but those are internal
interfaces.
--
Justin
next prev parent reply other threads:[~2004-02-27 20:50 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-27 18:26 [PATCH] Fix aic7xxx del_timer_sync() deadlock James Bottomley
2004-02-27 19:23 ` Justin T. Gibbs
2004-02-27 19:34 ` James Bottomley
2004-02-27 20:50 ` Justin T. Gibbs [this message]
2004-02-28 15:39 ` James Bottomley
2004-02-29 19:26 ` Justin T. Gibbs
2004-02-29 21:10 ` James Bottomley
2004-02-29 22:23 ` Justin T. Gibbs
2004-02-29 21:25 ` James Bottomley
2004-02-28 2:40 ` Jeff Garzik
2004-02-28 9:25 ` Jens Axboe
2004-02-28 23:50 ` Jeff Garzik
2004-02-29 9:13 ` Jens Axboe
2004-02-29 16:21 ` Jeff Garzik
2004-02-29 16:39 ` Jens Axboe
2004-02-29 17:28 ` Jeff Garzik
2004-02-29 17:55 ` Jens Axboe
2004-02-29 18:57 ` Justin T. Gibbs
2004-02-29 19:00 ` Jeff Garzik
2004-02-29 19:28 ` Justin T. Gibbs
2004-02-29 19:37 ` Jeff Garzik
2004-02-29 19:42 ` Justin T. Gibbs
2004-02-29 19:44 ` Jeff Garzik
2004-02-29 20:06 ` Jens Axboe
2004-02-29 20:20 ` Jeff Garzik
2004-02-29 20:27 ` Jens Axboe
2004-02-29 20:28 ` Jeff Garzik
2004-02-29 19:43 ` Jeff Garzik
2004-02-29 20:04 ` Jens Axboe
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=3492060000.1077915050@aslan.btc.adaptec.com \
--to=gibbs@scsiguy.com \
--cc=James.Bottomley@SteelEye.com \
--cc=akpm@osdl.org \
--cc=linux-scsi@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox