Messages in this thread Patch in this message | | | From | Nitesh Shetty <> | Subject | [PATCH v2] blk: optimization for classic polling | Date | Fri, 9 Feb 2018 16:12:16 -0500 |
| |
From: Nitesh Shetty <nj.shetty@samsung.com>
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.
Changes v1->v2: -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(+)
diff --git a/block/blk-mq.c b/block/blk-mq.c index df93102..40285fe 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -3164,6 +3164,7 @@ static bool __blk_mq_poll(struct blk_mq_hw_ctx *hctx, struct request *rq) cpu_relax(); } + set_current_state(TASK_RUNNING); return false; } -- 2.7.4
| |