From: Jeff Garzik <jeff@garzik.org>
To: Jens Axboe <axboe@suse.de>
Cc: James Bottomley <James.Bottomley@SteelEye.com>,
SCSI Mailing List <linux-scsi@vger.kernel.org>,
"linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>,
Tejun Heo <htejun@gmail.com>, Andrew Morton <akpm@osdl.org>,
Linus Torvalds <torvalds@osdl.org>
Subject: Re: [Fwd: [RFT] major libata update]
Date: Wed, 17 May 2006 17:58:32 -0400 [thread overview]
Message-ID: <446B9C88.4030005@garzik.org> (raw)
In-Reply-To: <20060517173729.GS4197@suse.de>
Jens Axboe wrote:
> I think we have a different opinion on what 'optional' is then - because
> things can certainly work just fine the way they current do. And it's
> faster, too.
>
>> infrastructure, you inevitably wind up with the following code pattern:
>>
>> infrastructure code
>> send fully prepared request to hardware
>> infrastructure code
>
> But yes, you can make the code nicer for _some_ things with a
> ->queueone() type setup.
That ->queueone() maps the closest to what most hardware appears to
want: "attempt to push request onto an async hardware queue".
It also enables additional entry points for returning 'device busy' or
(in SCSI lingo) 'host busy'. The ability to signal and handle random
transient conditions like that when hardware resources disappear is easy
to overlook, but its really powerful.
>> At this point I should note that all of what I've been describing is
>> an _optional addition_ to the block layer. Its all helpers and a few
>> new, optional structs. This SHOULD NOT involve changing the core
>> block layer at all. Well, maybe struct request would like the
>> addition of a timer. But that's it, and such a mod is easy to do.
>
> The timer is a given, we can't escape that. And the ->queueone() is
> basically hashed out above, no infrastructure changes needed.
> queuecommand_helper would be driver supplied, blk_queuecommand_helper()
> would be a block layer helper. With better names of course, I truly do
> suck at naming functions :-)
Likewise :)
Jeff
next prev parent reply other threads:[~2006-05-17 21:58 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4468B596.9090508@garzik.org>
[not found] ` <1147789098.3505.19.camel@mulgrave.il.steeleye.com>
2006-05-16 15:41 ` [Fwd: [RFT] major libata update] Jeff Garzik
2006-05-16 15:51 ` James Bottomley
2006-05-16 16:06 ` Jeff Garzik
2006-05-16 16:30 ` James Bottomley
2006-05-16 16:39 ` Jeff Garzik
2006-05-16 21:55 ` Luben Tuikov
2006-05-16 21:32 ` Luben Tuikov
2006-05-16 16:08 ` Tejun Heo
2006-05-16 16:13 ` Tejun Heo
2006-05-16 16:29 ` James Bottomley
2006-05-16 16:37 ` Jeff Garzik
2006-05-16 16:39 ` Tejun Heo
2006-05-16 16:50 ` James Bottomley
2006-05-16 17:07 ` Tejun Heo
2006-05-16 17:09 ` Jeff Garzik
2006-05-16 19:58 ` Christoph Hellwig
2006-05-16 20:02 ` Jeff Garzik
2006-05-16 21:28 ` James Bottomley
2006-05-18 3:27 ` Tejun Heo
2006-05-19 12:07 ` [PATCH] SCSI: make scsi_implement_eh() generic API for SCSI transports Tejun Heo
2006-05-16 16:12 ` [Fwd: [RFT] major libata update] Jeff Garzik
2006-05-16 16:38 ` James Bottomley
2006-05-16 16:57 ` Jeff Garzik
2006-05-17 7:37 ` Jens Axboe
2006-05-17 15:06 ` Jeff Garzik
2006-05-17 15:50 ` James Bottomley
2006-05-17 15:58 ` James Smart
2006-05-17 16:17 ` Jeff Garzik
2006-05-17 17:53 ` James Bottomley
2006-05-17 22:08 ` Jeff Garzik
2006-05-17 22:15 ` Jeff Garzik
2006-05-17 17:47 ` Linus Torvalds
2006-05-17 17:55 ` Jens Axboe
2006-05-17 22:04 ` Linus Torvalds
2006-05-17 22:12 ` Jeff Garzik
2006-05-17 21:41 ` Jeff Garzik
2006-05-17 21:52 ` Douglas Gilbert
2006-05-17 22:20 ` Linus Torvalds
2006-05-18 3:04 ` Luben Tuikov
2006-05-17 16:05 ` Douglas Gilbert
2006-05-17 17:37 ` Jens Axboe
2006-05-17 21:58 ` Jeff Garzik [this message]
2006-05-18 7:21 ` Jens Axboe
2006-05-16 18:28 ` Luben Tuikov
2006-05-16 18:15 ` Luben Tuikov
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=446B9C88.4030005@garzik.org \
--to=jeff@garzik.org \
--cc=James.Bottomley@SteelEye.com \
--cc=akpm@osdl.org \
--cc=axboe@suse.de \
--cc=htejun@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@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 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).