diff options
| author | Bart Van Assche <[email protected]> | 2018-09-26 14:01:09 -0700 |
|---|---|---|
| committer | Jens Axboe <[email protected]> | 2018-09-26 15:11:29 -0600 |
| commit | 7cedffec8e759480f7f7a9be9cd0d7ebf0aafff2 (patch) | |
| tree | c250eefe988e637b71f88df77da4c61d48aaf811 /include | |
| parent | bdd6316094e0370cd183bc979dd7e322b68dc993 (diff) | |
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 <[email protected]>
Reviewed-by: Ming Lei <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Cc: Jianchao Wang <[email protected]>
Cc: Hannes Reinecke <[email protected]>
Cc: Johannes Thumshirn <[email protected]>
Cc: Alan Stern <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions