Re: absurdly high "optimal_io_size" on Seagate SAS disk
From: Martin K. Petersen
Date: Fri Nov 07 2014 - 12:41:15 EST
>>>>> "Rob" == Elliott, Robert (Server Storage) <Elliott@xxxxxx> writes:
Rob,
Rob> * the block layer BIO_MAX_PAGES value of 256 limits IOs
Rob> to a maximum of 1 MiB
We do support scatterlist chaining, though.
Rob> * SCSI LLDs report their maximum transfer size in
Rob> /sys/block/sdNN/queue/max_hw_sectors_kb
Rob> * the SCSI midlayer maximum transfer size is set/reported
Rob> in /sys/block/sdNN/queue/max_sectors_kb and the default is 512
Rob> KiB
Rob> * the SCSI LLD maximum number of scatter gather entries
Rob> reported in /sys/block/sdNN/queue/max_segments and
Rob> /sys/block/sdNN/queue/max_segment_size creates a limit based on
Rob> how fragmented the data buffer is in virtual memory
Rob> * the Block Limits VPD page MAXIMUM TRANSFER LENGTH field
Rob> indicates the maximum transfer size for one command over the SCSI
Rob> transport protocol supported by the drive itself
Yep. We're already capping the actual max I/O size based on all of the
above. However, the purpose of exposing io_opt was to be able to report
stripe size to partitioning tools and filesystems for alignment
purposes. And although they would ideally be the same it was always
anticipated that stripe size could be bigger than the max I/O size.
--
Martin K. Petersen Oracle Linux Engineering
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/