Lines Matching refs:blkiolat
142 struct blk_iolatency *blkiolat; member
328 static void scale_cookie_change(struct blk_iolatency *blkiolat, in scale_cookie_change() argument
332 unsigned long qd = blkiolat->rqos.q->nr_requests; in scale_cookie_change()
372 unsigned long qd = iolat->blkiolat->rqos.q->nr_requests; in scale_change()
467 struct blk_iolatency *blkiolat = BLKIOLATENCY(rqos); in blkcg_iolatency_throttle() local
471 if (!blkiolat->enabled) in blkcg_iolatency_throttle()
486 if (!timer_pending(&blkiolat->timer)) in blkcg_iolatency_throttle()
487 mod_timer(&blkiolat->timer, jiffies + HZ); in blkcg_iolatency_throttle()
576 scale_cookie_change(iolat->blkiolat, lat_info, true); in iolatency_check_latencies()
586 scale_cookie_change(iolat->blkiolat, lat_info, false); in iolatency_check_latencies()
611 if (!iolat->blkiolat->enabled) in blkcg_iolatency_done_bio()
647 struct blk_iolatency *blkiolat = BLKIOLATENCY(rqos); in blkcg_iolatency_exit() local
649 del_timer_sync(&blkiolat->timer); in blkcg_iolatency_exit()
650 flush_work(&blkiolat->enable_work); in blkcg_iolatency_exit()
652 kfree(blkiolat); in blkcg_iolatency_exit()
663 struct blk_iolatency *blkiolat = from_timer(blkiolat, t, timer); in blkiolatency_timer_fn() local
670 blkiolat->rqos.q->root_blkg) { in blkiolatency_timer_fn()
702 scale_cookie_change(iolat->blkiolat, lat_info, true); in blkiolatency_timer_fn()
739 struct blk_iolatency *blkiolat = container_of(work, struct blk_iolatency, in blkiolatency_enable_work_fn() local
752 enabled = atomic_read(&blkiolat->enable_cnt); in blkiolatency_enable_work_fn()
753 if (enabled != blkiolat->enabled) { in blkiolatency_enable_work_fn()
754 blk_mq_freeze_queue(blkiolat->rqos.q); in blkiolatency_enable_work_fn()
755 blkiolat->enabled = enabled; in blkiolatency_enable_work_fn()
756 blk_mq_unfreeze_queue(blkiolat->rqos.q); in blkiolatency_enable_work_fn()
762 struct blk_iolatency *blkiolat; in blk_iolatency_init() local
766 blkiolat = kzalloc(sizeof(*blkiolat), GFP_KERNEL); in blk_iolatency_init()
767 if (!blkiolat) in blk_iolatency_init()
770 rqos = &blkiolat->rqos; in blk_iolatency_init()
782 timer_setup(&blkiolat->timer, blkiolatency_timer_fn, 0); in blk_iolatency_init()
783 INIT_WORK(&blkiolat->enable_work, blkiolatency_enable_work_fn); in blk_iolatency_init()
790 kfree(blkiolat); in blk_iolatency_init()
797 struct blk_iolatency *blkiolat = iolat->blkiolat; in iolatency_set_min_lat_nsec() local
806 if (atomic_inc_return(&blkiolat->enable_cnt) == 1) in iolatency_set_min_lat_nsec()
807 schedule_work(&blkiolat->enable_work); in iolatency_set_min_lat_nsec()
811 if (atomic_dec_return(&blkiolat->enable_cnt) == 0) in iolatency_set_min_lat_nsec()
812 schedule_work(&blkiolat->enable_work); in iolatency_set_min_lat_nsec()
981 struct blk_iolatency *blkiolat = BLKIOLATENCY(rqos); in iolatency_pd_init() local
1002 iolat->blkiolat = blkiolat; in iolatency_pd_init()