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()
338 static void bfq_idle_extract(struct bfq_service_tree *st, in bfq_idle_extract() argument
344 if (entity == st->first_idle) { in bfq_idle_extract()
346 st->first_idle = bfq_entity_of(next); in bfq_idle_extract()
349 if (entity == st->last_idle) { in bfq_idle_extract()
351 st->last_idle = bfq_entity_of(next); in bfq_idle_extract()
354 bfq_extract(&st->idle, entity); in bfq_idle_extract()
469 static void bfq_active_insert(struct bfq_service_tree *st, in bfq_active_insert() argument
480 bfq_insert(&st->active, entity); in bfq_active_insert()
571 static void bfq_active_extract(struct bfq_service_tree *st, in bfq_active_extract() argument
583 bfq_extract(&st->active, entity); in bfq_active_extract()
606 static void bfq_idle_insert(struct bfq_service_tree *st, in bfq_idle_insert() argument
610 struct bfq_entity *first_idle = st->first_idle; in bfq_idle_insert()
611 struct bfq_entity *last_idle = st->last_idle; in bfq_idle_insert()
614 st->first_idle = entity; in bfq_idle_insert()
616 st->last_idle = entity; in bfq_idle_insert()
618 bfq_insert(&st->idle, entity); in bfq_idle_insert()
639 static void bfq_forget_entity(struct bfq_service_tree *st, in bfq_forget_entity() argument
646 st->wsum -= entity->weight; in bfq_forget_entity()
656 void bfq_put_idle_entity(struct bfq_service_tree *st, struct bfq_entity *entity) in bfq_put_idle_entity() argument
658 bfq_idle_extract(st, entity); in bfq_put_idle_entity()
659 bfq_forget_entity(st, entity, in bfq_put_idle_entity()
670 static void bfq_forget_idle(struct bfq_service_tree *st) in bfq_forget_idle() argument
672 struct bfq_entity *first_idle = st->first_idle; in bfq_forget_idle()
673 struct bfq_entity *last_idle = st->last_idle; in bfq_forget_idle()
675 if (RB_EMPTY_ROOT(&st->active) && last_idle && in bfq_forget_idle()
676 !bfq_gt(last_idle->finish, st->vtime)) { in bfq_forget_idle()
681 st->vtime = last_idle->finish; in bfq_forget_idle()
684 if (first_idle && !bfq_gt(first_idle->finish, st->vtime)) in bfq_forget_idle()
685 bfq_put_idle_entity(st, first_idle); in bfq_forget_idle()
824 struct bfq_service_tree *st; in bfq_bfqq_served() local
834 st = bfq_entity_service_tree(entity); in bfq_bfqq_served()
838 st->vtime += bfq_delta(served, st->wsum); in bfq_bfqq_served()
839 bfq_forget_idle(st); in bfq_bfqq_served()
890 struct bfq_service_tree *st, in bfq_update_fin_time_enqueue() argument
900 st = __bfq_entity_update_weight_prio(st, entity, true); in bfq_update_fin_time_enqueue()
936 if (backshifted && bfq_gt(st->vtime, entity->finish)) { in bfq_update_fin_time_enqueue()
937 unsigned long delta = st->vtime - entity->finish; in bfq_update_fin_time_enqueue()
946 bfq_active_insert(st, entity); in bfq_update_fin_time_enqueue()
964 struct bfq_service_tree *st = bfq_entity_service_tree(entity); in __bfq_activate_entity() local
969 if (non_blocking_wait_rq && bfq_gt(st->vtime, entity->finish)) { in __bfq_activate_entity()
973 min_vstart = st->vtime; in __bfq_activate_entity()
975 if (entity->tree == &st->idle) { in __bfq_activate_entity()
980 bfq_idle_extract(st, entity); in __bfq_activate_entity()
990 st->wsum += entity->weight; in __bfq_activate_entity()
1015 bfq_update_fin_time_enqueue(entity, st, backshifted); in __bfq_activate_entity()
1036 struct bfq_service_tree *st = bfq_entity_service_tree(entity); in __bfq_requeue_entity() local
1077 bfq_active_extract(st, entity); in __bfq_requeue_entity()
1093 bfq_active_extract(st, entity); in __bfq_requeue_entity()
1096 bfq_update_fin_time_enqueue(entity, st, false); in __bfq_requeue_entity()
1103 struct bfq_service_tree *st = bfq_entity_service_tree(entity); in __bfq_activate_requeue_entity() local
1105 if (sd->in_service_entity == entity || entity->tree == &st->active) in __bfq_activate_requeue_entity()
1162 struct bfq_service_tree *st; in __bfq_deactivate_entity() local
1177 st = bfq_entity_service_tree(entity); in __bfq_deactivate_entity()
1192 if (entity->tree == &st->active) in __bfq_deactivate_entity()
1193 bfq_active_extract(st, entity); in __bfq_deactivate_entity()
1194 else if (!is_in_service && entity->tree == &st->idle) in __bfq_deactivate_entity()
1195 bfq_idle_extract(st, entity); in __bfq_deactivate_entity()
1197 if (!ins_into_idle_tree || !bfq_gt(entity->finish, st->vtime)) in __bfq_deactivate_entity()
1198 bfq_forget_entity(st, entity, is_in_service); in __bfq_deactivate_entity()
1200 bfq_idle_insert(st, entity); in __bfq_deactivate_entity()
1317 static u64 bfq_calc_vtime_jump(struct bfq_service_tree *st) in bfq_calc_vtime_jump() argument
1319 struct bfq_entity *root_entity = bfq_root_active_entity(&st->active); in bfq_calc_vtime_jump()
1321 if (bfq_gt(root_entity->min_start, st->vtime)) in bfq_calc_vtime_jump()
1324 return st->vtime; in bfq_calc_vtime_jump()
1327 static void bfq_update_vtime(struct bfq_service_tree *st, u64 new_value) in bfq_update_vtime() argument
1329 if (new_value > st->vtime) { in bfq_update_vtime()
1330 st->vtime = new_value; in bfq_update_vtime()
1331 bfq_forget_idle(st); in bfq_update_vtime()
1347 static struct bfq_entity *bfq_first_active_entity(struct bfq_service_tree *st, in bfq_first_active_entity() argument
1351 struct rb_node *node = st->active.rb_node; in bfq_first_active_entity()
1398 __bfq_lookup_next_entity(struct bfq_service_tree *st, bool in_service) in __bfq_lookup_next_entity() argument
1403 if (RB_EMPTY_ROOT(&st->active)) in __bfq_lookup_next_entity()
1410 new_vtime = bfq_calc_vtime_jump(st); in __bfq_lookup_next_entity()
1423 bfq_update_vtime(st, new_vtime); in __bfq_lookup_next_entity()
1425 entity = bfq_first_active_entity(st, new_vtime); in __bfq_lookup_next_entity()
1442 struct bfq_service_tree *st = sd->service_tree; in bfq_lookup_next_entity() local
1443 struct bfq_service_tree *idle_class_st = st + (BFQ_IOPRIO_CLASSES - 1); in bfq_lookup_next_entity()
1482 entity = __bfq_lookup_next_entity(st + class_idx, in bfq_lookup_next_entity()