c9de53f96e
way of doing business- modulo some startup spasms and peculiarities of the way kthreads are started (*after* configuration, weird) and some strangeness with the freeze/thaw code, what now happens is that any of Loop Down, LIP, Loop Reset or Port Datbase or Name Server Database Changed ASYNC events cause the queues to freeze for this channel. The arrival of a Loop UP is not relevant. What *is* relevant is that the Port Datbase or Name Server Changed async event indicate that it's okay to go and (re)evaluate the state of the FC link and (re)probe local loop and fabric membership. We have a kthread do this because it's *sooooo* much nicer to be able to sleep while doing the 130-250 mailbox commands it'll take to re-evaluate things. When the state is well known again, we can unfreeze the channel queues. Then, as commands start arriving, we simply can start them or bounce them with XS_SELTIMEOUT (if the device in question has gone away). Previously, we did lazy evaluation, which meant that if a change occurred, we would wait until the very *next* command to go rebuild stuff. The reason this is not sensible is: a) Even with sleeping, you can hang up your system because you might be making some poor stat(2) call pay the price of re-evaluating the whole fabric. b) If we ever really want to get to dynamic attachment/detachment, we should find out sooner, rather than later, where things get to. Split off ispminphys_1020 from ispminphys- a 1020 has a 24 bit limit- not anything newer. Re-enable LIPs and Loop Resets as async events- this allows the outer layer to set policy about them. Roll platform major && minor. Remove bogus waitq (no longer used). Remove callout entry in softc (no longer used). Define some shorthands for channels. Clean up a variety of cruft left over from the thorpej_scsipi changeover. |
||
---|---|---|
.. | ||
ata | ||
bi | ||
cardbus | ||
dec | ||
eisa | ||
hpc | ||
i2c | ||
i2o | ||
ic | ||
ieee1394 | ||
isa | ||
isapnp | ||
mca | ||
microcode | ||
mii | ||
mscp | ||
news | ||
ofisa | ||
ofw | ||
pci | ||
pckbc | ||
pcmcia | ||
podulebus | ||
qbus | ||
raidframe | ||
rasops | ||
rcons | ||
sbus | ||
scsipi | ||
std | ||
sun | ||
sysmon | ||
tc | ||
usb | ||
vme | ||
wscons | ||
wsfont | ||
xmi | ||
auconv.c | ||
auconv.h | ||
audio_if.h | ||
audio.c | ||
audiovar.h | ||
ccd.c | ||
ccdvar.h | ||
clock_subr.c | ||
clock_subr.h | ||
cninit.c | ||
cons.c | ||
cons.h | ||
DEVNAMES | ||
ld.c | ||
ldvar.h | ||
Makefile | ||
md_root.c | ||
md.c | ||
md.h | ||
midi_if.h | ||
midi.c | ||
midisyn.c | ||
midisynvar.h | ||
midivar.h | ||
mulaw.c | ||
mulaw.h | ||
rnd.c | ||
rndpool.c | ||
sequencer.c | ||
sequencervar.h | ||
vnd.c | ||
vndvar.h |