Commit Message

This removes the dependency on interrupts to wake up task. Set task
state as TASK_RUNNING, if need_resched() returns true,
while polling for IO completion.
Earlier, polling task used to sleep, relying on interrupt to wake it up.
This made some IO take very long when interrupt-coalescing is enabled in
NVMe.
Reference:
http://lists.infradead.org/pipermail/linux-nvme/2018-February/015435.html
Changes since v1:
-setting task state once in blk_poll, instead of multiple
callers.
Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
---
block/blk-mq.c | 1 +
1 file changed, 1 insertion(+)

Comments

On 2/13/18 11:56 AM, Nitesh Shetty wrote:
> This removes the dependency on interrupts to wake up task. Set task> state as TASK_RUNNING, if need_resched() returns true,> while polling for IO completion.> Earlier, polling task used to sleep, relying on interrupt to wake it up.> This made some IO take very long when interrupt-coalescing is enabled in> NVMe.
__set_current_state() should suffice here.