Bug 233654 - isp(4) regression after r316398 r316399
Summary: isp(4) regression after r316398 r316399
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 11.2-STABLE
Hardware: Any Any
: --- Affects Some People
Assignee: Alexander Motin
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2018-11-30 03:48 UTC by aler
Modified: 2019-03-08 00:57 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description aler 2018-11-30 03:48:51 UTC
Previous revisions works fine.
Starting from r316399 it work for about ~10 minutes uptime and then starts spamming errors liek this:

isp0: Chan 0 Abort Cmd for N-Port 0x000c @ Port 0x1f1200
isp0: Polled Mailbox Command ()x54) Timeout (5000000us) (isp_control:4705)
isp0: Mailbox Command 'EXECUTE IOCB A64' failed (TIMEOUT)
isp0: isp_watchdog: timeout for handle 0x11882025

and nothing works until hard reset.

Hardware:
isp0: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4000-0x40ff mem 0xfbff0000-0xfbff3fff irq 30 at device 0.0 on pci6
isp1: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4400-0x44ff mem 0xfbfe0000-0xfbfe3fff irq 37 at device 0.1 on pci6

Loading or not loading ispfw  doesn't change anything to this problem.
Comment 1 aler 2018-12-10 12:08:03 UTC
bump
Comment 2 Alexander Motin freebsd_committer freebsd_triage 2018-12-10 19:00:47 UTC
I can't say there can't be a regression, but I haven't heard any other reports about this.  It may be specific to 24xx series of adapters, since they are older and I have tested them only basically.  Unfortunately there seems to be no way in code to disable new functionality.  It would be nice to create a patch for that.
Comment 3 aler 2018-12-18 06:57:35 UTC
Pre-316398 code only uses MSI-X for 2600+ cards.

This change in new code seems to fix the problem. May be it will be better to add some sysctl to optionally allow MSI-X on 24xx but anyway it should be disabled by default and might be enabled only by explicit request.


--- sys/dev/isp/ispmbox.h.orig  2018-12-18 09:49:17.549288000 +0300
+++ sys/dev/isp/ispmbox.h       2018-12-17 04:12:14.056837000 +0300
@@ -896,7 +896,7 @@
 #define        ISP_GET_VPIDX(isp, tag) \
        (ISP_CAP_MULTI_ID(isp) ? tag : 0)
 #define        ISP_CAP_MSIX(isp)       \
-       (IS_24XX(isp)? (isp->isp_fwattr & ISP2400_FW_ATTR_MSIX) : 0)
+       (IS_26XX(isp)? (isp->isp_fwattr & ISP2400_FW_ATTR_MSIX) : 0)
 #define        ISP_CAP_VP0(isp)        \
        (IS_24XX(isp)? (isp->isp_fwattr & ISP2400_FW_ATTR_VP0) : 0)
Comment 4 Alexander Motin freebsd_committer freebsd_triage 2019-02-28 15:29:12 UTC
In r344660 I've just added tunables to control usage of MSI and MSI-X interrupts.  I am not sure yet about changing default, since I have seen not so many complains.
Comment 5 commit-hook freebsd_committer freebsd_triage 2019-02-28 15:36:57 UTC
A commit references this bug:

Author: mav
Date: Thu Feb 28 15:36:03 UTC 2019
New revision: 344661
URL: https://svnweb.freebsd.org/changeset/base/344661

Log:
  Limit 24xx adapters to only one MSI-X interrupt by default.

  These are 4Gb/s and pretty old and slow now, so I see no reason to fight
  for their performance over stability.

  PR:		233654
  MFC after:	1 week
  Sponsored by:	iXsystems, Inc.

Changes:
  head/sys/dev/isp/isp_pci.c
Comment 6 Alexander Motin freebsd_committer freebsd_triage 2019-02-28 15:37:30 UTC
Thinking again I decided to limit MSI-X to one vector for 24xx.  Suppose it should help.
Comment 7 commit-hook freebsd_committer freebsd_triage 2019-02-28 21:07:31 UTC
A commit references this bug:

Author: mav
Date: Thu Feb 28 21:07:16 UTC 2019
New revision: 344669
URL: https://svnweb.freebsd.org/changeset/base/344669

Log:
  Limit 24xx adapters to only MSI interrupts by default.

  This was actually the known good configuration we used before.
  Single MSI-X configuration doesn't even work there on my tests, just due
  to lack of documentation not sure whether by design or I am doing something
  wrong.

  PR:		233654
  MFC after:	1 week

Changes:
  head/sys/dev/isp/isp_pci.c
Comment 8 commit-hook freebsd_committer freebsd_triage 2019-03-08 00:57:22 UTC
A commit references this bug:

Author: mav
Date: Fri Mar  8 00:56:42 UTC 2019
New revision: 344911
URL: https://svnweb.freebsd.org/changeset/base/344911

Log:
  MFC r344661, r344669: Limit 24xx adapters to only MSI interrupts by default.

  This was actually the known good configuration we used before.
  Single MSI-X configuration doesn't even work there on my tests, just due
  to lack of documentation not sure whether by design or I am doing something
  wrong.

  PR:		233654

Changes:
_U  stable/11/
  stable/11/sys/dev/isp/isp_pci.c
Comment 9 Alexander Motin freebsd_committer freebsd_triage 2019-03-08 00:57:48 UTC
Merged to stable/12 and stable/11.