From: Mike Christie <michaelc@cs.wisc.edu>
To: James.Smart@Emulex.Com
Cc: David Somayajulu <david.somayajulu@qlogic.com>,
James Bottomley <James.Bottomley@SteelEye.com>,
linux-scsi@vger.kernel.org, open-iscsi@googlegroups.com,
Doug Maxey <dwm@enoyolf.org>,
David Wagner <david.wagner@qlogic.com>,
Ravi Anand <ravi.anand@qlogic.com>,
Duane Grigsby <duane.grigsby@qlogic.com>
Subject: Re: [RFC] [PATCH] qla4xxx driver resubmission
Date: Thu, 21 Sep 2006 13:35:35 -0500 [thread overview]
Message-ID: <4512DB77.7090908@cs.wisc.edu> (raw)
In-Reply-To: <4512D5D0.2040209@emulex.com>
James Smart wrote:
>
>
> David Somayajulu wrote:
>>> Why does your LLD need to reach up into the block layer to find an i/o
>> ?
>> Block layer tagging was the gating item in the previous submission.
>> Going over the conversation on the linux-scsi reflector on STEX driver
>> in this aspect, led us to believe that there should not be any driver
>> level book-keeping of outstanding commands to the HBA. This was the
>> reason for creating scsi_host_find_tag() in scsi_tcq.h (in the patch
>> titled [RFC] [PATCH] helper function for retrieving scsi_cmd given
>> hostbased block layer tag)
>> http://marc.theaimsgroup.com/?l=linux-scsi&m=115871027627964&w=2
>>
>> James, would you mind letting us know if block-layer tagging in your
>> opinion simply meant using the scsi_cmd->request->tag and let the driver
>> do the book-keeping of out-standing commands to HBA (like stex driver)
>> or is it along the lines we have implemented.
>
> Well, in general, I've been working on stuff that has little use for the
> tags, so they aren't that meaningful. I can certainly see some
> implementations
> that can benefit.
>
> But, on a newish transport like iSCSI, I'm surprised. There's lots of
> house-keeping that has to be done with resets and task management that
> makes
> me believe it's better/easier with local structures. I also know that I
> like
The tag and its mapping to the request and scsi command have to exist
for the life of the scsi command. Are you thinking we may have cases
where the LLD releases the scsi command (and then scsi-ml releases the
command and request) but the LLD still needs the local command structure
(some driver specific struct) and some mapping to a tag? If so then the
block layer tagging in general will not work. Once we release the
request then the tag number can be reallocated.
> to double-check my hardware (based on local structure) rather than blindly
> trusting job handles. I also believe there will be locking issues or data
> structures in flight issues between the block layer and LLDD that will
> be ugly.
>
> I wanted some justification. The new block layer function hasn't been
> needed
> in the past and I thought it a rather odd thing to add.
>
It was not needed because stex just preallocated a local array of its
command structs and uses the tag to access that struct. qla4xxx uses a
mempool and so it could allocate a array for the mapping but then we
have something very similar to what the block layer and scsi provide in
its tag_map.
If you do queue based tagging and use the tag number and do not
preallocate your commands then there is a lookup function for you do use.
next prev parent reply other threads:[~2006-09-21 18:35 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-20 0:08 [RFC] [PATCH] qla4xxx driver resubmission David C Somayajulu
2006-09-21 13:46 ` James Smart
2006-09-21 17:35 ` David Somayajulu
2006-09-21 18:11 ` James Smart
2006-09-21 18:35 ` Mike Christie [this message]
2006-09-21 18:25 ` Mike Christie
2006-09-21 18:35 ` Jens Axboe
2006-09-21 18:37 ` Mike Christie
2006-09-21 18:45 ` Jens Axboe
2006-09-21 18:47 ` Jens Axboe
2006-09-21 18:55 ` David Somayajulu
2006-09-21 19:00 ` Jens Axboe
2006-09-25 16:56 ` David Somayajulu
2006-09-30 0:42 ` David Somayajulu
2006-10-04 15:49 ` James Bottomley
2006-10-04 16:30 ` David Somayajulu
2006-10-04 16:39 ` James Bottomley
2006-10-04 16:44 ` Matthew Wilcox
-- strict thread matches above, loose matches on Subject: below --
2006-07-27 18:30 David Somayajulu
2006-07-27 19:11 ` David C Somayajulu
2006-07-27 22:09 ` Doug Maxey
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=4512DB77.7090908@cs.wisc.edu \
--to=michaelc@cs.wisc.edu \
--cc=James.Bottomley@SteelEye.com \
--cc=James.Smart@Emulex.Com \
--cc=david.somayajulu@qlogic.com \
--cc=david.wagner@qlogic.com \
--cc=duane.grigsby@qlogic.com \
--cc=dwm@enoyolf.org \
--cc=linux-scsi@vger.kernel.org \
--cc=open-iscsi@googlegroups.com \
--cc=ravi.anand@qlogic.com \
/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