On Fri, May 15 2009, Martin K. Petersen wrote: > From: Martin K. Petersen <martin.petersen@xxxxxxxxxx> > > 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 io_alignment 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 filesystem start on proper boundaries. > > Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx> > --- > Documentation/ABI/testing/sysfs-block | 59 +++++++++++ > block/blk-settings.c | 184 +++++++++++++++++++++++++++++++++ > block/blk-sysfs.c | 33 ++++++ > block/genhd.c | 10 ++ > fs/partitions/check.c | 10 ++ > include/linux/blkdev.h | 47 +++++++++ > include/linux/genhd.h | 1 + > 7 files changed, 344 insertions(+), 0 deletions(-) > > diff --git a/Documentation/ABI/testing/sysfs-block b/Documentation/ABI/testing/sysfs-block > index 44f52a4..93075cf 100644 > --- a/Documentation/ABI/testing/sysfs-block > +++ b/Documentation/ABI/testing/sysfs-block > @@ -60,3 +60,62 @@ Description: > Indicates whether the block layer should automatically > generate checksums for write requests bound for > devices that support receiving integrity metadata. > + > +What: /sys/block/<disk>/alignment > +Date: April 2009 > +Contact: Martin K. Petersen <martin.petersen@xxxxxxxxxx> > +Description: > + Storage devices may report a physical block size that is > + bigger than the logical block size (for instance a drive > + with 4KB physical sectors exposing 512-byte logical > + blocks to the operating system). This parameter > + indicates how many bytes the beginning of the device is > + offset from the disk's natural alignment. > + > +What: /sys/block/<disk>/<partition>/alignment > +Date: April 2009 > +Contact: Martin K. Petersen <martin.petersen@xxxxxxxxxx> > +Description: > + Storage devices may report a physical block size that is > + bigger than the logical block size (for instance a drive > + with 4KB physical sectors exposing 512-byte logical > + blocks to the operating system). This parameter > + indicates how many bytes the beginning of the partition > + is offset from the disk's natural alignment. I really hate the 'alignment' name, nobody will know wtf that is without looking it up. The rest of the names are fairly self explanatory. offset? offset_size? misalignment? Not very good with names, but perhaps we can find something more appropriate :-) The rest of the patch set looks ok to me, if we can just agree on a silly name, then lets merge it for 2.6.31. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html