mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 10:42:11 +00:00
iocost_monitor: print vrate inuse along with base_vrate
The real vrate iocost inuse is not base_vrate, but the atomic vtime_rate. We need iocost_monitor tool to display this real vrate that iocost use, to check if the boosted compensated vrate is normal. Effect after change: nvme0n1 RUN per=50.0ms cur_per=172116.580:v1040587.433 busy= +0 \ vrate=135.00%:270.00% params=ssd_dfl(CQ) ^ | this is real vrate inuse Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com> Link: https://lore.kernel.org/r/20230804065039.8885-2-chengming.zhou@linux.dev Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
2eae9c4912
commit
8e93c1acd1
@ -100,6 +100,7 @@ class IocStat:
|
||||
self.period_at = ioc.period_at.value_() / 1_000_000
|
||||
self.vperiod_at = ioc.period_at_vtime.value_() / VTIME_PER_SEC
|
||||
self.vrate_pct = ioc.vtime_base_rate.value_() * 100 / VTIME_PER_USEC
|
||||
self.ivrate_pct = ioc.vtime_rate.counter.value_() * 100 / VTIME_PER_USEC
|
||||
self.busy_level = ioc.busy_level.value_()
|
||||
self.autop_idx = ioc.autop_idx.value_()
|
||||
self.user_cost_model = ioc.user_cost_model.value_()
|
||||
@ -119,7 +120,9 @@ class IocStat:
|
||||
'period_at' : self.period_at,
|
||||
'period_vtime_at' : self.vperiod_at,
|
||||
'busy_level' : self.busy_level,
|
||||
'vrate_pct' : self.vrate_pct, }
|
||||
'vrate_pct' : self.vrate_pct,
|
||||
'ivrate_pct' : self.ivrate_pct,
|
||||
}
|
||||
|
||||
def table_preamble_str(self):
|
||||
state = ('RUN' if self.running else 'IDLE') if self.enabled else 'OFF'
|
||||
@ -127,7 +130,7 @@ class IocStat:
|
||||
f'per={self.period_ms}ms ' \
|
||||
f'cur_per={self.period_at:.3f}:v{self.vperiod_at:.3f} ' \
|
||||
f'busy={self.busy_level:+3} ' \
|
||||
f'vrate={self.vrate_pct:6.2f}% ' \
|
||||
f'vrate={self.vrate_pct:6.2f}%:{self.ivrate_pct:6.2f}% ' \
|
||||
f'params={self.autop_name}'
|
||||
if self.user_cost_model or self.user_qos_params:
|
||||
output += f'({"C" if self.user_cost_model else ""}{"Q" if self.user_qos_params else ""})'
|
||||
|
Loading…
Reference in New Issue
Block a user