Commit 7e5f5fb09e6fc657f21816b5a18ba645a913368e
Committed by
Jens Axboe
1 parent
70dd5bf3b9
Exists in
master
and in
39 other branches
block: Update topology documentation
Update topology comments and sysfs documentation based upon discussions with Neil Brown. Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Showing 2 changed files with 36 additions and 20 deletions Side-by-side Diff
Documentation/ABI/testing/sysfs-block
... | ... | @@ -94,29 +94,38 @@ |
94 | 94 | Date: May 2009 |
95 | 95 | Contact: Martin K. Petersen <martin.petersen@oracle.com> |
96 | 96 | Description: |
97 | - This is the smallest unit the storage device can write | |
98 | - without resorting to read-modify-write operation. It is | |
99 | - usually the same as the logical block size but may be | |
100 | - bigger. One example is SATA drives with 4KB sectors | |
101 | - that expose a 512-byte logical block size to the | |
102 | - operating system. | |
97 | + This is the smallest unit a physical storage device can | |
98 | + write atomically. It is usually the same as the logical | |
99 | + block size but may be bigger. One example is SATA | |
100 | + drives with 4KB sectors that expose a 512-byte logical | |
101 | + block size to the operating system. For stacked block | |
102 | + devices the physical_block_size variable contains the | |
103 | + maximum physical_block_size of the component devices. | |
103 | 104 | |
104 | 105 | What: /sys/block/<disk>/queue/minimum_io_size |
105 | 106 | Date: April 2009 |
106 | 107 | Contact: Martin K. Petersen <martin.petersen@oracle.com> |
107 | 108 | Description: |
108 | - Storage devices may report a preferred minimum I/O size, | |
109 | - which is the smallest request the device can perform | |
110 | - without incurring a read-modify-write penalty. For disk | |
111 | - drives this is often the physical block size. For RAID | |
112 | - arrays it is often the stripe chunk size. | |
109 | + Storage devices may report a granularity or preferred | |
110 | + minimum I/O size which is the smallest request the | |
111 | + device can perform without incurring a performance | |
112 | + penalty. For disk drives this is often the physical | |
113 | + block size. For RAID arrays it is often the stripe | |
114 | + chunk size. A properly aligned multiple of | |
115 | + minimum_io_size is the preferred request size for | |
116 | + workloads where a high number of I/O operations is | |
117 | + desired. | |
113 | 118 | |
114 | 119 | What: /sys/block/<disk>/queue/optimal_io_size |
115 | 120 | Date: April 2009 |
116 | 121 | Contact: Martin K. Petersen <martin.petersen@oracle.com> |
117 | 122 | Description: |
118 | 123 | Storage devices may report an optimal I/O size, which is |
119 | - the device's preferred unit of receiving I/O. This is | |
120 | - rarely reported for disk drives. For RAID devices it is | |
121 | - usually the stripe width or the internal block size. | |
124 | + the device's preferred unit for sustained I/O. This is | |
125 | + rarely reported for disk drives. For RAID arrays it is | |
126 | + usually the stripe width or the internal track size. A | |
127 | + properly aligned multiple of optimal_io_size is the | |
128 | + preferred request size for workloads where sustained | |
129 | + throughput is desired. If no optimal I/O size is | |
130 | + reported this file contains 0. |
block/blk-settings.c
... | ... | @@ -413,10 +413,13 @@ |
413 | 413 | * @min: smallest I/O size in bytes |
414 | 414 | * |
415 | 415 | * Description: |
416 | - * Some devices have an internal block size bigger than the reported | |
417 | - * hardware sector size. This function can be used to signal the | |
418 | - * smallest I/O the device can perform without incurring a performance | |
419 | - * penalty. | |
416 | + * Storage devices may report a granularity or preferred minimum I/O | |
417 | + * size which is the smallest request the device can perform without | |
418 | + * incurring a performance penalty. For disk drives this is often the | |
419 | + * physical block size. For RAID arrays it is often the stripe chunk | |
420 | + * size. A properly aligned multiple of minimum_io_size is the | |
421 | + * preferred request size for workloads where a high number of I/O | |
422 | + * operations is desired. | |
420 | 423 | */ |
421 | 424 | void blk_queue_io_min(struct request_queue *q, unsigned int min) |
422 | 425 | { |
... | ... | @@ -430,8 +433,12 @@ |
430 | 433 | * @opt: optimal request size in bytes |
431 | 434 | * |
432 | 435 | * Description: |
433 | - * Drivers can call this function to set the preferred I/O request | |
434 | - * size for devices that report such a value. | |
436 | + * Storage devices may report an optimal I/O size, which is the | |
437 | + * device's preferred unit for sustained I/O. This is rarely reported | |
438 | + * for disk drives. For RAID arrays it is usually the stripe width or | |
439 | + * the internal track size. A properly aligned multiple of | |
440 | + * optimal_io_size is the preferred request size for workloads where | |
441 | + * sustained throughput is desired. | |
435 | 442 | */ |
436 | 443 | void blk_queue_io_opt(struct request_queue *q, unsigned int opt) |
437 | 444 | { |