tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: "adapter resource shortage"?
hello. A couple of thoughts:
1. Revision 1.14.14.2 of mpt_netbsd.c does contain Michael's fixes and is
the version I started with when I began my work on improving the robustness
of the driver.
2. I'm not sure the error you're getting is related to the problem Michael
fixed. I believe you're getting an XS_RESOURCE_SHORTAGE status sent back
to you from the driver at the scsipi layer. Michael's fix addresses a
queue full event from the IOC firmware of the LSI card itself. It's not
clear to me that the driver does anything but print a message when the
firmware signals this condition. The mpt(4) driver returns
XS_RESOURCE_SHORTAGE when the IOC returns an INSuFFiCIENT_RESOURCES error
code, which seems to be different from a QUEUE_FULL event from the LSI
firmware's perspective. It also returns this error when there is a memory
allocation error in the driver. I guess it would be helpful to find out
where this error is coming from; whether it's a direct result of the IOC
signaling a problem or if there's a secondary memory allocation error in
the driver itself. It looks like you have at least 255 request slots for
the mpt(4)'s request queue; I would be surprised if you're running out of
those, but who knows?
-Brian
On Mar 6, 1:25am, Mouse wrote:
} Subject: Re: "adapter resource shortage"?
} >> sd1(mpt0:0:1:0): adapter resource shortage
}
} > This could be caused by the driver not reserving enough command slots
} > for its internal use. I committed a fix to reduce the maximum
} > commands the scsipi layer would try to use (rev 1.17 of
} > src/sys/dev/ic/mpt_netbsd.c, which should be in the 5.2 branch).
}
} I have mpt_netbsd.c 1.14.14.2; getting cvsweb to cough up diffs from
} 1.16 to 1.17 of mpt_netbsd.c and comparing them against 1.14.14.2 makes
} me think I do have that delta.
}
} > You might want to try reducing the scsipi openings a couple more and
} > see if that helps.
}
} That is, s/2/5/ or some such on the
}
} adapt->adapt_openings = maxq - 2; /* Reserve 2 for driver use*/
} adapt->adapt_max_periph = maxq - 2;
}
} lines, right? (I'd want to check that maxq is at least 6 first....)
}
} I'll try that.
}
} Mouse
>-- End of excerpt from Mouse
Home |
Main Index |
Thread Index |
Old Index