Lines Matching refs:st
110 struct bfq_service_tree *st = in bfq_update_next_in_service() local
117 !bfq_gt(new_entity->start, st->vtime) in bfq_update_next_in_service()
341 static void bfq_idle_extract(struct bfq_service_tree *st, in bfq_idle_extract() argument
347 if (entity == st->first_idle) { in bfq_idle_extract()
349 st->first_idle = bfq_entity_of(next); in bfq_idle_extract()
352 if (entity == st->last_idle) { in bfq_idle_extract()
354 st->last_idle = bfq_entity_of(next); in bfq_idle_extract()
357 bfq_extract(&st->idle, entity); in bfq_idle_extract()
472 static void bfq_active_insert(struct bfq_service_tree *st, in bfq_active_insert() argument
483 bfq_insert(&st->active, entity); in bfq_active_insert()
574 static void bfq_active_extract(struct bfq_service_tree *st, in bfq_active_extract() argument
586 bfq_extract(&st->active, entity); in bfq_active_extract()
609 static void bfq_idle_insert(struct bfq_service_tree *st, in bfq_idle_insert() argument
613 struct bfq_entity *first_idle = st->first_idle; in bfq_idle_insert()
614 struct bfq_entity *last_idle = st->last_idle; in bfq_idle_insert()
617 st->first_idle = entity; in bfq_idle_insert()
619 st->last_idle = entity; in bfq_idle_insert()
621 bfq_insert(&st->idle, entity); in bfq_idle_insert()
642 static void bfq_forget_entity(struct bfq_service_tree *st, in bfq_forget_entity() argument
649 st->wsum -= entity->weight; in bfq_forget_entity()
659 void bfq_put_idle_entity(struct bfq_service_tree *st, struct bfq_entity *entity) in bfq_put_idle_entity() argument
661 bfq_idle_extract(st, entity); in bfq_put_idle_entity()
662 bfq_forget_entity(st, entity, in bfq_put_idle_entity()
673 static void bfq_forget_idle(struct bfq_service_tree *st) in bfq_forget_idle() argument
675 struct bfq_entity *first_idle = st->first_idle; in bfq_forget_idle()
676 struct bfq_entity *last_idle = st->last_idle; in bfq_forget_idle()
678 if (RB_EMPTY_ROOT(&st->active) && last_idle && in bfq_forget_idle()
679 !bfq_gt(last_idle->finish, st->vtime)) { in bfq_forget_idle()
684 st->vtime = last_idle->finish; in bfq_forget_idle()
687 if (first_idle && !bfq_gt(first_idle->finish, st->vtime)) in bfq_forget_idle()
688 bfq_put_idle_entity(st, first_idle); in bfq_forget_idle()
827 struct bfq_service_tree *st; in bfq_bfqq_served() local
837 st = bfq_entity_service_tree(entity); in bfq_bfqq_served()
841 st->vtime += bfq_delta(served, st->wsum); in bfq_bfqq_served()
842 bfq_forget_idle(st); in bfq_bfqq_served()
893 struct bfq_service_tree *st, in bfq_update_fin_time_enqueue() argument
903 st = __bfq_entity_update_weight_prio(st, entity, true); in bfq_update_fin_time_enqueue()
939 if (backshifted && bfq_gt(st->vtime, entity->finish)) { in bfq_update_fin_time_enqueue()
940 unsigned long delta = st->vtime - entity->finish; in bfq_update_fin_time_enqueue()
949 bfq_active_insert(st, entity); in bfq_update_fin_time_enqueue()
967 struct bfq_service_tree *st = bfq_entity_service_tree(entity); in __bfq_activate_entity() local
972 if (non_blocking_wait_rq && bfq_gt(st->vtime, entity->finish)) { in __bfq_activate_entity()
976 min_vstart = st->vtime; in __bfq_activate_entity()
978 if (entity->tree == &st->idle) { in __bfq_activate_entity()
983 bfq_idle_extract(st, entity); in __bfq_activate_entity()
993 st->wsum += entity->weight; in __bfq_activate_entity()
1018 bfq_update_fin_time_enqueue(entity, st, backshifted); in __bfq_activate_entity()
1039 struct bfq_service_tree *st = bfq_entity_service_tree(entity); in __bfq_requeue_entity() local
1080 bfq_active_extract(st, entity); in __bfq_requeue_entity()
1096 bfq_active_extract(st, entity); in __bfq_requeue_entity()
1099 bfq_update_fin_time_enqueue(entity, st, false); in __bfq_requeue_entity()
1106 struct bfq_service_tree *st = bfq_entity_service_tree(entity); in __bfq_activate_requeue_entity() local
1108 if (sd->in_service_entity == entity || entity->tree == &st->active) in __bfq_activate_requeue_entity()
1165 struct bfq_service_tree *st; in __bfq_deactivate_entity() local
1180 st = bfq_entity_service_tree(entity); in __bfq_deactivate_entity()
1195 if (entity->tree == &st->active) in __bfq_deactivate_entity()
1196 bfq_active_extract(st, entity); in __bfq_deactivate_entity()
1197 else if (!is_in_service && entity->tree == &st->idle) in __bfq_deactivate_entity()
1198 bfq_idle_extract(st, entity); in __bfq_deactivate_entity()
1200 if (!ins_into_idle_tree || !bfq_gt(entity->finish, st->vtime)) in __bfq_deactivate_entity()
1201 bfq_forget_entity(st, entity, is_in_service); in __bfq_deactivate_entity()
1203 bfq_idle_insert(st, entity); in __bfq_deactivate_entity()
1320 static u64 bfq_calc_vtime_jump(struct bfq_service_tree *st) in bfq_calc_vtime_jump() argument
1322 struct bfq_entity *root_entity = bfq_root_active_entity(&st->active); in bfq_calc_vtime_jump()
1324 if (bfq_gt(root_entity->min_start, st->vtime)) in bfq_calc_vtime_jump()
1327 return st->vtime; in bfq_calc_vtime_jump()
1330 static void bfq_update_vtime(struct bfq_service_tree *st, u64 new_value) in bfq_update_vtime() argument
1332 if (new_value > st->vtime) { in bfq_update_vtime()
1333 st->vtime = new_value; in bfq_update_vtime()
1334 bfq_forget_idle(st); in bfq_update_vtime()
1350 static struct bfq_entity *bfq_first_active_entity(struct bfq_service_tree *st, in bfq_first_active_entity() argument
1354 struct rb_node *node = st->active.rb_node; in bfq_first_active_entity()
1401 __bfq_lookup_next_entity(struct bfq_service_tree *st, bool in_service) in __bfq_lookup_next_entity() argument
1406 if (RB_EMPTY_ROOT(&st->active)) in __bfq_lookup_next_entity()
1413 new_vtime = bfq_calc_vtime_jump(st); in __bfq_lookup_next_entity()
1426 bfq_update_vtime(st, new_vtime); in __bfq_lookup_next_entity()
1428 entity = bfq_first_active_entity(st, new_vtime); in __bfq_lookup_next_entity()
1445 struct bfq_service_tree *st = sd->service_tree; in bfq_lookup_next_entity() local
1446 struct bfq_service_tree *idle_class_st = st + (BFQ_IOPRIO_CLASSES - 1); in bfq_lookup_next_entity()
1485 entity = __bfq_lookup_next_entity(st + class_idx, in bfq_lookup_next_entity()