From: Bart V. A. <bva...@ac...> - 2011-09-26 19:26:31
|
On Mon, Sep 26, 2011 at 2:37 AM, Curtis Maloney <cu...@ti...> wrote: > On 26/09/11 03:05, Bart Van Assche wrote: > >> On Sat, Sep 24, 2011 at 2:26 AM, Curtis <cu...@ti... >> <mailto:cu...@ti...>> wrote: >> >> my problem isn't specifically a SCST one, but since it's related, I'm >> hoping someone here has a solution. >> >> I've got SRP working wonderfully with SCST 2.1, and am testing with >> VMWare and Win2k8 initiators. >> >> The issue begins when I reboot the SAN box. Windows comes in too >> early, >> doesn't see a target, and won't rescan. >> >> The sequence appears to be: >> 1) SAN box starts IB drivers, turning line state to ACTIVE >> 2) Win box sees line state change, and rescans for targets. >> 3) Win box doesn't see any SRP Targets, and ignores (a) >> 4) SAN box brings up SCST >> 5) ??? >> >> (a) Since the Win box knows a STP Target _used_ to live there, it >> actually shows a STP Miniport Driver as broken in the devices list. >> >> Now, I can cause Windows to look again by replugging the IB cable, but >> that's hardly a practical solution. I've been toying with using >> "ibportstate", but haven't got it to work yet. >> >> This morning I've been chasing down how to cause a unit attention to be >> issued, but if Windows doesn't even think there's a target there, it >> won't hear it. >> >> If anyone has any ideas, I'll open to suggestions. >> >> What triggers Windows to rescan after the SAN reboot ? If the trigger >> is >> an IB port state change: the IB port state is controlled by the IB >> switch and hence the switch should allow to toggle the HCA port state >> after SCST and ib_srpt have been initialized. >> > > From what I've read on the WinOFED list, a port state change will do it. > However, currently in my test setup I don't have a switch. We have another > setup which does, so we'll test that today. > The port state is controlled by the subnet manager - that's either the IB switch or opensmd. The InfiniBand spec states that it is possible to modify *PortInfo:InitType *and that should allow to reinitialize a HCA port. Unfortunately most HCAs do not (yet ?) implement this (see also the IB_DEVICE_INIT_TYPE capability in the Linux kernel source tree). And a user-space tool to trigger this functionality even doesn't exist yet. Bart. |