From: Jeff Garzik <jeff@garzik.org>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: Boaz Harrosh <bharrosh@panasas.com>,
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>,
jens.axboe@oracle.com, linux-scsi@vger.kernel.org,
bhalevy@panasas.com, hch@infradead.org,
akpm@linux-foundation.org, michaelc@cs.wisc.edu
Subject: Re: [PATCH v2] add bidi support for block pc requests
Date: Sat, 07 Jul 2007 12:59:16 -0400 [thread overview]
Message-ID: <468FC664.5050209@garzik.org> (raw)
In-Reply-To: <1183822933.3408.19.camel@localhost.localdomain>
James Bottomley wrote:
> On Sat, 2007-07-07 at 11:27 -0400, Jeff Garzik wrote:
>> LIBATA_MAX_PRD is the maximum number of DMA scatter/gather elements
>> permitted by the HBA's DMA engine, for a single ATA command.
> Then it's the wrong parameter you're setting: phys_segments is what you
> have going into a dma_map_sg() but hw_segments is what you end up after
> it (mathemtaically, the mapping never splits segments, so hw_segments <=
> phys_segments always, but it's still the wrong way to bound this); so if
> you want to limit the SG elements in the HBA, you should set hw_segments
> not phys_segments (which is what the sg_tablesize parameter of the host
> structure corresponds to).
Honestly I'm betting the code is a result of paranoia^H^H^Hconservatism
on my part: setting every DMA and segment limit I can find, in the
hopes that somehow, somewhere, that information will get filtered down
to the IOMMU and whatnot. :)
Given what you say above, and the fact that I set sg_tablesize,
presumably Boaz's patch to remove phys_segment limiting in libata-scsi
is the right thing to do. Your knowledge in this area is most likely
stronger than mine.
> However, I suspect this has to do with our iommu problem, doesn't it?
> The IOMMU may merge the segments beyond your 64k DMA boundary, so you
> need to split them again ... in that case you need phys_segments
> bounded, not hw_segments?
This is why I set every segment limitation I could find :) And then Ben
tells me IOMMU may ignore all of that anyway, and so I have code to
split inside libata as well :)
I just know what IDE needs: S/G ent shouldn't cross 64k boundary, nor
exceed 64k in size. The maximum number of S/G ents is actually a guess.
Hard data is tough to come by. Some DMA engines will cycle through
all of memory until they hit a stop bit. Others have limits yet to be
discovered. :)
Jeff
next prev parent reply other threads:[~2007-07-07 16:59 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-08 2:25 [PATCH v2] add bidi support for block pc requests FUJITA Tomonori
2007-05-08 18:53 ` Boaz Harrosh
2007-05-08 20:01 ` James Bottomley
2007-05-09 7:46 ` Boaz Harrosh
2007-05-09 10:52 ` FUJITA Tomonori
2007-05-09 13:58 ` Boaz Harrosh
2007-05-09 14:54 ` FUJITA Tomonori
2007-05-09 14:55 ` James Bottomley
2007-05-09 16:54 ` Boaz Harrosh
2007-05-10 6:53 ` FUJITA Tomonori
2007-05-10 7:45 ` FUJITA Tomonori
2007-05-10 12:37 ` Boaz Harrosh
2007-05-10 13:01 ` FUJITA Tomonori
2007-05-10 15:10 ` Douglas Gilbert
2007-05-10 15:48 ` Boaz Harrosh
2007-05-11 16:26 ` James Bottomley
2007-05-16 17:29 ` Boaz Harrosh
2007-05-16 17:53 ` Jens Axboe
2007-05-16 18:06 ` James Bottomley
2007-05-16 18:13 ` Jens Axboe
2007-05-17 8:46 ` Boaz Harrosh
2007-05-17 2:57 ` FUJITA Tomonori
2007-05-17 5:48 ` Jens Axboe
2007-05-17 5:59 ` FUJITA Tomonori
2007-05-17 8:49 ` Boaz Harrosh
2007-05-17 11:12 ` FUJITA Tomonori
2007-05-17 17:37 ` Benny Halevy
2007-05-24 16:37 ` Boaz Harrosh
2007-05-24 16:46 ` Boaz Harrosh
2007-05-24 16:47 ` FUJITA Tomonori
2007-05-24 16:59 ` Boaz Harrosh
2007-05-17 11:29 ` FUJITA Tomonori
2007-05-17 13:27 ` James Bottomley
2007-05-17 14:00 ` Boaz Harrosh
2007-05-17 14:11 ` FUJITA Tomonori
2007-05-17 15:49 ` Boaz Harrosh
2007-06-01 20:21 ` Jeff Garzik
2007-06-03 7:45 ` Boaz Harrosh
2007-06-03 13:17 ` James Bottomley
2007-07-07 15:27 ` Jeff Garzik
2007-07-07 15:42 ` James Bottomley
2007-07-07 16:59 ` Jeff Garzik [this message]
2007-05-09 10:49 ` FUJITA Tomonori
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=468FC664.5050209@garzik.org \
--to=jeff@garzik.org \
--cc=James.Bottomley@SteelEye.com \
--cc=akpm@linux-foundation.org \
--cc=bhalevy@panasas.com \
--cc=bharrosh@panasas.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=hch@infradead.org \
--cc=jens.axboe@oracle.com \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
/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.