linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] Improve I/O priority handling
@ 2018-11-20  1:52 Damien Le Moal
  2018-11-20  1:52 ` [PATCH v2 1/6] aio: Comment use of IOCB_FLAG_IOPRIO aio flag Damien Le Moal
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Damien Le Moal @ 2018-11-20  1:52 UTC (permalink / raw)
  To: linux-block, Jens Axboe; +Cc: Adam Manzanares, Alexander Viro, linux-fsdevel

This small series based on for-4.21/block brings improvements to I/O priority
hanlding. The main fixes are in patches 5, 6 and 7. These fix BIO and request
I/O priority initialization for both the synchronous and asynchronous pathes.

Changes from v1:
* Removed not very useful comments in patch 5
* Dropped get_task_ioprio() change patch

Damien Le Moal (6):
  aio: Comment use of IOCB_FLAG_IOPRIO aio flag
  block: Remove bio->bi_ioc
  block: Introduce get_current_ioprio()
  aio: Fix fallback I/O priority value
  block: prevent merging of requests with different priorities
  block: Initialize BIO I/O priority early

 block/bio.c                  |  4 ----
 block/blk-core.c             | 12 +-----------
 block/blk-merge.c            |  8 ++++++--
 block/blk-mq-sched.c         |  4 ++--
 block/blk-mq-sched.h         |  2 +-
 block/blk-mq.c               |  4 ++--
 block/blk.h                  | 16 ----------------
 fs/aio.c                     |  2 +-
 include/linux/blk_types.h    |  3 +--
 include/linux/fs.h           |  2 +-
 include/linux/ioprio.h       | 13 +++++++++++++
 include/uapi/linux/aio_abi.h |  2 ++
 12 files changed, 30 insertions(+), 42 deletions(-)

-- 
2.19.1

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 1/6] aio: Comment use of IOCB_FLAG_IOPRIO aio flag
  2018-11-20  1:52 [PATCH v2 0/6] Improve I/O priority handling Damien Le Moal
@ 2018-11-20  1:52 ` Damien Le Moal
  2018-11-20  1:52 ` [PATCH v2 2/6] block: Remove bio->bi_ioc Damien Le Moal
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Damien Le Moal @ 2018-11-20  1:52 UTC (permalink / raw)
  To: linux-block, Jens Axboe; +Cc: Adam Manzanares, Alexander Viro, linux-fsdevel

Comment the use of the IOCB_FLAG_IOPRIO aio flag similarly to the
IOCB_FLAG_RESFD flag.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 include/uapi/linux/aio_abi.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/uapi/linux/aio_abi.h b/include/uapi/linux/aio_abi.h
index ce43d340f010..8387e0af0f76 100644
--- a/include/uapi/linux/aio_abi.h
+++ b/include/uapi/linux/aio_abi.h
@@ -50,6 +50,8 @@ enum {
  *
  * IOCB_FLAG_RESFD - Set if the "aio_resfd" member of the "struct iocb"
  *                   is valid.
+ * IOCB_FLAG_IOPRIO - Set if the "aio_reqprio" member of the "struct iocb"
+ *                    is valid.
  */
 #define IOCB_FLAG_RESFD		(1 << 0)
 #define IOCB_FLAG_IOPRIO	(1 << 1)
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/6] block: Remove bio->bi_ioc
  2018-11-20  1:52 [PATCH v2 0/6] Improve I/O priority handling Damien Le Moal
  2018-11-20  1:52 ` [PATCH v2 1/6] aio: Comment use of IOCB_FLAG_IOPRIO aio flag Damien Le Moal
@ 2018-11-20  1:52 ` Damien Le Moal
  2018-11-20  1:52 ` [PATCH v2 3/6] block: Introduce get_current_ioprio() Damien Le Moal
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Damien Le Moal @ 2018-11-20  1:52 UTC (permalink / raw)
  To: linux-block, Jens Axboe; +Cc: Adam Manzanares, Alexander Viro, linux-fsdevel

bio->bi_ioc is never set so always NULL. Remove references to it in
bio_disassociate_task() and in rq_ioc() and delete this field from
struct bio. With this change, rq_ioc() always returns
current->io_context without the need for a bio argument. Further
simplify the code and make it more readable by also removing this
helper, which also allows to simplify blk_mq_sched_assign_ioc() by
removing its bio argument.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Adam Manzanares <adam.manzanares@wdc.com>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 block/bio.c               |  4 ----
 block/blk-core.c          |  2 +-
 block/blk-mq-sched.c      |  4 ++--
 block/blk-mq-sched.h      |  2 +-
 block/blk-mq.c            |  4 ++--
 block/blk.h               | 16 ----------------
 include/linux/blk_types.h |  3 +--
 7 files changed, 7 insertions(+), 28 deletions(-)

diff --git a/block/bio.c b/block/bio.c
index 4f4d9884443b..03895cc0d74a 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -2027,10 +2027,6 @@ int bio_associate_blkg(struct bio *bio, struct blkcg_gq *blkg)
  */
 void bio_disassociate_task(struct bio *bio)
 {
-	if (bio->bi_ioc) {
-		put_io_context(bio->bi_ioc);
-		bio->bi_ioc = NULL;
-	}
 	if (bio->bi_css) {
 		css_put(bio->bi_css);
 		bio->bi_css = NULL;
diff --git a/block/blk-core.c b/block/blk-core.c
index d6e8ab9ca99d..492648c96992 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -813,7 +813,7 @@ unsigned int blk_plug_queued_count(struct request_queue *q)
 
 void blk_init_request_from_bio(struct request *req, struct bio *bio)
 {
-	struct io_context *ioc = rq_ioc(bio);
+	struct io_context *ioc = current->io_context;
 
 	if (bio->bi_opf & REQ_RAHEAD)
 		req->cmd_flags |= REQ_FAILFAST_MASK;
diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c
index d084f731d104..13b8dc332541 100644
--- a/block/blk-mq-sched.c
+++ b/block/blk-mq-sched.c
@@ -31,10 +31,10 @@ void blk_mq_sched_free_hctx_data(struct request_queue *q,
 }
 EXPORT_SYMBOL_GPL(blk_mq_sched_free_hctx_data);
 
-void blk_mq_sched_assign_ioc(struct request *rq, struct bio *bio)
+void blk_mq_sched_assign_ioc(struct request *rq)
 {
 	struct request_queue *q = rq->q;
-	struct io_context *ioc = rq_ioc(bio);
+	struct io_context *ioc = current->io_context;
 	struct io_cq *icq;
 
 	spin_lock_irq(&q->queue_lock);
diff --git a/block/blk-mq-sched.h b/block/blk-mq-sched.h
index 7ff5671bf128..0f719c8532ae 100644
--- a/block/blk-mq-sched.h
+++ b/block/blk-mq-sched.h
@@ -8,7 +8,7 @@
 void blk_mq_sched_free_hctx_data(struct request_queue *q,
 				 void (*exit)(struct blk_mq_hw_ctx *));
 
-void blk_mq_sched_assign_ioc(struct request *rq, struct bio *bio);
+void blk_mq_sched_assign_ioc(struct request *rq);
 
 void blk_mq_sched_request_inserted(struct request *rq);
 bool blk_mq_sched_try_merge(struct request_queue *q, struct bio *bio,
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 32b246ed44c0..636f80b96fa6 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -389,8 +389,8 @@ static struct request *blk_mq_get_request(struct request_queue *q,
 	if (!op_is_flush(data->cmd_flags)) {
 		rq->elv.icq = NULL;
 		if (e && e->type->ops.prepare_request) {
-			if (e->type->icq_cache && rq_ioc(bio))
-				blk_mq_sched_assign_ioc(rq, bio);
+			if (e->type->icq_cache)
+				blk_mq_sched_assign_ioc(rq);
 
 			e->type->ops.prepare_request(rq, bio);
 			rq->rq_flags |= RQF_ELVPRIV;
diff --git a/block/blk.h b/block/blk.h
index 816a9abb87cd..610948157a5b 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -254,22 +254,6 @@ void ioc_clear_queue(struct request_queue *q);
 
 int create_task_io_context(struct task_struct *task, gfp_t gfp_mask, int node);
 
-/**
- * rq_ioc - determine io_context for request allocation
- * @bio: request being allocated is for this bio (can be %NULL)
- *
- * Determine io_context to use for request allocation for @bio.  May return
- * %NULL if %current->io_context doesn't exist.
- */
-static inline struct io_context *rq_ioc(struct bio *bio)
-{
-#ifdef CONFIG_BLK_CGROUP
-	if (bio && bio->bi_ioc)
-		return bio->bi_ioc;
-#endif
-	return current->io_context;
-}
-
 /**
  * create_io_context - try to create task->io_context
  * @gfp_mask: allocation mask
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index dbdbfbd6a987..c0ba1a038ff3 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -174,10 +174,9 @@ struct bio {
 	void			*bi_private;
 #ifdef CONFIG_BLK_CGROUP
 	/*
-	 * Optional ioc and css associated with this bio.  Put on bio
+	 * Optional css associated with this bio.  Put on bio
 	 * release.  Read comment on top of bio_associate_current().
 	 */
-	struct io_context	*bi_ioc;
 	struct cgroup_subsys_state *bi_css;
 	struct blkcg_gq		*bi_blkg;
 	struct bio_issue	bi_issue;
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 3/6] block: Introduce get_current_ioprio()
  2018-11-20  1:52 [PATCH v2 0/6] Improve I/O priority handling Damien Le Moal
  2018-11-20  1:52 ` [PATCH v2 1/6] aio: Comment use of IOCB_FLAG_IOPRIO aio flag Damien Le Moal
  2018-11-20  1:52 ` [PATCH v2 2/6] block: Remove bio->bi_ioc Damien Le Moal
@ 2018-11-20  1:52 ` Damien Le Moal
  2018-11-20  1:52 ` [PATCH v2 4/6] aio: Fix fallback I/O priority value Damien Le Moal
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Damien Le Moal @ 2018-11-20  1:52 UTC (permalink / raw)
  To: linux-block, Jens Axboe; +Cc: Adam Manzanares, Alexander Viro, linux-fsdevel

Define get_current_ioprio() as an inline helper to obtain the caller
I/O priority from its task I/O context. Use this helper in
blk_init_request_from_bio() to set a request ioprio.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 block/blk-core.c       |  6 +-----
 include/linux/ioprio.h | 13 +++++++++++++
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 492648c96992..4450d3c08f25 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -813,18 +813,14 @@ unsigned int blk_plug_queued_count(struct request_queue *q)
 
 void blk_init_request_from_bio(struct request *req, struct bio *bio)
 {
-	struct io_context *ioc = current->io_context;
-
 	if (bio->bi_opf & REQ_RAHEAD)
 		req->cmd_flags |= REQ_FAILFAST_MASK;
 
 	req->__sector = bio->bi_iter.bi_sector;
 	if (ioprio_valid(bio_prio(bio)))
 		req->ioprio = bio_prio(bio);
-	else if (ioc)
-		req->ioprio = ioc->ioprio;
 	else
-		req->ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 0);
+		req->ioprio = get_current_ioprio();
 	req->write_hint = bio->bi_write_hint;
 	blk_rq_bio_prep(req->q, req, bio);
 }
diff --git a/include/linux/ioprio.h b/include/linux/ioprio.h
index 9e30ed6443db..e9bfe6972aed 100644
--- a/include/linux/ioprio.h
+++ b/include/linux/ioprio.h
@@ -70,6 +70,19 @@ static inline int task_nice_ioclass(struct task_struct *task)
 		return IOPRIO_CLASS_BE;
 }
 
+/*
+ * If the calling process has set an I/O priority, use that. Otherwise, return
+ * the default I/O priority.
+ */
+static inline int get_current_ioprio(void)
+{
+	struct io_context *ioc = current->io_context;
+
+	if (ioc)
+		return ioc->ioprio;
+	return IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 0);
+}
+
 /*
  * For inheritance, return the highest of the two given priorities
  */
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 4/6] aio: Fix fallback I/O priority value
  2018-11-20  1:52 [PATCH v2 0/6] Improve I/O priority handling Damien Le Moal
                   ` (2 preceding siblings ...)
  2018-11-20  1:52 ` [PATCH v2 3/6] block: Introduce get_current_ioprio() Damien Le Moal
@ 2018-11-20  1:52 ` Damien Le Moal
  2018-11-20  1:52 ` [PATCH v2 5/6] block: prevent merging of requests with different priorities Damien Le Moal
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Damien Le Moal @ 2018-11-20  1:52 UTC (permalink / raw)
  To: linux-block, Jens Axboe; +Cc: Adam Manzanares, Alexander Viro, linux-fsdevel

For cases when the application does not specify aio_reqprio for an aio,
fallback to use get_current_ioprio() to obtain the task I/O priority
last set using ioprio_set() rather than the hardcoded IOPRIO_CLASS_NONE
value.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Adam Manzanares <adam.manzanares@wdc.com>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 fs/aio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/aio.c b/fs/aio.c
index 301e6314183b..b984918be4b7 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -1441,7 +1441,7 @@ static int aio_prep_rw(struct kiocb *req, struct iocb *iocb)
 
 		req->ki_ioprio = iocb->aio_reqprio;
 	} else
-		req->ki_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 0);
+		req->ki_ioprio = get_current_ioprio();
 
 	ret = kiocb_set_rw_flags(req, iocb->aio_rw_flags);
 	if (unlikely(ret))
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 5/6] block: prevent merging of requests with different priorities
  2018-11-20  1:52 [PATCH v2 0/6] Improve I/O priority handling Damien Le Moal
                   ` (3 preceding siblings ...)
  2018-11-20  1:52 ` [PATCH v2 4/6] aio: Fix fallback I/O priority value Damien Le Moal
@ 2018-11-20  1:52 ` Damien Le Moal
  2018-11-20  1:52 ` [PATCH v2 6/6] block: Initialize BIO I/O priority early Damien Le Moal
  2018-11-20  2:04 ` [PATCH v2 0/6] Improve I/O priority handling Jens Axboe
  6 siblings, 0 replies; 8+ messages in thread
From: Damien Le Moal @ 2018-11-20  1:52 UTC (permalink / raw)
  To: linux-block, Jens Axboe; +Cc: Adam Manzanares, Alexander Viro, linux-fsdevel

Growing in size a high priority request by merging it with a lower
priority BIO or request will increase the request execution time. This
is the opposite result of the desired effect of high I/O priorities,
namely getting low I/O latencies. Prevent merging of requests and BIOs
that have different I/O priorities to fix this.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 block/blk-core.c  | 3 ---
 block/blk-merge.c | 8 ++++++--
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 4450d3c08f25..dde30b08aa14 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -662,7 +662,6 @@ bool bio_attempt_back_merge(struct request_queue *q, struct request *req,
 	req->biotail->bi_next = bio;
 	req->biotail = bio;
 	req->__data_len += bio->bi_iter.bi_size;
-	req->ioprio = ioprio_best(req->ioprio, bio_prio(bio));
 
 	blk_account_io_start(req, false);
 	return true;
@@ -686,7 +685,6 @@ bool bio_attempt_front_merge(struct request_queue *q, struct request *req,
 
 	req->__sector = bio->bi_iter.bi_sector;
 	req->__data_len += bio->bi_iter.bi_size;
-	req->ioprio = ioprio_best(req->ioprio, bio_prio(bio));
 
 	blk_account_io_start(req, false);
 	return true;
@@ -706,7 +704,6 @@ bool bio_attempt_discard_merge(struct request_queue *q, struct request *req,
 	req->biotail->bi_next = bio;
 	req->biotail = bio;
 	req->__data_len += bio->bi_iter.bi_size;
-	req->ioprio = ioprio_best(req->ioprio, bio_prio(bio));
 	req->nr_phys_segments = segments + 1;
 
 	blk_account_io_start(req, false);
diff --git a/block/blk-merge.c b/block/blk-merge.c
index b1df622cbd85..6be04ef8da5b 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -752,6 +752,9 @@ static struct request *attempt_merge(struct request_queue *q,
 	if (req->write_hint != next->write_hint)
 		return NULL;
 
+	if (req->ioprio != next->ioprio)
+		return NULL;
+
 	/*
 	 * If we are allowed to merge, then append bio list
 	 * from next to rq and release next. merge_requests_fn
@@ -807,8 +810,6 @@ static struct request *attempt_merge(struct request_queue *q,
 	 */
 	blk_account_io_merge(next);
 
-	req->ioprio = ioprio_best(req->ioprio, next->ioprio);
-
 	/*
 	 * ownership of bio passed from next to req, return 'next' for
 	 * the caller to free
@@ -883,6 +884,9 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio)
 	if (rq->write_hint != bio->bi_write_hint)
 		return false;
 
+	if (rq->ioprio != bio_prio(bio))
+		return false;
+
 	return true;
 }
 
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 6/6] block: Initialize BIO I/O priority early
  2018-11-20  1:52 [PATCH v2 0/6] Improve I/O priority handling Damien Le Moal
                   ` (4 preceding siblings ...)
  2018-11-20  1:52 ` [PATCH v2 5/6] block: prevent merging of requests with different priorities Damien Le Moal
@ 2018-11-20  1:52 ` Damien Le Moal
  2018-11-20  2:04 ` [PATCH v2 0/6] Improve I/O priority handling Jens Axboe
  6 siblings, 0 replies; 8+ messages in thread
From: Damien Le Moal @ 2018-11-20  1:52 UTC (permalink / raw)
  To: linux-block, Jens Axboe; +Cc: Adam Manzanares, Alexander Viro, linux-fsdevel

For the synchronous I/O path case (read(), write() etc system calls), a
BIO I/O priority is not initialized until the execution of
blk_init_request_from_bio() when the BIO is submitted and a request
initialized for the BIO execution. This is due to the ki_ioprio field of
the struct kiocb defined on stack being always initialized to
IOPRIO_CLASS_NONE, regardless of the calling process I/O context ioprio
value set with ioprio_set(). This late initialization can result in the
BIO being merged to pending requests even when the I/O priorities
differ.

Fix this by initializing the ki_iopriority field of on stack struct
kiocb using the get_current_ioprio() helper, ensuring that all BIOs
allocated and submitted for the system call execution see the correct
intended I/O priority early. With this, since a BIO I/O priority is
always set to the intended effective value for both the sync and async
path, blk_init_request_from_bio() can be simplified.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Adam Manzanares <adam.manzanares@wdc.com>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 block/blk-core.c   | 5 +----
 include/linux/fs.h | 2 +-
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index dde30b08aa14..04f5be473638 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -814,10 +814,7 @@ void blk_init_request_from_bio(struct request *req, struct bio *bio)
 		req->cmd_flags |= REQ_FAILFAST_MASK;
 
 	req->__sector = bio->bi_iter.bi_sector;
-	if (ioprio_valid(bio_prio(bio)))
-		req->ioprio = bio_prio(bio);
-	else
-		req->ioprio = get_current_ioprio();
+	req->ioprio = bio_prio(bio);
 	req->write_hint = bio->bi_write_hint;
 	blk_rq_bio_prep(req->q, req, bio);
 }
diff --git a/include/linux/fs.h b/include/linux/fs.h
index c95c0807471f..a1ab233e6469 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2021,7 +2021,7 @@ static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp)
 		.ki_filp = filp,
 		.ki_flags = iocb_flags(filp),
 		.ki_hint = ki_hint_validate(file_write_hint(filp)),
-		.ki_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 0),
+		.ki_ioprio = get_current_ioprio(),
 	};
 }
 
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/6] Improve I/O priority handling
  2018-11-20  1:52 [PATCH v2 0/6] Improve I/O priority handling Damien Le Moal
                   ` (5 preceding siblings ...)
  2018-11-20  1:52 ` [PATCH v2 6/6] block: Initialize BIO I/O priority early Damien Le Moal
@ 2018-11-20  2:04 ` Jens Axboe
  6 siblings, 0 replies; 8+ messages in thread
From: Jens Axboe @ 2018-11-20  2:04 UTC (permalink / raw)
  To: Damien Le Moal, linux-block
  Cc: Adam Manzanares, Alexander Viro, linux-fsdevel

On 11/19/18 6:52 PM, Damien Le Moal wrote:
> This small series based on for-4.21/block brings improvements to I/O priority
> hanlding. The main fixes are in patches 5, 6 and 7. These fix BIO and request
> I/O priority initialization for both the synchronous and asynchronous pathes.

Applied, thanks..

-- 
Jens Axboe

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-11-20 12:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-20  1:52 [PATCH v2 0/6] Improve I/O priority handling Damien Le Moal
2018-11-20  1:52 ` [PATCH v2 1/6] aio: Comment use of IOCB_FLAG_IOPRIO aio flag Damien Le Moal
2018-11-20  1:52 ` [PATCH v2 2/6] block: Remove bio->bi_ioc Damien Le Moal
2018-11-20  1:52 ` [PATCH v2 3/6] block: Introduce get_current_ioprio() Damien Le Moal
2018-11-20  1:52 ` [PATCH v2 4/6] aio: Fix fallback I/O priority value Damien Le Moal
2018-11-20  1:52 ` [PATCH v2 5/6] block: prevent merging of requests with different priorities Damien Le Moal
2018-11-20  1:52 ` [PATCH v2 6/6] block: Initialize BIO I/O priority early Damien Le Moal
2018-11-20  2:04 ` [PATCH v2 0/6] Improve I/O priority handling Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).