All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] Improve requeuing behavior
@ 2017-08-30 23:58 Bart Van Assche
  2017-08-30 23:58 ` [PATCH v3 1/4] Call scsi_initialize_rq() also for filesystem requests Bart Van Assche
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Bart Van Assche @ 2017-08-30 23:58 UTC (permalink / raw)
  To: Martin K . Petersen, James E . J . Bottomley; +Cc: linux-scsi, Bart Van Assche

Hello Martin,

The conclusion of a recent discussion is that .jiffies_at_alloc and .retries
should be set once at the start of a lifetime of a SCSI request instead of
every time a request is requeued. This patch series realizes that and also
ensures that a request is unprepared and reprepared when requeued. Please
consider these patches for kernel v4.14.

Thanks,

Bart.

Changes between v2 and v3:
- Removed a WARN_ON_ONCE() statement from the first patch ("Call
  scsi_initialize_rq() also for filesystem requests".)
- Fixed handling of jiffies_at_alloc in patch 2/3.
- Converted jiffies_at_alloc to seconds in patch 3/3 before printing.
- Added a fourth patch, namely "scsi-mq: Always unprepare before requeuing a
  request".

Changes between v1 and v2:
- Added two more patches next to "Improve requeuing behavior".

Bart Van Assche (4):
  Call scsi_initialize_rq() also for filesystem requests
  Improve requeuing behavior
  Show .retries and .jiffies_at_alloc in debugfs
  scsi-mq: Always unprepare before requeuing a request

 drivers/scsi/scsi_debugfs.c |  4 +++-
 drivers/scsi/scsi_lib.c     | 51 ++++++++++++++++++++++++++++++++++++++-------
 include/scsi/scsi_cmnd.h    |  3 +++
 3 files changed, 49 insertions(+), 9 deletions(-)

-- 
2.14.1

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

* [PATCH v3 1/4] Call scsi_initialize_rq() also for filesystem requests
  2017-08-30 23:58 [PATCH v3 0/4] Improve requeuing behavior Bart Van Assche
@ 2017-08-30 23:58 ` Bart Van Assche
  2017-08-31  7:13   ` Johannes Thumshirn
  2017-08-31 10:04   ` Christoph Hellwig
  2017-08-30 23:58 ` [PATCH v3 2/4] Improve requeuing behavior Bart Van Assche
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 14+ messages in thread
From: Bart Van Assche @ 2017-08-30 23:58 UTC (permalink / raw)
  To: Martin K . Petersen, James E . J . Bottomley
  Cc: linux-scsi, Bart Van Assche, Christoph Hellwig, Brian King,
	Hannes Reinecke, Johannes Thumshirn

If a pass-through request is submitted then blk_get_request()
initializes that request by calling scsi_initialize_rq(). Also
call this function for filesystem requests. Introduce
CMD_INITIALIZED to keep track of whether or not a request has
already been initialized.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Brian King <brking@linux.vnet.ibm.com>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
---
 drivers/scsi/scsi_lib.c  | 26 ++++++++++++++++++++++----
 include/scsi/scsi_cmnd.h |  3 +++
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 938a7e398cd4..4bfe0df35823 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -642,6 +642,11 @@ static bool scsi_end_request(struct request *req, blk_status_t error,
 	if (blk_queue_add_random(q))
 		add_disk_randomness(req->rq_disk);
 
+	if (!blk_rq_is_scsi(req)) {
+		WARN_ON_ONCE(!(cmd->flags & SCMD_INITIALIZED));
+		cmd->flags &= ~SCMD_INITIALIZED;
+	}
+
 	if (req->mq_ctx) {
 		/*
 		 * In the MQ case the command gets freed by __blk_mq_end_request,
@@ -1110,7 +1115,8 @@ EXPORT_SYMBOL(scsi_init_io);
  * scsi_initialize_rq - initialize struct scsi_cmnd.req
  * @rq: Request associated with the SCSI command to be initialized.
  *
- * Called from inside blk_get_request().
+ * Called from inside blk_get_request() for pass-through requests and from
+ * inside scsi_init_command() for filesystem requests.
  */
 void scsi_initialize_rq(struct request *rq)
 {
@@ -1154,7 +1160,13 @@ void scsi_init_command(struct scsi_device *dev, struct scsi_cmnd *cmd)
 {
 	void *buf = cmd->sense_buffer;
 	void *prot = cmd->prot_sdb;
-	unsigned int unchecked_isa_dma = cmd->flags & SCMD_UNCHECKED_ISA_DMA;
+	struct request *rq = blk_mq_rq_from_pdu(cmd);
+	unsigned int flags = cmd->flags & SCMD_PRESERVED_FLAGS;
+
+	if (!blk_rq_is_scsi(rq) && !(flags & SCMD_INITIALIZED)) {
+		flags |= SCMD_INITIALIZED;
+		scsi_initialize_rq(rq);
+	}
 
 	/* zero out the cmd, except for the embedded scsi_request */
 	memset((char *)cmd + sizeof(cmd->req), 0,
@@ -1163,7 +1175,7 @@ void scsi_init_command(struct scsi_device *dev, struct scsi_cmnd *cmd)
 	cmd->device = dev;
 	cmd->sense_buffer = buf;
 	cmd->prot_sdb = prot;
-	cmd->flags = unchecked_isa_dma;
+	cmd->flags = flags;
 	INIT_DELAYED_WORK(&cmd->abort_work, scmd_eh_abort_handler);
 	cmd->jiffies_at_alloc = jiffies;
 
@@ -1350,6 +1362,8 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req)
 
 	ret = scsi_setup_cmnd(sdev, req);
 out:
+	if (ret != BLKPREP_OK)
+		cmd->flags &= ~SCMD_INITIALIZED;
 	return scsi_prep_return(q, req, ret);
 }
 
@@ -1869,6 +1883,7 @@ static int scsi_mq_prep_fn(struct request *req)
 	struct scsi_device *sdev = req->q->queuedata;
 	struct Scsi_Host *shost = sdev->host;
 	struct scatterlist *sg;
+	int ret;
 
 	scsi_init_command(sdev, cmd);
 
@@ -1902,7 +1917,10 @@ static int scsi_mq_prep_fn(struct request *req)
 
 	blk_mq_start_request(req);
 
-	return scsi_setup_cmnd(sdev, req);
+	ret = scsi_setup_cmnd(sdev, req);
+	if (ret != BLK_STS_OK)
+		cmd->flags &= ~SCMD_INITIALIZED;
+	return ret;
 }
 
 static void scsi_mq_done(struct scsi_cmnd *cmd)
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
index f5afcff8d76f..a9f8f7e79d83 100644
--- a/include/scsi/scsi_cmnd.h
+++ b/include/scsi/scsi_cmnd.h
@@ -57,6 +57,9 @@ struct scsi_pointer {
 /* for scmd->flags */
 #define SCMD_TAGGED		(1 << 0)
 #define SCMD_UNCHECKED_ISA_DMA	(1 << 1)
+#define SCMD_INITIALIZED	(1 << 3)
+/* flags preserved across unprep / reprep */
+#define SCMD_PRESERVED_FLAGS	(SCMD_UNCHECKED_ISA_DMA | SCMD_INITIALIZED)
 
 struct scsi_cmnd {
 	struct scsi_request req;
-- 
2.14.1

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

* [PATCH v3 2/4] Improve requeuing behavior
  2017-08-30 23:58 [PATCH v3 0/4] Improve requeuing behavior Bart Van Assche
  2017-08-30 23:58 ` [PATCH v3 1/4] Call scsi_initialize_rq() also for filesystem requests Bart Van Assche
@ 2017-08-30 23:58 ` Bart Van Assche
  2017-08-31  7:14   ` Johannes Thumshirn
  2017-08-31 10:04   ` Christoph Hellwig
  2017-08-30 23:58 ` [PATCH v3 3/4] Show .retries and .jiffies_at_alloc in debugfs Bart Van Assche
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 14+ messages in thread
From: Bart Van Assche @ 2017-08-30 23:58 UTC (permalink / raw)
  To: Martin K . Petersen, James E . J . Bottomley
  Cc: linux-scsi, Bart Van Assche, Christoph Hellwig, Brian King,
	Hannes Reinecke, Johannes Thumshirn

Requests are unprepared and reprepared when being requeued.
Avoid that requeuing resets .jiffies_at_alloc and .retries by
initializing these two member variables from inside
scsi_initialize_rq() and by preserving both member variables
when preparing a request. This patch affects the requeuing
behavior of both the legacy scsi and the scsi-mq code paths.

Reported-by: Brian King <brking@linux.vnet.ibm.com>
References: https://lkml.org/lkml/2017/8/18/923 ("Re: [BUG][bisected 270065e] linux-next fails to boot on powerpc")
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Brian King <brking@linux.vnet.ibm.com>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
---
 drivers/scsi/scsi_lib.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 4bfe0df35823..6085377643ae 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -1112,9 +1112,13 @@ int scsi_init_io(struct scsi_cmnd *cmd)
 EXPORT_SYMBOL(scsi_init_io);
 
 /**
- * scsi_initialize_rq - initialize struct scsi_cmnd.req
+ * scsi_initialize_rq - initialize struct scsi_cmnd partially
  * @rq: Request associated with the SCSI command to be initialized.
  *
+ * This function initializes the members of struct scsi_cmnd that must be
+ * initialized before request processing starts and that won't be
+ * reinitialized if a SCSI command is requeued.
+ *
  * Called from inside blk_get_request() for pass-through requests and from
  * inside scsi_init_command() for filesystem requests.
  */
@@ -1123,6 +1127,8 @@ void scsi_initialize_rq(struct request *rq)
 	struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(rq);
 
 	scsi_req_init(&cmd->req);
+	cmd->jiffies_at_alloc = jiffies;
+	cmd->retries = 0;
 }
 EXPORT_SYMBOL(scsi_initialize_rq);
 
@@ -1162,12 +1168,16 @@ void scsi_init_command(struct scsi_device *dev, struct scsi_cmnd *cmd)
 	void *prot = cmd->prot_sdb;
 	struct request *rq = blk_mq_rq_from_pdu(cmd);
 	unsigned int flags = cmd->flags & SCMD_PRESERVED_FLAGS;
+	unsigned long jiffies_at_alloc;
+	int retries;
 
 	if (!blk_rq_is_scsi(rq) && !(flags & SCMD_INITIALIZED)) {
 		flags |= SCMD_INITIALIZED;
 		scsi_initialize_rq(rq);
 	}
 
+	jiffies_at_alloc = cmd->jiffies_at_alloc;
+	retries = cmd->retries;
 	/* zero out the cmd, except for the embedded scsi_request */
 	memset((char *)cmd + sizeof(cmd->req), 0,
 		sizeof(*cmd) - sizeof(cmd->req) + dev->host->hostt->cmd_size);
@@ -1177,7 +1187,8 @@ void scsi_init_command(struct scsi_device *dev, struct scsi_cmnd *cmd)
 	cmd->prot_sdb = prot;
 	cmd->flags = flags;
 	INIT_DELAYED_WORK(&cmd->abort_work, scmd_eh_abort_handler);
-	cmd->jiffies_at_alloc = jiffies;
+	cmd->jiffies_at_alloc = jiffies_at_alloc;
+	cmd->retries = retries;
 
 	scsi_add_cmd_to_list(cmd);
 }
-- 
2.14.1

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

* [PATCH v3 3/4] Show .retries and .jiffies_at_alloc in debugfs
  2017-08-30 23:58 [PATCH v3 0/4] Improve requeuing behavior Bart Van Assche
  2017-08-30 23:58 ` [PATCH v3 1/4] Call scsi_initialize_rq() also for filesystem requests Bart Van Assche
  2017-08-30 23:58 ` [PATCH v3 2/4] Improve requeuing behavior Bart Van Assche
@ 2017-08-30 23:58 ` Bart Van Assche
  2017-08-31  7:15   ` Johannes Thumshirn
  2017-08-31 10:04   ` Christoph Hellwig
  2017-08-30 23:58 ` [PATCH v3 4/4] scsi-mq: Always unprepare before requeuing a request Bart Van Assche
  2017-09-01  3:10 ` [PATCH v3 0/4] Improve requeuing behavior Martin K. Petersen
  4 siblings, 2 replies; 14+ messages in thread
From: Bart Van Assche @ 2017-08-30 23:58 UTC (permalink / raw)
  To: Martin K . Petersen, James E . J . Bottomley
  Cc: linux-scsi, Bart Van Assche, Hannes Reinecke, Christoph Hellwig,
	Johannes Thumshirn

Make these two member variables available in debugfs such that
their value can be verified by kernel developers. An example of
the new output:

ffff8804a513d480 {.op=READ, .cmd_flags=META|PRIO, .rq_flags=MQ_INFLIGHT|DONTPREP|IO_STAT|STATS, .atomic_flags=STARTED, .tag=17, .internal_tag=-1, .cmd=Read(10) 28 00 08 81 32 38 00 00 08 00, .retries=0, allocated 0.010 s ago}

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
---
 drivers/scsi/scsi_debugfs.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/scsi_debugfs.c b/drivers/scsi/scsi_debugfs.c
index a97c9507103d..5e9755008aed 100644
--- a/drivers/scsi/scsi_debugfs.c
+++ b/drivers/scsi/scsi_debugfs.c
@@ -6,8 +6,10 @@
 void scsi_show_rq(struct seq_file *m, struct request *rq)
 {
 	struct scsi_cmnd *cmd = container_of(scsi_req(rq), typeof(*cmd), req);
+	int msecs = jiffies_to_msecs(jiffies - cmd->jiffies_at_alloc);
 	char buf[80];
 
 	__scsi_format_command(buf, sizeof(buf), cmd->cmnd, cmd->cmd_len);
-	seq_printf(m, ", .cmd=%s", buf);
+	seq_printf(m, ", .cmd=%s, .retries=%d, allocated %d.%03d s ago", buf,
+		   cmd->retries, msecs / 1000, msecs % 1000);
 }
-- 
2.14.1

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

* [PATCH v3 4/4] scsi-mq: Always unprepare before requeuing a request
  2017-08-30 23:58 [PATCH v3 0/4] Improve requeuing behavior Bart Van Assche
                   ` (2 preceding siblings ...)
  2017-08-30 23:58 ` [PATCH v3 3/4] Show .retries and .jiffies_at_alloc in debugfs Bart Van Assche
@ 2017-08-30 23:58 ` Bart Van Assche
  2017-08-31  7:16   ` Johannes Thumshirn
  2017-08-31 10:05   ` Christoph Hellwig
  2017-09-01  3:10 ` [PATCH v3 0/4] Improve requeuing behavior Martin K. Petersen
  4 siblings, 2 replies; 14+ messages in thread
From: Bart Van Assche @ 2017-08-30 23:58 UTC (permalink / raw)
  To: Martin K . Petersen, James E . J . Bottomley
  Cc: linux-scsi, Bart Van Assche, Christoph Hellwig, Hannes Reinecke,
	Damien Le Moal, Johannes Thumshirn

One of the two scsi-mq functions that requeue a request unprepares a
request before requeueing (scsi_io_completion()) but the other function
not (__scsi_queue_insert()). Make sure that a request is unprepared
before requeuing it.

Fixes: commit d285203cf647 ("scsi: add support for a blk-mq based I/O path.")
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Damien Le Moal <damien.lemoal@wdc.com>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
---
 drivers/scsi/scsi_lib.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 6085377643ae..9cf6a80fe297 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -44,6 +44,8 @@ static struct kmem_cache *scsi_sense_cache;
 static struct kmem_cache *scsi_sense_isadma_cache;
 static DEFINE_MUTEX(scsi_sense_cache_mutex);
 
+static void scsi_mq_uninit_cmd(struct scsi_cmnd *cmd);
+
 static inline struct kmem_cache *
 scsi_select_sense_cache(bool unchecked_isa_dma)
 {
@@ -140,6 +142,12 @@ static void scsi_mq_requeue_cmd(struct scsi_cmnd *cmd)
 {
 	struct scsi_device *sdev = cmd->device;
 
+	if (cmd->request->rq_flags & RQF_DONTPREP) {
+		cmd->request->rq_flags &= ~RQF_DONTPREP;
+		scsi_mq_uninit_cmd(cmd);
+	} else {
+		WARN_ON_ONCE(true);
+	}
 	blk_mq_requeue_request(cmd->request, true);
 	put_device(&sdev->sdev_gendev);
 }
@@ -982,8 +990,6 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
 		 * A new command will be prepared and issued.
 		 */
 		if (q->mq_ops) {
-			cmd->request->rq_flags &= ~RQF_DONTPREP;
-			scsi_mq_uninit_cmd(cmd);
 			scsi_mq_requeue_cmd(cmd);
 		} else {
 			scsi_release_buffers(cmd);
-- 
2.14.1

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

* Re: [PATCH v3 1/4] Call scsi_initialize_rq() also for filesystem requests
  2017-08-30 23:58 ` [PATCH v3 1/4] Call scsi_initialize_rq() also for filesystem requests Bart Van Assche
@ 2017-08-31  7:13   ` Johannes Thumshirn
  2017-08-31 10:04   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Johannes Thumshirn @ 2017-08-31  7:13 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Martin K . Petersen, James E . J . Bottomley, linux-scsi,
	Christoph Hellwig, Brian King, Hannes Reinecke

Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
-- 
Johannes Thumshirn                                          Storage
jthumshirn@suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850

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

* Re: [PATCH v3 2/4] Improve requeuing behavior
  2017-08-30 23:58 ` [PATCH v3 2/4] Improve requeuing behavior Bart Van Assche
@ 2017-08-31  7:14   ` Johannes Thumshirn
  2017-08-31 10:04   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Johannes Thumshirn @ 2017-08-31  7:14 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Martin K . Petersen, James E . J . Bottomley, linux-scsi,
	Christoph Hellwig, Brian King, Hannes Reinecke

Thanks,
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
-- 
Johannes Thumshirn                                          Storage
jthumshirn@suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850

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

* Re: [PATCH v3 3/4] Show .retries and .jiffies_at_alloc in debugfs
  2017-08-30 23:58 ` [PATCH v3 3/4] Show .retries and .jiffies_at_alloc in debugfs Bart Van Assche
@ 2017-08-31  7:15   ` Johannes Thumshirn
  2017-08-31 10:04   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Johannes Thumshirn @ 2017-08-31  7:15 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Martin K . Petersen, James E . J . Bottomley, linux-scsi,
	Hannes Reinecke, Christoph Hellwig


Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
-- 
Johannes Thumshirn                                          Storage
jthumshirn@suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850

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

* Re: [PATCH v3 4/4] scsi-mq: Always unprepare before requeuing a request
  2017-08-30 23:58 ` [PATCH v3 4/4] scsi-mq: Always unprepare before requeuing a request Bart Van Assche
@ 2017-08-31  7:16   ` Johannes Thumshirn
  2017-08-31 10:05   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Johannes Thumshirn @ 2017-08-31  7:16 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Martin K . Petersen, James E . J . Bottomley, linux-scsi,
	Christoph Hellwig, Hannes Reinecke, Damien Le Moal


Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
-- 
Johannes Thumshirn                                          Storage
jthumshirn@suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850

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

* Re: [PATCH v3 1/4] Call scsi_initialize_rq() also for filesystem requests
  2017-08-30 23:58 ` [PATCH v3 1/4] Call scsi_initialize_rq() also for filesystem requests Bart Van Assche
  2017-08-31  7:13   ` Johannes Thumshirn
@ 2017-08-31 10:04   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Christoph Hellwig @ 2017-08-31 10:04 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Martin K . Petersen, James E . J . Bottomley, linux-scsi,
	Christoph Hellwig, Brian King, Hannes Reinecke,
	Johannes Thumshirn

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH v3 2/4] Improve requeuing behavior
  2017-08-30 23:58 ` [PATCH v3 2/4] Improve requeuing behavior Bart Van Assche
  2017-08-31  7:14   ` Johannes Thumshirn
@ 2017-08-31 10:04   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Christoph Hellwig @ 2017-08-31 10:04 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Martin K . Petersen, James E . J . Bottomley, linux-scsi,
	Christoph Hellwig, Brian King, Hannes Reinecke,
	Johannes Thumshirn

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH v3 3/4] Show .retries and .jiffies_at_alloc in debugfs
  2017-08-30 23:58 ` [PATCH v3 3/4] Show .retries and .jiffies_at_alloc in debugfs Bart Van Assche
  2017-08-31  7:15   ` Johannes Thumshirn
@ 2017-08-31 10:04   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Christoph Hellwig @ 2017-08-31 10:04 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Martin K . Petersen, James E . J . Bottomley, linux-scsi,
	Hannes Reinecke, Christoph Hellwig, Johannes Thumshirn

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH v3 4/4] scsi-mq: Always unprepare before requeuing a request
  2017-08-30 23:58 ` [PATCH v3 4/4] scsi-mq: Always unprepare before requeuing a request Bart Van Assche
  2017-08-31  7:16   ` Johannes Thumshirn
@ 2017-08-31 10:05   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Christoph Hellwig @ 2017-08-31 10:05 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Martin K . Petersen, James E . J . Bottomley, linux-scsi,
	Christoph Hellwig, Hannes Reinecke, Damien Le Moal,
	Johannes Thumshirn

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH v3 0/4] Improve requeuing behavior
  2017-08-30 23:58 [PATCH v3 0/4] Improve requeuing behavior Bart Van Assche
                   ` (3 preceding siblings ...)
  2017-08-30 23:58 ` [PATCH v3 4/4] scsi-mq: Always unprepare before requeuing a request Bart Van Assche
@ 2017-09-01  3:10 ` Martin K. Petersen
  4 siblings, 0 replies; 14+ messages in thread
From: Martin K. Petersen @ 2017-09-01  3:10 UTC (permalink / raw)
  To: Bart Van Assche; +Cc: Martin K . Petersen, James E . J . Bottomley, linux-scsi


Bart,

> The conclusion of a recent discussion is that .jiffies_at_alloc and
> .retries should be set once at the start of a lifetime of a SCSI
> request instead of every time a request is requeued. This patch series
> realizes that and also ensures that a request is unprepared and
> reprepared when requeued. Please consider these patches for kernel
> v4.14.

Applied to 4.14/scsi-queue. Thank you!

-- 
Martin K. Petersen	Oracle Linux Engineering

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

end of thread, other threads:[~2017-09-01  3:10 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-30 23:58 [PATCH v3 0/4] Improve requeuing behavior Bart Van Assche
2017-08-30 23:58 ` [PATCH v3 1/4] Call scsi_initialize_rq() also for filesystem requests Bart Van Assche
2017-08-31  7:13   ` Johannes Thumshirn
2017-08-31 10:04   ` Christoph Hellwig
2017-08-30 23:58 ` [PATCH v3 2/4] Improve requeuing behavior Bart Van Assche
2017-08-31  7:14   ` Johannes Thumshirn
2017-08-31 10:04   ` Christoph Hellwig
2017-08-30 23:58 ` [PATCH v3 3/4] Show .retries and .jiffies_at_alloc in debugfs Bart Van Assche
2017-08-31  7:15   ` Johannes Thumshirn
2017-08-31 10:04   ` Christoph Hellwig
2017-08-30 23:58 ` [PATCH v3 4/4] scsi-mq: Always unprepare before requeuing a request Bart Van Assche
2017-08-31  7:16   ` Johannes Thumshirn
2017-08-31 10:05   ` Christoph Hellwig
2017-09-01  3:10 ` [PATCH v3 0/4] Improve requeuing behavior Martin K. Petersen

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.