Lines Matching refs:bfq_queue

49  * the I/O requests in a bfq_queue come from an interactive or a soft
136 void bfq_mark_bfqq_##name(struct bfq_queue *bfqq) \
140 void bfq_clear_bfqq_##name(struct bfq_queue *bfqq) \
144 int bfq_bfqq_##name(const struct bfq_queue *bfqq) \
331 * For a bfq_queue deemed as interactive, the duration of weight
338 * and in this task each process/bfq_queue needs to have at most ~110K
356 * bfq_queue if the latter happens to have received an amount of
369 struct bfq_queue *bic_to_bfqq(struct bfq_io_cq *bic, bool is_sync)
374 void bic_set_bfqq(struct bfq_io_cq *bic, struct bfq_queue *bfqq, bool is_sync)
376 struct bfq_queue *old_bfqq = bic->bfqq[is_sync];
558 static struct bfq_queue *
564 struct bfq_queue *bfqq = NULL;
572 bfqq = rb_entry(parent, struct bfq_queue, pos_node);
599 static bool bfq_too_late_for_merging(struct bfq_queue *bfqq)
615 bfq_pos_tree_add_move(struct bfq_data *bfqd, struct bfq_queue *bfqq)
618 struct bfq_queue *__bfqq;
686 struct bfq_queue *bfqq)
730 void bfq_weights_tree_add(struct bfq_data *bfqd, struct bfq_queue *bfqq,
805 struct bfq_queue *bfqq,
828 struct bfq_queue *bfqq)
879 static struct request *bfq_check_fifo(struct bfq_queue *bfqq,
899 struct bfq_queue *bfqq,
927 struct bfq_queue *bfqq)
948 struct bfq_queue *bfqq)
1010 static void switch_back_to_interactive_wr(struct bfq_queue *bfqq,
1019 bfq_bfqq_resume_state(struct bfq_queue *bfqq, struct bfq_data *bfqd,
1069 static int bfqq_process_refs(struct bfq_queue *bfqq)
1076 static void bfq_reset_burst_list(struct bfq_data *bfqd, struct bfq_queue *bfqq)
1078 struct bfq_queue *item;
1099 static void bfq_add_to_burst(struct bfq_data *bfqd, struct bfq_queue *bfqq)
1105 struct bfq_queue *pos, *bfqq_item;
1251 static void bfq_handle_burst(struct bfq_data *bfqd, struct bfq_queue *bfqq)
1317 static int bfq_bfqq_budget_left(struct bfq_queue *bfqq)
1454 struct bfq_queue *bfqq,
1523 struct bfq_queue *bfqq,
1620 struct bfq_queue *bfqq)
1633 static bool bfq_bfqq_higher_class_or_weight(struct bfq_queue *bfqq,
1634 struct bfq_queue *in_serv_bfqq)
1659 struct bfq_queue *bfqq,
1807 struct bfq_queue *bfqq)
1874 struct bfq_queue *bfqq = RQ_BFQQ(rq);
2127 struct bfq_queue *bfqq = bfqd->bio_bfqq;
2163 struct bfq_queue *bfqq = RQ_BFQQ(rq);
2286 struct bfq_queue *bfqq = RQ_BFQQ(req);
2328 * NOTE: in this function we assume that rq is in a bfq_queue, basing
2338 struct bfq_queue *bfqq = RQ_BFQQ(rq),
2345 * If next and rq belong to the same bfq_queue and next is older
2376 static void bfq_bfqq_end_wr(struct bfq_queue *bfqq)
2405 struct bfq_queue *bfqq;
2433 static struct bfq_queue *bfqq_find_close(struct bfq_data *bfqd,
2434 struct bfq_queue *bfqq,
2439 struct bfq_queue *__bfqq;
2457 __bfqq = rb_entry(parent, struct bfq_queue, pos_node);
2468 __bfqq = rb_entry(node, struct bfq_queue, pos_node);
2475 static struct bfq_queue *bfq_find_close_cooperator(struct bfq_data *bfqd,
2476 struct bfq_queue *cur_bfqq,
2479 struct bfq_queue *bfqq;
2495 static struct bfq_queue *
2496 bfq_setup_merge(struct bfq_queue *bfqq, struct bfq_queue *new_bfqq)
2499 struct bfq_queue *__bfqq;
2571 static bool bfq_may_be_close_cooperator(struct bfq_queue *bfqq,
2572 struct bfq_queue *new_bfqq)
2603 * NULL if no merge was scheduled, a pointer to the shared bfq_queue
2620 static struct bfq_queue *
2621 bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq,
2624 struct bfq_queue *in_service_bfqq, *new_bfqq;
2718 static void bfq_bfqq_save_state(struct bfq_queue *bfqq)
2761 void bfq_release_process_ref(struct bfq_data *bfqd, struct bfq_queue *bfqq)
2783 struct bfq_queue *bfqq, struct bfq_queue *new_bfqq)
2859 struct bfq_queue *bfqq = bfqd->bio_bfqq, *new_bfqq;
2882 * redirected to some other bfq_queue, and a queue
2915 struct bfq_queue *bfqq)
2931 struct bfq_queue *bfqq)
2987 static struct bfq_queue *bfq_set_in_service_queue(struct bfq_data *bfqd)
2989 struct bfq_queue *bfqq = bfq_get_next_queue(bfqd);
2997 struct bfq_queue *bfqq = bfqd->in_service_queue;
3282 struct bfq_queue *bfqq = RQ_BFQQ(rq);
3489 struct bfq_queue *bfqq)
3503 static bool __bfq_bfqq_expire(struct bfq_data *bfqd, struct bfq_queue *bfqq,
3572 struct bfq_queue *bfqq,
3745 * the real rate at which the I/O requests of each bfq_queue are
3747 * bfq_queue means just dispatching its requests during its service
3750 * service slot of a bfq_queue, around 100 ms at most, the device may
3753 * bfq_queue may be completed after the service slot of the queue
3758 * during the service slot of a bfq_queue is probably the only
3759 * approximation available for the service received by the bfq_queue
3763 static bool bfq_bfqq_is_slow(struct bfq_data *bfqd, struct bfq_queue *bfqq,
3914 struct bfq_queue *bfqq)
3950 struct bfq_queue *bfqq,
4093 static bool bfq_bfqq_budget_timeout(struct bfq_queue *bfqq)
4106 static bool bfq_may_expire_for_budg_timeout(struct bfq_queue *bfqq)
4121 struct bfq_queue *bfqq)
4220 static bool bfq_better_to_idle(struct bfq_queue *bfqq)
4271 static bool bfq_bfqq_must_idle(struct bfq_queue *bfqq)
4283 static struct bfq_queue *
4286 struct bfq_queue *bfqq, *in_serv_bfqq = bfqd->in_service_queue;
4376 static struct bfq_queue *bfq_select_queue(struct bfq_data *bfqd)
4378 struct bfq_queue *bfqq;
4459 struct bfq_queue *async_bfqq =
4578 static void bfq_update_wr_data(struct bfq_data *bfqd, struct bfq_queue *bfqq)
4635 struct bfq_queue *bfqq)
4700 struct bfq_queue *bfqq = NULL;
4787 struct bfq_queue *in_serv_queue,
4790 struct bfq_queue *bfqq = rq ? RQ_BFQQ(rq) : NULL;
4832 struct bfq_queue *in_serv_queue,
4840 struct bfq_queue *in_serv_queue;
4869 void bfq_put_queue(struct bfq_queue *bfqq)
4871 struct bfq_queue *item;
4949 void bfq_put_cooperator(struct bfq_queue *bfqq)
4951 struct bfq_queue *__bfqq, *next;
4968 static void bfq_exit_bfqq(struct bfq_data *bfqd, struct bfq_queue *bfqq)
4984 struct bfq_queue *bfqq = bic_to_bfqq(bic, is_sync);
5013 bfq_set_next_ioprio_data(struct bfq_queue *bfqq, struct bfq_io_cq *bic)
5060 static struct bfq_queue *bfq_get_queue(struct bfq_data *bfqd,
5067 struct bfq_queue *bfqq;
5081 struct bfq_queue *old_bfqq = bfqq;
5093 static void bfq_init_bfqq(struct bfq_data *bfqd, struct bfq_queue *bfqq,
5153 static struct bfq_queue **bfq_async_queue_prio(struct bfq_data *bfqd,
5172 static struct bfq_queue *bfq_get_queue(struct bfq_data *bfqd,
5178 struct bfq_queue **async_bfqq = NULL;
5179 struct bfq_queue *bfqq;
5230 struct bfq_queue *bfqq)
5244 bfq_update_io_seektime(struct bfq_data *bfqd, struct bfq_queue *bfqq,
5257 struct bfq_queue *bfqq,
5387 static void bfq_rq_enqueued(struct bfq_data *bfqd, struct bfq_queue *bfqq,
5446 struct bfq_queue *bfqq = RQ_BFQQ(rq),
5462 * to new_bfqq or even some other bfq_queue),
5498 struct bfq_queue *bfqq,
5523 struct bfq_queue *bfqq,
5528 static struct bfq_queue *bfq_init_rq(struct request *rq);
5535 struct bfq_queue *bfqq;
5603 struct bfq_queue *bfqq = bfqd->in_service_queue;
5642 static void bfq_completed_request(struct bfq_queue *bfqq, struct bfq_data *bfqd)
5760 static void bfq_finish_requeue_request_body(struct bfq_queue *bfqq)
5872 struct bfq_queue *bfqq)
5936 struct bfq_queue *bfqq = RQ_BFQQ(rq);
5943 * a bfq_queue.
5994 static struct bfq_queue *
5995 bfq_split_bfqq(struct bfq_io_cq *bic, struct bfq_queue *bfqq)
6014 static struct bfq_queue *bfq_get_bfqq_handle_split(struct bfq_data *bfqd,
6020 struct bfq_queue *bfqq = bic_to_bfqq(bic, is_sync);
6095 * rq, and increment reference counters in the destination bfq_queue
6096 * for rq. Return the destination bfq_queue for rq, or NULL is rq is
6097 * not associated with any bfq_queue.
6116 static struct bfq_queue *bfq_init_rq(struct request *rq)
6123 struct bfq_queue *bfqq;
6179 * If a bfq_queue has only one process reference, it is owned
6226 bfq_idle_slice_timer_body(struct bfq_data *bfqd, struct bfq_queue *bfqq)
6280 struct bfq_queue *bfqq = bfqd->in_service_queue;
6297 struct bfq_queue **bfqq_ptr)
6299 struct bfq_queue *bfqq = *bfqq_ptr;
6339 * In-word depths if no bfq_queue is being weight-raised:
6358 * In-word depths in case some bfq_queue is being weight-
6395 struct bfq_queue *bfqq, *n;
6578 bfq_pool = KMEM_CACHE(bfq_queue, 0);