summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2019-09-04 12:45:56 -0700
committerJens Axboe <axboe@kernel.dk>2019-09-10 12:31:39 -0600
commit7c1ee704a1d6450f92372d57f5b76a458b51c1d4 (patch)
treecdb9966b5b5097f711ee380ab6bb8c4cf6cdbaae
parentb06f2d35c6b14d956f19eeabe1f257caeb66e38e (diff)
iocost_monitor: Report debt
Report debt and rename del_ms row to delay for consistency. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--block/blk-iocost.c6
-rw-r--r--tools/cgroup/iocost_monitor.py5
2 files changed, 7 insertions, 4 deletions
diff --git a/block/blk-iocost.c b/block/blk-iocost.c
index e72e562d4aad..3b39deb8b9f8 100644
--- a/block/blk-iocost.c
+++ b/block/blk-iocost.c
@@ -161,9 +161,9 @@
* https://github.com/osandov/drgn. The ouput looks like the following.
*
* sdb RUN per=300ms cur_per=234.218:v203.695 busy= +1 vrate= 62.12%
- * active weight hweight% inflt% del_ms usages%
- * test/a * 50/ 50 33.33/ 33.33 27.65 0*041 033:033:033
- * test/b * 100/ 100 66.67/ 66.67 17.56 0*000 066:079:077
+ * active weight hweight% inflt% dbt delay usages%
+ * test/a * 50/ 50 33.33/ 33.33 27.65 2 0*041 033:033:033
+ * test/b * 100/ 100 66.67/ 66.67 17.56 0 0*000 066:079:077
*
* - per : Timer period
* - cur_per : Internal wall and device vtime clock
diff --git a/tools/cgroup/iocost_monitor.py b/tools/cgroup/iocost_monitor.py
index 5d8bac603ffa..f79b23582a1d 100644
--- a/tools/cgroup/iocost_monitor.py
+++ b/tools/cgroup/iocost_monitor.py
@@ -135,7 +135,7 @@ class IocStat:
def table_header_str(self):
return f'{"":25} active {"weight":>9} {"hweight%":>13} {"inflt%":>6} ' \
- f'{"del_ms":>6} {"usages%"}'
+ f'{"dbt":>3} {"delay":>6} {"usages%"}'
class IocgStat:
def __init__(self, iocg):
@@ -159,6 +159,7 @@ class IocgStat:
else:
self.inflight_pct = 0
+ self.debt_ms = iocg.abs_vdebt.counter.value_() / VTIME_PER_USEC / 1000
self.use_delay = blkg.use_delay.counter.value_()
self.delay_ms = blkg.delay_nsec.counter.value_() / 1_000_000
@@ -181,6 +182,7 @@ class IocgStat:
'hweight_active_pct' : str(self.hwa_pct),
'hweight_inuse_pct' : str(self.hwi_pct),
'inflight_pct' : str(self.inflight_pct),
+ 'debt_ms' : str(self.debt_ms),
'use_delay' : str(self.use_delay),
'delay_ms' : str(self.delay_ms),
'usage_pct' : str(self.usage),
@@ -195,6 +197,7 @@ class IocgStat:
f'{self.inuse:5}/{self.active:5} ' \
f'{self.hwi_pct:6.2f}/{self.hwa_pct:6.2f} ' \
f'{self.inflight_pct:6.2f} ' \
+ f'{min(math.ceil(self.debt_ms), 999):3} ' \
f'{min(self.use_delay, 99):2}*'\
f'{min(math.ceil(self.delay_ms), 999):03} '
for u in self.usages: