From: Hannes Reinecke <h...@suse.de>

The queue limits already have a 'chunk_sectors' setting, so
we should be presenting it via sysfs.

Signed-off-by: Hannes Reinecke <h...@suse.de>

[Damien: Updated Documentation/ABI/testing/sysfs-block]

Signed-off-by: Damien Le Moal <damien.lem...@hgst.com>
Reviewed-by: Christoph Hellwig <h...@lst.de>
Reviewed-by: Martin K. Petersen <martin.peter...@oracle.com>
Reviewed-by: Shaun Tancheff <shaun.tanch...@seagate.com>
Tested-by: Shaun Tancheff <shaun.tanch...@seagate.com>

---
 Documentation/ABI/testing/sysfs-block | 13 +++++++++++++
 block/blk-sysfs.c                     | 11 +++++++++++
 2 files changed, 24 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-block 
b/Documentation/ABI/testing/sysfs-block
index 75a5055..ee2d5cd 100644
--- a/Documentation/ABI/testing/sysfs-block
+++ b/Documentation/ABI/testing/sysfs-block
@@ -251,3 +251,16 @@ Description:
                since drive-managed zoned block devices do not support
                zone commands, they will be treated as regular block
                devices and zoned will report "none".
+
+What:          /sys/block/<disk>/queue/chunk_sectors
+Date:          September 2016
+Contact:       Hannes Reinecke <h...@suse.com>
+Description:
+               chunk_sectors has different meaning depending on the type
+               of the disk. For a RAID device (dm-raid), chunk_sectors
+               indicates the size in 512B sectors of the RAID volume
+               stripe segment. For a zoned block device, either
+               host-aware or host-managed, chunk_sectors indicates the
+               size of 512B sectors of the zones of the device, with
+               the eventual exception of the last zone of the device
+               which may be smaller.
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
index ff9cd9c..488c2e2 100644
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -130,6 +130,11 @@ static ssize_t queue_physical_block_size_show(struct 
request_queue *q, char *pag
        return queue_var_show(queue_physical_block_size(q), page);
 }
 
+static ssize_t queue_chunk_sectors_show(struct request_queue *q, char *page)
+{
+       return queue_var_show(q->limits.chunk_sectors, page);
+}
+
 static ssize_t queue_io_min_show(struct request_queue *q, char *page)
 {
        return queue_var_show(queue_io_min(q), page);
@@ -455,6 +460,11 @@ static struct queue_sysfs_entry 
queue_physical_block_size_entry = {
        .show = queue_physical_block_size_show,
 };
 
+static struct queue_sysfs_entry queue_chunk_sectors_entry = {
+       .attr = {.name = "chunk_sectors", .mode = S_IRUGO },
+       .show = queue_chunk_sectors_show,
+};
+
 static struct queue_sysfs_entry queue_io_min_entry = {
        .attr = {.name = "minimum_io_size", .mode = S_IRUGO },
        .show = queue_io_min_show,
@@ -555,6 +565,7 @@ static struct attribute *default_attrs[] = {
        &queue_hw_sector_size_entry.attr,
        &queue_logical_block_size_entry.attr,
        &queue_physical_block_size_entry.attr,
+       &queue_chunk_sectors_entry.attr,
        &queue_io_min_entry.attr,
        &queue_io_opt_entry.attr,
        &queue_discard_granularity_entry.attr,
-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to