Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1498095

[PATCH v3 05/12] scsi/ncr5380: Increase register polling limit

From Finn Thain <fthain@telegraphics.com.au>
Newsgroups linux.kernel
Subject [PATCH v3 05/12] scsi/ncr5380: Increase register polling limit
Date 2016-10-10 06:50 +0200
Message-ID <sqAHf-59Y-29@gated-at.bofh.it> (permalink)
References <sqAHf-59Y-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


If NCR5380_poll_politely() is called under irq lock, the polling time
limit is clamped to avoid a spike in interrupt latency. When not under
irq lock, the same polling time limit acts as the worst case delay
between schedule() calls.

During PDMA (under irq lock) I've found that the 10 ms time limit is
sometimes too short, and leads to the error message,
sd 0:0:0:0: [sda] tag#1 macscsi_pread: !REQ and !ACK

This particular target identifies itself as a QUANTUM DAYTONA514S. It
seems to be slower to assert ACK than the other targets I've tested.
This patch solves the problem by increasing the polling timeout.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Tested-by: Ondrej Zary <linux@rainbow-software.org>
Tested-by: Michael Schmitz <schmitzmic@gmail.com>
---
When irqs are disabled, this change will make no difference unless the
driver or target happens to suffer from timeout errors. In the irqs
enabled case, this patch may delay the next call to schedule() by an
additional 5 ms (in all 5380 drivers). Normally that would only happen
for a target selection timeout during a SCSI bus scan, which should not
bother anyone too much.
---
 drivers/scsi/NCR5380.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/NCR5380.h b/drivers/scsi/NCR5380.h
index cbb29d6..f0eea44 100644
--- a/drivers/scsi/NCR5380.h
+++ b/drivers/scsi/NCR5380.h
@@ -253,7 +253,7 @@ struct NCR5380_cmd {
 #define NCR5380_PIO_CHUNK_SIZE		256
 
 /* Time limit (ms) to poll registers when IRQs are disabled, e.g. during PDMA */
-#define NCR5380_REG_POLL_TIME		10
+#define NCR5380_REG_POLL_TIME		15
 
 static inline struct scsi_cmnd *NCR5380_to_scmd(struct NCR5380_cmd *ncmd_ptr)
 {
-- 
2.7.3

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3 00/12] Fixes, cleanup and g_NCR5380_mmio/g_NCR5380 merger Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200
  [PATCH v3 07/12] scsi/ncr5380: Store IO ports and addresses in host  private data Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200
  [PATCH v3 10/12] scsi/ncr5380: Expedite register polling Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200
    Re: [PATCH v3 10/12] scsi/ncr5380: Expedite register polling Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-10-10 11:20 +0200
      Re: [PATCH v3 10/12] scsi/ncr5380: Expedite register polling Finn Thain <fthain@telegraphics.com.au> - 2016-10-11 01:00 +0200
  [PATCH v3 12/12] scsi/ncr5380: Suppress unhelpful "interrupt without  IRQ bit" message Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200
  [PATCH v3 06/12] scsi/ncr5380: Improve hostdata struct member  alignment and cache-ability Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200
  [PATCH v3 04/12] scsi/ncr5380: Simplify register polling limit Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200
  [PATCH v3 05/12] scsi/ncr5380: Increase register polling limit Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200
  [PATCH v3 01/12] scsi/g_NCR5380: Merge g_NCR5380 and g_NCR5380_mmio  drivers Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200
  [PATCH v3 08/12] scsi/ncr5380: Use correct types for device register  accessors Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200
    Re: [PATCH v3 08/12] scsi/ncr5380: Use correct types for device  register accessors Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-10-10 11:20 +0200
  [PATCH v3 09/12] scsi/ncr5380: Pass hostdata pointer to register  polling routines Finn Thain <fthain@telegraphics.com.au> - 2016-10-10 06:50 +0200

csiph-web