On Mon, 2007-01-15 at 21:02 +0100, Stefan Richter wrote:
> > By the way, is there a way to ask the SCSI stack to limit the size of
> > the entries in the scatterlist to 64k?  This would greatly simplify
> > the conversion to SBP-2 page tables, since this is the maximum size
> > these can hold.
> 
> Douglas has a very informative text on this:
> http://sg.torque.net/sg/sg_io.html#mozTocId154063
> 
> | [...] since lk 2.6.16 another limit comes into play: the
> | MAX_SEGMENT_SIZE define which is set to 64 KB. MAX_SEGMENT_SIZE is a
> | default and can be overridden by the LLD calling
> | blk_queue_max_segment_size().
> 
> Looks like we can yank out some cruft off sbp2.

Actually, there's one unfortunate case where Linux won't respect this:
an IOMMU that can do virtual merging.  This parameter is a block queue
parameter, so block will happily make sure the request segments obey it.
However, when you get to dma_map_rq() it doesn't see the segment limits,
so, if the iommu merges, you can end up with SG elements the other side
that violate this.  I've been meaning to do something about this for
ages (IDE is the other subsystem that has an absolute requirement for a
fixed maximum segment size) but never found an excuse to fix it.

James


-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to