Update patch from Ming to match latest upstream submission
This commit is contained in:
parent
684b527a52
commit
64752e521d
@ -32,7 +32,7 @@ Signed-off-by: Ming Lei <ming.lei@canonical.com>
|
|||||||
2 files changed, 19 insertions(+), 2 deletions(-)
|
2 files changed, 19 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
|
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
|
--- a/drivers/block/loop.c
|
||||||
+++ b/drivers/block/loop.c
|
+++ b/drivers/block/loop.c
|
||||||
@@ -1425,13 +1425,24 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx,
|
@@ -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
|
+ * 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
|
+ * worker thread may effect system performance as reported
|
||||||
+ * in fedora live booting from squashfs over loop.
|
+ * 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;
|
+ single_queue = true;
|
||||||
|
|
||||||
blk_mq_start_request(bd->rq);
|
blk_mq_start_request(bd->rq);
|
||||||
@ -66,8 +66,8 @@ index d7173cb..4db0301 100644
|
|||||||
if (need_sched)
|
if (need_sched)
|
||||||
queue_work(loop_wq, &lo->write_work);
|
queue_work(loop_wq, &lo->write_work);
|
||||||
} else {
|
} else {
|
||||||
+ cmd->per_work_io = true;
|
|
||||||
+ atomic_inc(&lo->pending_per_work_io);
|
+ atomic_inc(&lo->pending_per_work_io);
|
||||||
|
+ cmd->per_work_io = true;
|
||||||
queue_work(loop_wq, &cmd->read_work);
|
queue_work(loop_wq, &cmd->read_work);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user