Skip to content

Commit 5654720

Browse files
author
Jens Axboe
committed
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 <[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
1 parent cf2d02a commit 5654720

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/rpi-3.12.y: cf82c798394cd443eed7d91f998b79a63f341e91
2+
refs/heads/rpi-3.12.y: f4af3c3d077a004762aaad052049c809fd8c6f0c

trunk/block/blk-core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2665,7 +2665,7 @@ static int plug_rq_cmp(void *priv, struct list_head *a, struct list_head *b)
26652665
static void queue_unplugged(struct request_queue *q, unsigned int depth)
26662666
{
26672667
trace_block_unplug_io(q, depth);
2668-
__blk_run_queue(q, false);
2668+
__blk_run_queue(q, true);
26692669

26702670
if (q->unplugged_fn)
26712671
q->unplugged_fn(q);

0 commit comments

Comments
 (0)