On Tue, 2005-06-07 at 19:26 +0300, Kai Makisara wrote: > No, it can't do that. If the user submits one SCSI command, it must result > in one SCSI command to the device. Otherwise the effect is not what the > user wants. (You can split a multiple block read/write but this does not > apply to all commands.) Yes, I agree ... we have to have a single request. > Michael's question is important. The number of sg segments a HBA supports > determines the maximum SCSI data size. In some cases (e.g., tape > reads and writes with multimegabyte blocks) using page size (e.g., 4 kB) > segments does not allow large enough data size. One solution has been to > have a kernel space buffer that consists of segments spanning several > pages. As far as I know, the current bio code requires page size segments. > It is possible to use chained bios with multimegabyte buffers but the > user should be sure that the split segments will be merged before the > request reaches the HBA so that the request fits the HBA sg segment limit. Well, this isn't actually necessarily the problem. *Provided* the underlying driver enables clustering, the block layer will merge physically contiguous pages in a single bio (so a large buffer will come out the other side of blk_rq_map_sg as a single scatter/gather entry) James - : 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