mfi(4) patch to add MSI-X support, possibly address command timeouts

Sergey Kandaurov pluknet at gmail.com
Wed Aug 31 19:55:17 UTC 2011


On 31 August 2011 21:34, John Baldwin <jhb at freebsd.org> wrote:
> I'd like some folks to test a patch to the mfi(4) driver that may help to
> address issues several folks have reported.  The patch does two things, first
> it adds some dummy reads of PCI registers when checking device status in the
> interrupt handler to "flush" the writes to ACK interrupts.  The Linux
> megaraid-sas driver uses this approach and some folks have tested a patch from
> Scott Long which had a somewhat similar effect.  Second, it enables the use of
> MSI-X interrupts for many newer devices.
>
> The patch is available below and at www.freebsd.org/~jhb/patches/mfi.patch

mfi0: <LSI MegaSAS Gen2> port 0x3000-0x30ff mem
0x9dd40000-0x9dd43fff,0x9dd00000-0x9dd3ffff irq 26 at device 0.0 on
pci26
mfi0: Using MSI-X
mfi0: Megaraid SAS driver Ver 3.00

However, booting never finishes ending up with:
mfi0: COMMAND 0xffffff8000b3a550 TIMEOUT AFTER 58 SECONDS
mfi0: COMMAND 0xffffff8000b3a550 TIMEOUT AFTER 88 SECONDS
mfi0: COMMAND 0xffffff8000b3a550 TIMEOUT AFTER 118 SECONDS
mfi0: COMMAND 0xffffff8000b3a550 TIMEOUT AFTER 148 SECONDS
mfi0: COMMAND 0xffffff8000b3a550 TIMEOUT AFTER 179 SECONDS
mfi0: COMMAND 0xffffff8000b3a550 TIMEOUT AFTER 209 SECONDS

Patch applied and tested on RELENG_8_2.

mfi0 at pci0:26:0:0:       class=0x010400 card=0x03b21014 chip=0x00791000
rev=0x03 hdr=0x00
    vendor     = 'LSI Logic (Was: Symbios Logic, NCR)'
    class      = mass storage
    subclass   = RAID
    bar   [10] = type I/O Port, range 32, base 0x3000, size 256, enabled
    bar   [14] = type Memory, range 64, base 0x9dd40000, size 16384, enabled
    bar   [1c] = type Memory, range 64, base 0x9dd00000, size 262144, enabled
    cap 01[50] = powerspec 3  supports D0 D1 D2 D3  current D0
    cap 10[68] = PCI-Express 2 endpoint max data 256(4096) link x8(x8)
    cap 03[d0] = VPD
    cap 05[a8] = MSI supports 1 message, 64 bit
    cap 11[c0] = MSI-X supports 15 messages in map 0x14
ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
ecap 0004[138] = unknown 1

-- 
wbr,
pluknet


More information about the freebsd-stable mailing list