Skip to content

Commit

Permalink
block: move queue run on unplug to kblockd
Browse files Browse the repository at this point in the history
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 <[email protected]>


---
yaml
---
svn_rev: 244103
current_ref: refs/heads/rpi-3.12.y
current_commit: f4af3c3
head_branch: refs/heads/rpi-3.12.y
migrated_from: v3
  • Loading branch information
Jens Axboe committed Apr 12, 2011
1 parent cf2d02a commit 5654720
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/rpi-3.12.y: cf82c798394cd443eed7d91f998b79a63f341e91
refs/heads/rpi-3.12.y: f4af3c3d077a004762aaad052049c809fd8c6f0c
2 changes: 1 addition & 1 deletion trunk/block/blk-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2665,7 +2665,7 @@ static int plug_rq_cmp(void *priv, struct list_head *a, struct list_head *b)
static void queue_unplugged(struct request_queue *q, unsigned int depth)
{
trace_block_unplug_io(q, depth);
__blk_run_queue(q, false);
__blk_run_queue(q, true);

if (q->unplugged_fn)
q->unplugged_fn(q);
Expand Down

0 comments on commit 5654720

Please sign in to comment.