Lines Matching refs:parent_sq

59 	struct throtl_service_queue *parent_sq;	/* the parent service_queue */  member
183 if (sq && sq->parent_sq) in sq_to_tg()
371 sq->parent_sq = &td->service_queue; in throtl_pd_init()
373 sq->parent_sq = &blkg_to_tg(blkg->parent)->service_queue; in throtl_pd_init()
384 struct throtl_grp *parent_tg = sq_to_tg(tg->service_queue.parent_sq); in tg_update_has_rules()
410 throtl_rb_first(struct throtl_service_queue *parent_sq) in throtl_rb_first() argument
413 if (!parent_sq->nr_pending) in throtl_rb_first()
416 if (!parent_sq->first_pending) in throtl_rb_first()
417 parent_sq->first_pending = rb_first(&parent_sq->pending_tree); in throtl_rb_first()
419 if (parent_sq->first_pending) in throtl_rb_first()
420 return rb_entry_tg(parent_sq->first_pending); in throtl_rb_first()
432 struct throtl_service_queue *parent_sq) in throtl_rb_erase() argument
434 if (parent_sq->first_pending == n) in throtl_rb_erase()
435 parent_sq->first_pending = NULL; in throtl_rb_erase()
436 rb_erase_init(n, &parent_sq->pending_tree); in throtl_rb_erase()
437 --parent_sq->nr_pending; in throtl_rb_erase()
440 static void update_min_dispatch_time(struct throtl_service_queue *parent_sq) in update_min_dispatch_time() argument
444 tg = throtl_rb_first(parent_sq); in update_min_dispatch_time()
448 parent_sq->first_pending_disptime = tg->disptime; in update_min_dispatch_time()
453 struct throtl_service_queue *parent_sq = tg->service_queue.parent_sq; in tg_service_queue_add() local
454 struct rb_node **node = &parent_sq->pending_tree.rb_node; in tg_service_queue_add()
473 parent_sq->first_pending = &tg->rb_node; in tg_service_queue_add()
476 rb_insert_color(&tg->rb_node, &parent_sq->pending_tree); in tg_service_queue_add()
483 tg->service_queue.parent_sq->nr_pending++; in __throtl_enqueue_tg()
494 throtl_rb_erase(&tg->rb_node, tg->service_queue.parent_sq); in __throtl_dequeue_tg()
904 struct throtl_service_queue *parent_sq = sq->parent_sq; in tg_dispatch_one_bio() local
905 struct throtl_grp *parent_tg = sq_to_tg(parent_sq); in tg_dispatch_one_bio()
932 &parent_sq->queued[rw]); in tg_dispatch_one_bio()
976 static int throtl_select_dispatch(struct throtl_service_queue *parent_sq) in throtl_select_dispatch() argument
981 struct throtl_grp *tg = throtl_rb_first(parent_sq); in throtl_select_dispatch()
1025 struct throtl_service_queue *parent_sq; in throtl_pending_timer_fn() local
1031 parent_sq = sq->parent_sq; in throtl_pending_timer_fn()
1057 if (parent_sq) { in throtl_pending_timer_fn()
1061 if (!throtl_schedule_next_dispatch(parent_sq, false)) { in throtl_pending_timer_fn()
1063 sq = parent_sq; in throtl_pending_timer_fn()
1181 throtl_schedule_next_dispatch(sq->parent_sq, true); in tg_conf_updated()
1449 sq = sq->parent_sq; in blk_throtl_bio()
1475 throtl_schedule_next_dispatch(tg->service_queue.parent_sq, true); in blk_throtl_bio()
1496 static void tg_drain_bios(struct throtl_service_queue *parent_sq) in tg_drain_bios() argument
1500 while ((tg = throtl_rb_first(parent_sq))) { in tg_drain_bios()