path: root/block/blk-sysfs.c
diff options
authorShaohua Li <>2017-03-27 10:51:37 -0700
committerJens Axboe <>2017-03-28 08:02:20 -0600
commit297e3d854784821d3b8ff3ae117f20d71f125504 (patch)
tree1909a3ce719f5a434d4e4e7584424b3559738be0 /block/blk-sysfs.c
parent06cceedcca67a93ac7f7aa93bbd9980c7496d14e (diff)
blk-throttle: make throtl_slice tunable
throtl_slice is important for blk-throttling. It's called slice internally but it really is a time window blk-throttling samples data. blk-throttling will make decision based on the samplings. An example is bandwidth measurement. A cgroup's bandwidth is measured in the time interval of throtl_slice. A small throtl_slice meanse cgroups have smoother throughput but burn more CPUs. It has 100ms default value, which is not appropriate for all disks. A fast SSD can dispatch a lot of IOs in 100ms. This patch makes it tunable. Since throtl_slice isn't a time slice, the sysfs name 'throttle_sample_time' reflects its character better. Signed-off-by: Shaohua Li <> Signed-off-by: Jens Axboe <>
Diffstat (limited to 'block/blk-sysfs.c')
1 files changed, 11 insertions, 0 deletions
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
index fa831cb..b315e62 100644
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -677,6 +677,14 @@ static struct queue_sysfs_entry queue_wb_lat_entry = {
.store = queue_wb_lat_store,
+static struct queue_sysfs_entry throtl_sample_time_entry = {
+ .attr = {.name = "throttle_sample_time", .mode = S_IRUGO | S_IWUSR },
+ .show = blk_throtl_sample_time_show,
+ .store = blk_throtl_sample_time_store,
static struct attribute *default_attrs[] = {
@@ -710,6 +718,9 @@ static struct attribute *default_attrs[] = {
+ &throtl_sample_time_entry.attr,