linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugzilla.kernel.org
To: linux-scsi@vger.kernel.org
Subject: [Bug 121531] Adaptec 7805H SAS HBA (pm80xx): hangs when writing >80MB at once
Date: Tue, 25 Oct 2016 15:20:05 +0000	[thread overview]
Message-ID: <bug-121531-11613-Lsc3ea2R4G@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-121531-11613@https.bugzilla.kernel.org/>

https://bugzilla.kernel.org/show_bug.cgi?id=121531

Chloé Desoutter <chloe@tigres-rouges.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |chloe@tigres-rouges.net

--- Comment #16 from Chloé Desoutter <chloe@tigres-rouges.net> ---
Hello,

I'm a victim of the bug and this impaired heavily the use of this controller on
my filer when I wrote data constantly on it. After a few hours it would freeze
without possible recovery.
I've been researching the cause of this bug by comparing the source trees of
Microsemi and what's in the kernel.

The SCSI queue depth is not at stake, as changing it did not fix the issue. In
the  microsemi driver it is at 128, in the kernel tree it's at 508 but this
changes nothing in the end (except I noticed a slight performance loss when set
at 128).

However the MPI queue parameter is set way higher in the kernel tree than in
the Microsemi tree.

In the Microsemi tree this is managed by the MAX_IB_QUEUE_ELEMENTS and
MAX_OB_QUEUE_ELEMENTS defines. The events queue seems to be split evenly
between reads and writes. The total queue length is 512. There is an equal
number of inbound and outbound queues there.

In the kernel tree, this is handled by the PM8001_MPI_QUEUE define (value:
1024). There is 1 inbound queue and 4 outbound queues.

I noticed that the value PM8001_MPI_QUEUE = 1024 causes crashes of the driver
on a "PMC-Sierra PM8001 SAS HBA" as reported earlier. Changing this value to
512 results in a much more stable driver. I guess setting the MPI queue to
something too important results in instructions being lost when too much data
gets queued and the controller cannot keep up with the writes.

I will attach the following patch.

--- linux/drivers/scsi/pm8001/pm8001_defs.h.orig    2016-10-25
15:15:40.470112331 +0000
+++ linux/drivers/scsi/pm8001/pm8001_defs.h    2016-10-24 19:13:46.533108727
+0000
@@ -76,7 +76,7 @@ enum port_type {

 /* driver compile-time configuration */
 #define    PM8001_MAX_CCB         512    /* max ccbs supported */
-#define PM8001_MPI_QUEUE         1024   /* maximum mpi queue entries */
+#define PM8001_MPI_QUEUE         512   /* maximum mpi queue entries */
 #define    PM8001_MAX_INB_NUM     1
 #define    PM8001_MAX_OUTB_NUM     1
 #define    PM8001_MAX_SPCV_INB_NUM        1

-- 
You are receiving this mail because:
You are the assignee for the bug.

  parent reply	other threads:[~2016-10-25 15:20 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-06 15:43 [Bug 121531] New: Adaptec 7805H SAS HBA (pm80xx): hangs when writing >80MB at once bugzilla-daemon
2016-07-06 15:44 ` [Bug 121531] " bugzilla-daemon
2016-07-06 15:44 ` bugzilla-daemon
2016-07-06 15:44 ` bugzilla-daemon
2016-07-06 15:45 ` bugzilla-daemon
2016-07-06 15:45 ` bugzilla-daemon
2016-07-06 15:46 ` bugzilla-daemon
2016-07-06 15:47 ` bugzilla-daemon
2016-07-06 15:48 ` bugzilla-daemon
2016-07-06 15:49 ` bugzilla-daemon
2016-07-06 16:03 ` bugzilla-daemon
2016-07-06 16:15 ` bugzilla-daemon
2016-07-07 11:38 ` bugzilla-daemon
2016-07-07 15:36 ` bugzilla-daemon
2016-07-07 16:34 ` bugzilla-daemon
2016-07-08  4:47   ` Viswas G
2016-07-08  7:47     ` Jack Wang
2016-07-08  7:47 ` bugzilla-daemon
2016-10-25 15:20 ` bugzilla-daemon [this message]
2016-10-25 15:21 ` bugzilla-daemon
2016-10-25 23:03 ` bugzilla-daemon
2016-10-25 23:11 ` bugzilla-daemon
2016-10-26 12:51 ` bugzilla-daemon
2016-10-26 12:52 ` bugzilla-daemon
2016-10-27 21:57 ` bugzilla-daemon
2016-11-01 22:09 ` bugzilla-daemon

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=bug-121531-11613-Lsc3ea2R4G@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@bugzilla.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    /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 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).