HomeFreeBSD

mps/mpr: Add workaround for firmware not responding to IOC_FACTS or IOC_INIT

Description

mps/mpr: Add workaround for firmware not responding to IOC_FACTS or IOC_INIT

Sometimes, especially with older firmware, mps(4) would have trouble
initializing the card in one of these two steps. Add in a retry after a
short delay. Sean Bruno and Stephen McConnell thought this was OK in the
bug discussions, but never committed it. Steve indicated the delay
might not be necessary, but the OP clearly needed to make it longer to
make things work. I've kept the delay, and added the suggested comment.

Ported the iocfacts part to mpr as well, since we see similar errors
about once every month or two over a few thousand controllers at
work. We've not seen it with IOC_INIT as far back as I can query the
error log database, so I didn't port that forward. We'll see if this
helps, but won't know for sure until next year (so I'm committing it now
since it won't hurt and might help). We usually see this failure in
connection with complicated recovery operations with a drive that's
failing, though, at least in the last year's worth of failures. It's
not clear this is the same as OP or not.

PR: 212841
Sponsored by: Netflix
Co-authored-by: imp

Details

Provenance
prateek sethi <prateekrootkey@gmail.com>Authored on Sun, Oct 13, 6:38 PM
impCommitted on Sun, Oct 13, 9:38 PM
Parents
rGf50a0944d034: vnode.h: add comment line about VIRF_ flags
Branches
Unknown
Tags
Unknown