On Mon, Aug 20, Kai Makisara wrote: > On Mon, 20 Aug 2012, Olaf Hering wrote: > > > > > Currently the st driver does not to break up write requests into smaller > > chunks to satisfy the ->max_hw_sectors limit of the underlying host driver. > > > > # modprobe -v scsi_debug ptype=1 opts=1 dev_size_mb=123 > > # dd if=/dev/zero of=/dev/st0 bs=$((1024*54321)) > > > > This leads to -EBUSY from this call chain: > > st_write -> st_do_scsi -> st_scsi_execute -> blk_rq_map_user > > > > What is the reason for this behaviour? > > Should st_write write in smaller chunks, or would that break real > > hardware because they expect certain block sizes? > > > In variable block mode the write() byte count determines the size of the > tape block. Exactly one SCSI command is used to write one block. This is > why the writes can't be split in variable block mode. In fixed block mode > the writes are split but this results in several tape blocks for each > write(). Thats very unfortunate. Would it be possible in theory to split and reassemble the SCSI commands in backend/frontend to overcome this protocol limit in pvscsi? Olaf -- 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