Re: [PATCH 27/27] scsi: ratelimit I/O error messages

Hannes Reinecke
2014-10-28T17:44:26Z

[-- Attachment #1: Type: text/plain, Size: 996 bytes --]

On 10/28/2014 06:33 PM, Christoph Hellwig wrote:
> On Fri, Oct 24, 2014 at 09:00:15PM +0000, Elliott, Robert (Server Storage) wrote:
>> With MLQUEUE level 0 and MLCOMPLETE level 0, v8 runs those prints,
>> and they work as expected:
>> * the value in the ratelimit message matches the block layer (82)
>> * the number of print_result/print_sense/print_command matches
>> the number of block layer prints (10)
>> * the SCSI prints end up interleaved, but that's for the next
>> patch series to fix
>>
>> Assuming the MLQUEUE -> MLCOMPLETE fix is put back in,
>> you may add:
>> Tested-by: Robert Elliott <elliott@hp.com>
>> Reviewed-by: Robert Elliott <elliott@hp.com>
>
> Hannes, can you send me a quick incremental fix for this issue?
>
Of course.

Here it is.

Cheers,

Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@suse.de +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)

[-- Attachment #2: 0001-scsi-fixup-SCSI_LOG_MLCOMPLETE-instead-of-SCSI_LOG_M.patch --]
[-- Type: text/x-patch, Size: 1064 bytes --]

>From 7da8db4d39ae71b065e0167339a6e4107f1243b8 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Tue, 28 Oct 2014 18:42:15 +0100
Subject: [PATCH] scsi: fixup SCSI_LOG_MLCOMPLETE instead of SCSI_LOG_MLQUEUE

Robert Elliott pointed out that we need to use SCSI_LOG_MLCOMPLETE
in scsi_io_completion() instead of SCSI_LOG_MLQUEUE.

Signed-off-by: Hannes Reinecke <hare@suse.de>
---
drivers/scsi/scsi_lib.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 4572991..7711dbd 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -1045,8 +1045,8 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
DEFAULT_RATELIMIT_BURST);

if (unlikely(scsi_logging_level))
- level = SCSI_LOG_LEVEL(SCSI_LOG_MLQUEUE_SHIFT,
- SCSI_LOG_MLQUEUE_BITS);
+ level = SCSI_LOG_LEVEL(SCSI_LOG_MLCOMPLETE_SHIFT,
+ SCSI_LOG_MLCOMPLETE_BITS);

/*
* if logging is enabled the failure will be printed
--
1.8.4.5