On Sat, 4 Mar 2006, Kai Makisara wrote: ... > The next thing was to increase the queue maximum segment size to 128 kB by > editing linux/include/blkdev.h (#define MAX_SEGMENT_SIZE (2 * 65536)). This > enabled transfers up to 16383 kB. This is below the theoretical limit of 16384 > kB but in this case the limiting factor was the maximum block size of the > drive. > Don't try this at home (unless you know your hardware :-) A better way to increase the maximum segment size is to add a call to blk_queue_max_segment_size to slave_configure() for the HBA. I continued experimentation with sg and scsi_debug. I changed in scsi_debug.c the following things: - .sg_tablesize = SG_ALL - .max_sectors = 0xFFFF - .use_clustering = ENABLE_CLUSTERING - added blk_queue_max_segment_size(sdp->request_queue, 256 * 1024) to scsi_debug_slave_configure and in include/scsi/sg.h: - #define SG_SCATTER_SZ (64 * 4096) This enabled read size up to 32 MB - 512 B, as predicted. After this the test program fails with errno set to ENOMEM. -- Kai - : 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