dm: optimize dm_mq_queue_rq to _not_ use kthread if using pure blk-mq
authorMike Snitzer <snitzer@redhat.com>
Wed, 11 Mar 2015 03:49:26 +0000 (23:49 -0400)
committerMike Snitzer <snitzer@redhat.com>
Wed, 15 Apr 2015 16:10:17 +0000 (12:10 -0400)
commit022333427a8aa4ccb318a9db90cea4e69ca1826b
tree9f3fad66840616cd281b449a99df4d30bfdfd6c2
parentbfebd1cdb497a57757c83f5fbf1a29931591e2a4
dm: optimize dm_mq_queue_rq to _not_ use kthread if using pure blk-mq

dm_mq_queue_rq() is in atomic context so care must be taken to not
sleep -- as such GFP_ATOMIC is used for the md->bs bioset allocations
and dm-mpath's call to blk_get_request().  In the future the bioset
allocations will hopefully go away (by removing support for partial
completions of bios in a cloned request).

Also prepare for supporting DM blk-mq ontop of old-style request_fn
device(s) if a new dm-mod 'use_blk_mq' parameter is set.  The kthread
will still be used to queue work if blk-mq is used ontop of old-style
request_fn device(s).

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-mpath.c
drivers/md/dm.c