On 01/07/2020 08:05, Hongnan Li wrote: > ktime_to_ns(ktime_get()) which is expensive do not need to be executed if > blk_iolatency_enabled() return false in blkcg_iolatency_done_bio(). > Postponing ktime_to_ns(ktime_get()) execution can reduce CPU usage > when blk_iolatency was disabled. > > Signed-off-by: Hongnan Li <hongnan.li@xxxxxxxxxxxxxxxxx> > --- > block/blk-iolatency.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/block/blk-iolatency.c b/block/blk-iolatency.c > index c128d50..8c1487e 100644 > --- a/block/blk-iolatency.c > +++ b/block/blk-iolatency.c > @@ -591,7 +591,7 @@ static void blkcg_iolatency_done_bio(struct rq_qos *rqos, struct bio *bio) > struct rq_wait *rqw; > struct iolatency_grp *iolat; > u64 window_start; > - u64 now = ktime_to_ns(ktime_get()); > + > bool issue_as_root = bio_issue_as_root_blkg(bio); > bool enabled = false; > int inflight = 0; > @@ -608,6 +608,7 @@ static void blkcg_iolatency_done_bio(struct rq_qos *rqos, struct bio *bio) > if (!enabled) > return; > > + u64 now = ktime_to_ns(ktime_get()); > while (blkg && blkg->parent) { > iolat = blkg_to_lat(blkg); > if (!iolat) { > You're mixing declarations and code. please do - u64 now = ktime_to_ns(ktime_get()); + u64 now; [...] + now = ktime_to_ns(ktime_get());