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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html