summaryrefslogtreecommitdiffstats
path: root/blk-loop-avoid-too-many-pending-per-work-IO.patch
diff options
context:
space:
mode:
authorJustin M. Forbes <jforbes@redhat.com>2015-05-01 08:50:39 -0500
committerJustin M. Forbes <jforbes@redhat.com>2015-05-01 08:50:39 -0500
commit64752e521da4c6d3db7e8b3798fa41113bd2325e (patch)
tree76fab92ea1197600e6075e23d0b072523a833f0f /blk-loop-avoid-too-many-pending-per-work-IO.patch
parent684b527a524e9203b1cd561522dd6374ba984680 (diff)
downloadkernel-64752e521da4c6d3db7e8b3798fa41113bd2325e.tar.gz
kernel-64752e521da4c6d3db7e8b3798fa41113bd2325e.tar.xz
kernel-64752e521da4c6d3db7e8b3798fa41113bd2325e.zip
Update patch from Ming to match latest upstream submission
Diffstat (limited to 'blk-loop-avoid-too-many-pending-per-work-IO.patch')
-rw-r--r--blk-loop-avoid-too-many-pending-per-work-IO.patch8
1 files changed, 4 insertions, 4 deletions
diff --git a/blk-loop-avoid-too-many-pending-per-work-IO.patch b/blk-loop-avoid-too-many-pending-per-work-IO.patch
index 044f2e327..606882119 100644
--- a/blk-loop-avoid-too-many-pending-per-work-IO.patch
+++ b/blk-loop-avoid-too-many-pending-per-work-IO.patch
@@ -32,7 +32,7 @@ Signed-off-by: Ming Lei <ming.lei@canonical.com>
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index d7173cb..4db0301 100644
+index ae3fcb4..5a728c6 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -1425,13 +1425,24 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx,
@@ -44,11 +44,11 @@ index d7173cb..4db0301 100644
+
+ /*
+ * Fallback to single queue mode if the pending per work
-+ * I/O number reaches 32, otherwise too many high priority
++ * I/O number reaches 16, otherwise too many high priority
+ * worker thread may effect system performance as reported
+ * in fedora live booting from squashfs over loop.
+ */
-+ if (atomic_read(&lo->pending_per_work_io) >= 32)
++ if (atomic_read(&lo->pending_per_work_io) >= 16)
+ single_queue = true;
blk_mq_start_request(bd->rq);
@@ -66,8 +66,8 @@ index d7173cb..4db0301 100644
if (need_sched)
queue_work(loop_wq, &lo->write_work);
} else {
-+ cmd->per_work_io = true;
+ atomic_inc(&lo->pending_per_work_io);
++ cmd->per_work_io = true;
queue_work(loop_wq, &cmd->read_work);
}