|Summary:||isp(4) regression after r316398 r316399|
|Component:||kern||Assignee:||Alexander Motin <mav>|
|Severity:||Affects Some People||CC:||mav|
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
Comment 2 Alexander Motin 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 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 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 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 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 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 2019-03-08 00:57:48 UTC
Merged to stable/12 and stable/11.