block: move queue run on unplug to kblockd
authorJens Axboe <jaxboe@fusionio.com>
Tue, 12 Apr 2011 12:58:51 +0000 (14:58 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Tue, 12 Apr 2011 12:58:51 +0000 (14:58 +0200)
commitf4af3c3d077a004762aaad052049c809fd8c6f0c
treec4cbbc37e357775fc8200e16c6eb9b3f14d30069
parentcf82c798394cd443eed7d91f998b79a63f341e91
block: move queue run on unplug to kblockd

There are worries that we are now consuming a lot more stack in
some cases, since we potentially call into IO dispatch from
schedule() or io_schedule(). We can reduce this problem by moving
the running of the queue to kblockd, like the old plugging scheme
did as well.

This may or may not be a good idea from a performance perspective,
depending on how many tasks have queue plugs running at the same
time. For even the slightly contended case, doing just a single
queue run from kblockd instead of multiple runs directly from the
unpluggers will be faster.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/blk-core.c