block: Export I/O topology for block devices and partitions
To support devices with physical block sizes bigger than 512 bytes we need to ensure proper alignment. This patch adds support for exposing I/O topology characteristics as devices are stacked. logical_block_size is the smallest unit the device can address. physical_block_size indicates the smallest I/O the device can write without incurring a read-modify-write penalty. The io_min parameter is the smallest preferred I/O size reported by the device. In many cases this is the same as the physical block size. However, the io_min parameter can be scaled up when stacking (RAID5 chunk size > physical block size). The io_opt characteristic indicates the optimal I/O size reported by the device. This is usually the stripe width for arrays. The alignment_offset parameter indicates the number of bytes the start of the device/partition is offset from the device's natural alignment. Partition tools and MD/DM utilities can use this to pad their offsets so filesystems start on proper boundaries. Signed-off-by:Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by:
Jens Axboe <jens.axboe@oracle.com>
Showing
- Documentation/ABI/testing/sysfs-block 59 additions, 0 deletionsDocumentation/ABI/testing/sysfs-block
- block/blk-settings.c 186 additions, 0 deletionsblock/blk-settings.c
- block/blk-sysfs.c 33 additions, 0 deletionsblock/blk-sysfs.c
- block/genhd.c 11 additions, 0 deletionsblock/genhd.c
- fs/partitions/check.c 10 additions, 0 deletionsfs/partitions/check.c
- include/linux/blkdev.h 47 additions, 0 deletionsinclude/linux/blkdev.h
- include/linux/genhd.h 1 addition, 0 deletionsinclude/linux/genhd.h
Please register or sign in to comment