All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adam Manzanares <adam.manzanares@hgst.com>
To: <axboe@kernel.dk>, <tj@kernel.org>, <dan.j.williams@intel.com>,
	<hare@suse.de>, <martin.petersen@oracle.com>,
	<mchristi@redhat.com>, <toshi.kani@hpe.com>,
	<ming.lei@canonical.com>, <sathya.prakash@broadcom.com>,
	<chaitra.basappa@broadcom.com>,
	<suganath-prabu.subramani@broadcom.com>
Cc: <linux-block@vger.kernel.org>, <linux-ide@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	<MPT-FusionLinux.pdl@broadcom.com>, <linux-scsi@vger.kernel.org>,
	Adam Manzanares <adam.manzanares@hgst.com>,
	Adam Manzananares <adam.manzanares@wdc.com>
Subject: [PATCH v4 1/4] block: Add iocontext priority to request
Date: Thu, 13 Oct 2016 12:53:50 -0700	[thread overview]
Message-ID: <1476388433-2539-2-git-send-email-adam.manzanares@hgst.com> (raw)
In-Reply-To: <1476388433-2539-1-git-send-email-adam.manzanares@hgst.com>

Patch adds an association between iocontext ioprio and the ioprio of a
request. This value is set in blk_rq_set_prio which takes the request and
the ioc as arguments. If the ioc is valid in blk_rq_set_prio then the
iopriority of the request is set as the iopriority of the ioc. In
init_request_from_bio a check is made to see if the ioprio of the bio is
valid and if so then the request prio comes from the bio.

Signed-off-by: Adam Manzananares <adam.manzanares@wdc.com>
---
 block/blk-core.c       |  4 +++-
 include/linux/blkdev.h | 14 ++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 14d7c07..361b1b9 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1153,6 +1153,7 @@ static struct request *__get_request(struct request_list *rl, int op,
 
 	blk_rq_init(q, rq);
 	blk_rq_set_rl(rq, rl);
+	blk_rq_set_prio(rq, ioc);
 	req_set_op_attrs(rq, op, op_flags | REQ_ALLOCED);
 
 	/* init elvpriv */
@@ -1656,7 +1657,8 @@ void init_request_from_bio(struct request *req, struct bio *bio)
 
 	req->errors = 0;
 	req->__sector = bio->bi_iter.bi_sector;
-	req->ioprio = bio_prio(bio);
+	if (ioprio_valid(bio_prio(bio)))
+		req->ioprio = bio_prio(bio);
 	blk_rq_bio_prep(req->q, req, bio);
 }
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index c47c358..9a0ceaa 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -934,6 +934,20 @@ static inline unsigned int blk_rq_count_bios(struct request *rq)
 }
 
 /*
+ * blk_rq_set_prio - associate a request with prio from ioc
+ * @rq: request of interest
+ * @ioc: target iocontext
+ *
+ * Assocate request prio with ioc prio so request based drivers
+ * can leverage priority information.
+ */
+static inline void blk_rq_set_prio(struct request *rq, struct io_context *ioc)
+{
+	if (ioc)
+		rq->ioprio = ioc->ioprio;
+}
+
+/*
  * Request issue related functions.
  */
 extern struct request *blk_peek_request(struct request_queue *q);
-- 
2.1.4

Western Digital Corporation (and its subsidiaries) E-mail Confidentiality Notice & Disclaimer:

This e-mail and any files transmitted with it may contain confidential or legally privileged information of WDC and/or its affiliates, and are intended solely for the use of the individual or entity to which they are addressed. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited. If you have received this e-mail in error, please notify the sender immediately and delete the e-mail in its entirety from your system.

WARNING: multiple messages have this Message-ID (diff)
From: Adam Manzanares <adam.manzanares@hgst.com>
To: axboe@kernel.dk, tj@kernel.org, dan.j.williams@intel.com,
	hare@suse.de, martin.petersen@oracle.com, mchristi@redhat.com,
	toshi.kani@hpe.com, ming.lei@canonical.com,
	sathya.prakash@broadcom.com, chaitra.basappa@broadcom.com,
	suganath-prabu.subramani@broadcom.com
Cc: linux-block@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org, MPT-FusionLinux.pdl@broadcom.com,
	linux-scsi@vger.kernel.org,
	Adam Manzanares <adam.manzanares@hgst.com>,
	Adam Manzananares <adam.manzanares@wdc.com>
Subject: [PATCH v4 1/4] block: Add iocontext priority to request
Date: Thu, 13 Oct 2016 12:53:50 -0700	[thread overview]
Message-ID: <1476388433-2539-2-git-send-email-adam.manzanares@hgst.com> (raw)
In-Reply-To: <1476388433-2539-1-git-send-email-adam.manzanares@hgst.com>

Patch adds an association between iocontext ioprio and the ioprio of a
request. This value is set in blk_rq_set_prio which takes the request and
the ioc as arguments. If the ioc is valid in blk_rq_set_prio then the
iopriority of the request is set as the iopriority of the ioc. In
init_request_from_bio a check is made to see if the ioprio of the bio is
valid and if so then the request prio comes from the bio.

Signed-off-by: Adam Manzananares <adam.manzanares@wdc.com>
---
 block/blk-core.c       |  4 +++-
 include/linux/blkdev.h | 14 ++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 14d7c07..361b1b9 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1153,6 +1153,7 @@ static struct request *__get_request(struct request_list *rl, int op,
 
 	blk_rq_init(q, rq);
 	blk_rq_set_rl(rq, rl);
+	blk_rq_set_prio(rq, ioc);
 	req_set_op_attrs(rq, op, op_flags | REQ_ALLOCED);
 
 	/* init elvpriv */
@@ -1656,7 +1657,8 @@ void init_request_from_bio(struct request *req, struct bio *bio)
 
 	req->errors = 0;
 	req->__sector = bio->bi_iter.bi_sector;
-	req->ioprio = bio_prio(bio);
+	if (ioprio_valid(bio_prio(bio)))
+		req->ioprio = bio_prio(bio);
 	blk_rq_bio_prep(req->q, req, bio);
 }
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index c47c358..9a0ceaa 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -934,6 +934,20 @@ static inline unsigned int blk_rq_count_bios(struct request *rq)
 }
 
 /*
+ * blk_rq_set_prio - associate a request with prio from ioc
+ * @rq: request of interest
+ * @ioc: target iocontext
+ *
+ * Assocate request prio with ioc prio so request based drivers
+ * can leverage priority information.
+ */
+static inline void blk_rq_set_prio(struct request *rq, struct io_context *ioc)
+{
+	if (ioc)
+		rq->ioprio = ioc->ioprio;
+}
+
+/*
  * Request issue related functions.
  */
 extern struct request *blk_peek_request(struct request_queue *q);
-- 
2.1.4


WARNING: multiple messages have this Message-ID (diff)
From: Adam Manzanares <adam.manzanares@hgst.com>
To: <axboe@kernel.dk>, <tj@kernel.org>, <dan.j.williams@intel.com>,
	<hare@suse.de>, <martin.petersen@oracle.com>,
	<mchristi@redhat.com>, <toshi.kani@hpe.com>,
	<ming.lei@canonical.com>, <sathya.prakash@broadcom.com>,
	<chaitra.basappa@broadcom.com>,
	<suganath-prabu.subramani@broadcom.com>
Cc: <linux-block@vger.kernel.org>, <linux-ide@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	<MPT-FusionLinux.pdl@broadcom.com>, <linux-scsi@vger.kernel.org>,
	Adam Manzanares <adam.manzanares@hgst.com>,
	Adam Manzananares <adam.manzanares@wdc.com>
Subject: [PATCH v4 1/4] block: Add iocontext priority to request
Date: Thu, 13 Oct 2016 12:53:50 -0700	[thread overview]
Message-ID: <1476388433-2539-2-git-send-email-adam.manzanares@hgst.com> (raw)
In-Reply-To: <1476388433-2539-1-git-send-email-adam.manzanares@hgst.com>

Patch adds an association between iocontext ioprio and the ioprio of a
request. This value is set in blk_rq_set_prio which takes the request and
the ioc as arguments. If the ioc is valid in blk_rq_set_prio then the
iopriority of the request is set as the iopriority of the ioc. In
init_request_from_bio a check is made to see if the ioprio of the bio is
valid and if so then the request prio comes from the bio.

Signed-off-by: Adam Manzananares <adam.manzanares@wdc.com>
---
 block/blk-core.c       |  4 +++-
 include/linux/blkdev.h | 14 ++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 14d7c07..361b1b9 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1153,6 +1153,7 @@ static struct request *__get_request(struct request_list *rl, int op,
 
 	blk_rq_init(q, rq);
 	blk_rq_set_rl(rq, rl);
+	blk_rq_set_prio(rq, ioc);
 	req_set_op_attrs(rq, op, op_flags | REQ_ALLOCED);
 
 	/* init elvpriv */
@@ -1656,7 +1657,8 @@ void init_request_from_bio(struct request *req, struct bio *bio)
 
 	req->errors = 0;
 	req->__sector = bio->bi_iter.bi_sector;
-	req->ioprio = bio_prio(bio);
+	if (ioprio_valid(bio_prio(bio)))
+		req->ioprio = bio_prio(bio);
 	blk_rq_bio_prep(req->q, req, bio);
 }
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index c47c358..9a0ceaa 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -934,6 +934,20 @@ static inline unsigned int blk_rq_count_bios(struct request *rq)
 }
 
 /*
+ * blk_rq_set_prio - associate a request with prio from ioc
+ * @rq: request of interest
+ * @ioc: target iocontext
+ *
+ * Assocate request prio with ioc prio so request based drivers
+ * can leverage priority information.
+ */
+static inline void blk_rq_set_prio(struct request *rq, struct io_context *ioc)
+{
+	if (ioc)
+		rq->ioprio = ioc->ioprio;
+}
+
+/*
  * Request issue related functions.
  */
 extern struct request *blk_peek_request(struct request_queue *q);
-- 
2.1.4

  reply	other threads:[~2016-10-13 19:53 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-13 19:53 [PATCH v4 0/4] Enabling ATA Command Priorities Adam Manzanares
2016-10-13 19:53 ` Adam Manzanares
2016-10-13 19:53 ` Adam Manzanares
2016-10-13 19:53 ` Adam Manzanares [this message]
2016-10-13 19:53   ` [PATCH v4 1/4] block: Add iocontext priority to request Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 20:06   ` Dan Williams
2016-10-13 20:09     ` Jens Axboe
2016-10-13 20:19       ` Dan Williams
2016-10-13 20:24         ` Jens Axboe
2016-10-13 20:59           ` Dan Williams
2016-10-13 21:07             ` Jens Axboe
2016-10-13 22:02       ` Adam Manzananares
2016-10-13 22:02         ` Adam Manzananares
2016-10-13 22:02         ` Adam Manzananares
2016-10-14  5:54   ` Hannes Reinecke
2016-10-14  5:54     ` Hannes Reinecke
2016-10-14 18:35     ` Adam Manzananares
2016-10-14 18:35       ` Adam Manzananares
2016-10-14 18:35       ` Adam Manzananares
2016-10-15  8:43       ` Hannes Reinecke
2016-10-13 19:53 ` [PATCH v4 2/4] fusion: remove iopriority handling Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 21:05   ` Sathya Prakash Veerichetty
2016-10-13 21:05     ` Sathya Prakash Veerichetty
2016-10-13 22:12     ` Adam Manzanares
2016-10-13 22:12       ` Adam Manzanares
2016-10-13 22:12       ` Adam Manzanares
2016-10-14  5:55   ` Hannes Reinecke
2016-10-14  5:55     ` Hannes Reinecke
2016-10-13 19:53 ` [PATCH v4 3/4] ata: Enabling ATA Command Priorities Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 19:53 ` [PATCH v4 4/4] ata: ATA Command Priority Disabled By Default Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1476388433-2539-2-git-send-email-adam.manzanares@hgst.com \
    --to=adam.manzanares@hgst.com \
    --cc=MPT-FusionLinux.pdl@broadcom.com \
    --cc=adam.manzanares@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=chaitra.basappa@broadcom.com \
    --cc=dan.j.williams@intel.com \
    --cc=hare@suse.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mchristi@redhat.com \
    --cc=ming.lei@canonical.com \
    --cc=sathya.prakash@broadcom.com \
    --cc=suganath-prabu.subramani@broadcom.com \
    --cc=tj@kernel.org \
    --cc=toshi.kani@hpe.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.