summaryrefslogtreecommitdiff
path: root/drivers/md/dm.c
diff options
context:
space:
mode:
authorNeeraj Soni <neersoni@codeaurora.org>2017-06-06 18:57:07 +0530
committerNeeraj Soni <neersoni@codeaurora.org>2017-06-06 18:57:07 +0530
commitc9762c3c1a12ce24ef8e6e5f3f6f021cefbb9a17 (patch)
tree420c90b35c64ad642340ff9b3006d04d509964f8 /drivers/md/dm.c
parent8d601310901aec11cc3b8f737a4f3f634aa0a973 (diff)
dm: md: Replace scheduling of request with direct call
This is found to be improving the performance of Random read and write with FDE enabled. The scheduling was introduced as part of 4.4 kernel for mq support. Change-Id: I300750b5f7f1cff4b81f028ae938e7d2b3652bd2 Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
Diffstat (limited to 'drivers/md/dm.c')
-rw-r--r--drivers/md/dm.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 5d42d8f09421..1a7b11d57256 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -2191,8 +2191,11 @@ static void dm_request_fn(struct request_queue *q)
tio = tio_from_request(rq);
/* Establish tio->ti before queuing work (map_tio_request) */
tio->ti = ti;
- queue_kthread_work(&md->kworker, &tio->work);
+ spin_unlock(q->queue_lock);
+ if (map_request(tio, rq, md) == DM_MAPIO_REQUEUE)
+ dm_requeue_original_request(md, rq);
BUG_ON(!irqs_disabled());
+ spin_lock(q->queue_lock);
}
goto out;