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

John Baldwin jhb at freebsd.org
Thu Sep 1 14:35:16 UTC 2011


On Wednesday, August 31, 2011 5:27:09 pm Sergey Kandaurov 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.

Hmm, the Linux driver definitely uses MSI-X for your board.

What chipset do you have, and does your system use MSI IRQs for any other
devices?

Also, can you break into ddb and do 'show intrcnt' to see if you are getting
interrupts for the mfi device?

-- 
John Baldwin


More information about the freebsd-stable mailing list