Hello, > @@ -2225,6 +2207,25 @@ static void ioc_timer_fn(struct timer_list *timer) > time_before64(vtime, now.vnow - ioc->margins.low))) { > u32 hwa, old_hwi, hwm, new_hwi; > > + if (vdone != vtime) { > + u64 inflight_us = DIV64_U64_ROUND_UP( > + cost_to_abs_cost(vtime - vdone, hw_inuse), > + ioc->vtime_base_rate); > + > + usage_us = max(usage_us, inflight_us); > + } > + > + /* convert to hweight based usage ratio */ > + if (time_after64(iocg->activated_at, ioc->period_at)) > + usage_dur = max_t(u64, now.now - iocg->activated_at, 1); > + else > + usage_dur = max_t(u64, now.now - ioc->period_at, 1); > + > + usage = clamp_t(u32, > + DIV64_U64_ROUND_UP(usage_us * WEIGHT_ONE, > + usage_dur), > + 1, WEIGHT_ONE); Can you please move the variable declarations inside the block together with the code? Thanks. -- tejun