elevator.c (aaccf3c97418f169afdbb5855e9cbcbda34e90fd) elevator.c (bca6b067b0b269a7b8ba129e2a918309ca8b4a55)
1/*
2 * Block device elevator/IO-scheduler.
3 *
4 * Copyright (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE
5 *
6 * 30042000 Jens Axboe <axboe@kernel.dk> :
7 *
8 * Split the elevator a bit so that it is possible to choose a different

--- 27 unchanged lines hidden (view full) ---

36#include <linux/uaccess.h>
37#include <linux/pm_runtime.h>
38#include <linux/blk-cgroup.h>
39
40#include <trace/events/block.h>
41
42#include "blk.h"
43#include "blk-mq-sched.h"
1/*
2 * Block device elevator/IO-scheduler.
3 *
4 * Copyright (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE
5 *
6 * 30042000 Jens Axboe <axboe@kernel.dk> :
7 *
8 * Split the elevator a bit so that it is possible to choose a different

--- 27 unchanged lines hidden (view full) ---

36#include <linux/uaccess.h>
37#include <linux/pm_runtime.h>
38#include <linux/blk-cgroup.h>
39
40#include <trace/events/block.h>
41
42#include "blk.h"
43#include "blk-mq-sched.h"
44#include "blk-pm.h"
44#include "blk-wbt.h"
45
46static DEFINE_SPINLOCK(elv_list_lock);
47static LIST_HEAD(elv_list);
48
49/*
50 * Merge hash stuff.
51 */

--- 500 unchanged lines hidden (view full) ---

552
553 if (WARN_ON_ONCE(e->uses_mq))
554 return;
555
556 if (e->type->ops.sq.elevator_bio_merged_fn)
557 e->type->ops.sq.elevator_bio_merged_fn(q, rq, bio);
558}
559
45#include "blk-wbt.h"
46
47static DEFINE_SPINLOCK(elv_list_lock);
48static LIST_HEAD(elv_list);
49
50/*
51 * Merge hash stuff.
52 */

--- 500 unchanged lines hidden (view full) ---

553
554 if (WARN_ON_ONCE(e->uses_mq))
555 return;
556
557 if (e->type->ops.sq.elevator_bio_merged_fn)
558 e->type->ops.sq.elevator_bio_merged_fn(q, rq, bio);
559}
560
560#ifdef CONFIG_PM
561static void blk_pm_requeue_request(struct request *rq)
562{
563 if (rq->q->dev && !(rq->rq_flags & RQF_PM))
564 rq->q->nr_pending--;
565}
566
567static void blk_pm_add_request(struct request_queue *q, struct request *rq)
568{
569 if (q->dev && !(rq->rq_flags & RQF_PM) && q->nr_pending++ == 0 &&
570 (q->rpm_status == RPM_SUSPENDED || q->rpm_status == RPM_SUSPENDING))
571 pm_request_resume(q->dev);
572}
573#else
574static inline void blk_pm_requeue_request(struct request *rq) {}
575static inline void blk_pm_add_request(struct request_queue *q,
576 struct request *rq)
577{
578}
579#endif
580
581void elv_requeue_request(struct request_queue *q, struct request *rq)
582{
583 /*
584 * it already went through dequeue, we need to decrement the
585 * in_flight count again
586 */
587 if (blk_account_rq(rq)) {
588 q->in_flight[rq_is_sync(rq)]--;

--- 606 unchanged lines hidden ---
561void elv_requeue_request(struct request_queue *q, struct request *rq)
562{
563 /*
564 * it already went through dequeue, we need to decrement the
565 * in_flight count again
566 */
567 if (blk_account_rq(rq)) {
568 q->in_flight[rq_is_sync(rq)]--;

--- 606 unchanged lines hidden ---