kernel_optimize_test/block
Bart Van Assche 7cedffec8e block: Make blk_get_request() block for non-PM requests while suspended
Instead of allowing requests that are not power management requests
to enter the queue in runtime suspended status (RPM_SUSPENDED), make
the blk_get_request() caller block. This change fixes a starvation
issue: it is now guaranteed that power management requests will be
executed no matter how many blk_get_request() callers are waiting.
For blk-mq, instead of maintaining the q->nr_pending counter, rely
on q->q_usage_counter. Call pm_runtime_mark_last_busy() every time a
request finishes instead of only if the queue depth drops to zero.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Jianchao Wang <jianchao.w.wang@oracle.com>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-09-26 15:11:29 -06:00
..
partitions
badblocks.c
bfq-cgroup.c blkcg: fix ref count issue with bio_blkcg using task_css 2018-09-21 20:29:02 -06:00
bfq-iosched.c blkcg: fix ref count issue with bio_blkcg using task_css 2018-09-21 20:29:02 -06:00
bfq-iosched.h
bfq-wf2q.c
bio-integrity.c
bio.c block: merge BIOVEC_SEG_BOUNDARY into biovec_phys_mergeable 2018-09-24 12:33:57 -06:00
blk-cgroup.c blkcg: rename blkg_try_get to blkg_tryget 2018-09-21 20:29:19 -06:00
blk-core.c block: Make blk_get_request() block for non-PM requests while suspended 2018-09-26 15:11:29 -06:00
blk-exec.c
blk-flush.c
blk-integrity.c block: merge BIOVEC_SEG_BOUNDARY into biovec_phys_mergeable 2018-09-24 12:33:57 -06:00
blk-ioc.c
blk-iolatency.c blkcg: rename blkg_try_get to blkg_tryget 2018-09-21 20:29:19 -06:00
blk-lib.c
blk-map.c
blk-merge.c block: merge BIOVEC_SEG_BOUNDARY into biovec_phys_mergeable 2018-09-24 12:33:57 -06:00
blk-mq-cpumap.c
blk-mq-debugfs-zoned.c
blk-mq-debugfs.c block, scsi: Change the preempt-only flag into a counter 2018-09-26 15:11:28 -06:00
blk-mq-debugfs.h
blk-mq-pci.c
blk-mq-rdma.c
blk-mq-sched.c
blk-mq-sched.h
blk-mq-sysfs.c
blk-mq-tag.c blk-mq: Document the functions that iterate over requests 2018-09-21 20:30:22 -06:00
blk-mq-tag.h
blk-mq-virtio.c
blk-mq.c block: Allow unfreezing of a queue while requests are in progress 2018-09-26 15:11:29 -06:00
blk-mq.h
blk-pm.c block: Make blk_get_request() block for non-PM requests while suspended 2018-09-26 15:11:29 -06:00
blk-pm.h block: Split blk_pm_add_request() and blk_pm_put_request() 2018-09-26 15:11:28 -06:00
blk-rq-qos.c
blk-rq-qos.h
blk-settings.c
blk-softirq.c
blk-stat.c
blk-stat.h
blk-sysfs.c
blk-tag.c
blk-throttle.c blkcg: consolidate bio_issue_init to be a part of core 2018-09-21 20:29:08 -06:00
blk-timeout.c
blk-wbt.c
blk-wbt.h
blk-zoned.c
blk.h block: remove ARCH_BIOVEC_PHYS_MERGEABLE 2018-09-26 08:45:11 -06:00
bounce.c blkcg: remove bio->bi_css and instead use bio->bi_blkg 2018-09-21 20:29:13 -06:00
bsg-lib.c
bsg.c
cfq-iosched.c blkcg: fix ref count issue with bio_blkcg using task_css 2018-09-21 20:29:02 -06:00
cmdline-parser.c
compat_ioctl.c
deadline-iosched.c
elevator.c block: Schedule runtime resume earlier 2018-09-26 15:11:28 -06:00
genhd.c
ioctl.c
ioprio.c
Kconfig block: Move power management code into a new source file 2018-09-26 15:11:28 -06:00
Kconfig.iosched
kyber-iosched.c
Makefile block: Move power management code into a new source file 2018-09-26 15:11:28 -06:00
mq-deadline.c
noop-iosched.c
opal_proto.h
partition-generic.c
scsi_ioctl.c
sed-opal.c
t10-pi.c