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

Sergey Kandaurov pluknet at gmail.com
Thu Sep 1 12:21:15 UTC 2011


On 1 September 2011 01:27, Sergey Kandaurov <pluknet at gmail.com> wrote:
> On 1 September 2011 01:17, John Baldwin <jhb at freebsd.org> wrote:
>> On Wednesday, August 31, 2011 3:24:12 pm Sergey Kandaurov wrote:
>>> 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
>>
>> Did this work fine without the patch?
>
> Yes, like a charm.
>
>>
>> Also, does it work fine if you disable MSI-X via 'hw.pci.enable_msix=0'
>> in the loader?
>

Yes, it allows to finish the boot.

-- 
wbr,
pluknet


More information about the freebsd-stable mailing list