From: Mike Christie <michaelc@cs.wisc.edu>
To: Boaz Harrosh <bharrosh@panasas.com>
Cc: linux-scsi@vger.kernel.org,
James Bottomley <James.Bottomley@SteelEye.com>,
Jens Axboe <jens.axboe@oracle.com>,
Benny Halevy <bhalevy@panasas.com>
Subject: Re: Possible bug in scsi_lib.c:scsi_req_map_sg()
Date: Tue, 28 Nov 2006 11:30:39 -0600 [thread overview]
Message-ID: <456C723F.1040903@cs.wisc.edu> (raw)
In-Reply-To: <456C5944.9060509@panasas.com>
Boaz Harrosh wrote:
> Mike Christie wrote:
>> Boaz Harrosh wrote:
>>> Playing with some tests which I admit are not 100% orthodox I have
>>> stumbled upon a bug that raises a serious question:
>>>
>>> In the call to scsi_execute_async() in the use_sg case, must the
>>> scatterlist* (pointed to by buffer) map a buffer that's contiguous in
>>> virtual memory or is it allowed to map disjoint segments of memory?
>>
>> I thought they were continguous. I think James has said before that they
>> can be disjoint. When we converted sg it did not look like sg or st
>> supported disjoint. The main non dio path used a buffer from
>> get_free_pages so I thought that would always be contiguous. The dio
>> path then always set the first sg offset, but the rest it set to zero.
>>
>> How did you hit this problem? Is it with sg or st, or with some other
>> code? Is it the mmap path maybe?
>
> OK I admit, guilty as charged, I was using it from a kernel driver,
> OSD-Initiator from IBM. The code is unorthodox in mapping user space
> iovects into scatterlist*. I will have to work around it than.
Well, you do not have to work around it :)
I want to kill scsi_execute_async and just allow the ULDs to allocate a
request, call blk_rq_map_* (and add any new map helpers we need), then
call blk_execute_rq_nowait. This gives the ULDs some flexibility and
kills my ugly function. This is what I originally did here
http://marc.theaimsgroup.com/?l=linux-scsi&m=112356952007369&w=2
For some reason, I flip flopped and went with scsi_execute_async and the
scatterlist argument hack. I think I did this because I thought it would
be less problems in converting the ULDs in stages. First stage was to
remove scsi_request usage and clean/fix up scsi-ml and LLDs, next would
be to convert to block layer functions directly, but looking back it
might have been better to just go through one big headache.
I think Christoph Hellwig has patches to remove scsi_execute_async as
part of his bidi work. He needs help testing and reviewing them, so you
should help him out instead of working around it :)
prev parent reply other threads:[~2006-11-28 17:30 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-27 17:44 Possible bug in scsi_lib.c:scsi_req_map_sg() Boaz Harrosh
2006-11-27 19:13 ` Mike Christie
2006-11-27 19:27 ` Mike Christie
2006-11-27 21:52 ` Kai Makisara
2006-11-28 18:57 ` Jens Axboe
2006-11-29 9:30 ` Benny Halevy
2007-03-02 16:45 ` Dachepalli, Sudhir
2007-03-02 21:19 ` Mike Christie
2007-03-02 21:59 ` Mike Christie
2007-03-02 23:45 ` Dachepalli, Sudhir
2007-03-04 0:04 ` Mike Christie
2007-03-04 7:36 ` Dachepalli, Sudhir
2007-03-04 14:31 ` James Bottomley
2007-03-04 15:43 ` Mike Christie
2007-03-04 15:57 ` James Bottomley
2007-03-04 16:21 ` Mike Christie
2007-03-04 16:51 ` James Bottomley
2007-03-04 17:04 ` Mike Christie
2007-03-04 17:07 ` Mike Christie
2007-03-04 18:00 ` Dachepalli, Sudhir
2007-03-04 18:14 ` James Bottomley
2007-03-04 19:06 ` Dachepalli, Sudhir
2007-03-05 13:00 ` Christoph Hellwig
2007-03-05 13:02 ` Christoph Hellwig
2006-11-27 23:33 ` James Bottomley
2006-11-28 15:44 ` Boaz Harrosh
2006-11-28 17:30 ` Mike Christie [this message]
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=456C723F.1040903@cs.wisc.edu \
--to=michaelc@cs.wisc.edu \
--cc=James.Bottomley@SteelEye.com \
--cc=bhalevy@panasas.com \
--cc=bharrosh@panasas.com \
--cc=jens.axboe@oracle.com \
--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 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.