Port-xen archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Freezing Dom0
On Sun, 25 Sep 2011, Torsten Harenberg wrote:
okay.. I managed to set up the serial console, rebooted and now run into
the same freezing state and are in the debugger. So I could get a full
bt and a dmesg, which says at the end:
sd1(ciss1:0:0:0): no free tags
panic: scsipi_get_tag
fatal breakpoint trap in supervisor mode
trap type 1 code 0 rip ffffffff804f5b9d cs e030 rflags 246 cr2 7f7ffdfdc000 cpl
6 rsp ffffa0002f691500
...
What does this "sd1(ciss1:0:0:0): no free tags" mean? Any hint is really very
much appreciated.
It means that the ciss(4) driver will accept more than 256 command, but
the tagging done in the scsipi layer can only do 256 and a DIAGNOSTIC
kernel will panic if more are used. The tag passed by the scsipi layer to
ciss(4) is ignore, as the ciss(4) handles the tagging internally.
A current kernel shouldn't have this problem, as ciss(4) was changed
several months ago to have a maximum of 256 command per device, but was
not pulled up to the netbsd-5 branch. [I have requested a pullup, so at
some point this should be resolved for that branch.]
To fix this now for a netbsd-5* branch kernel [until the change gets
pulled up], you will need the change in revision 1.25 of sys/dev/ic/ciss.c.
@@ -373,7 +373,7 @@ ciss_attach(struct ciss_softc *sc)
sc->sc_adapter.adapt_dev = (device_t) sc;
sc->sc_adapter.adapt_openings = sc->sc_channel.chan_openings;
- sc->sc_adapter.adapt_max_periph = sc->sc_channel.chan_openings;
+ sc->sc_adapter.adapt_max_periph = min(sc->sc_adapter.adapt_openings,
256);
sc->sc_adapter.adapt_request = ciss_scsi_cmd;
sc->sc_adapter.adapt_minphys = cissminphys;
sc->sc_adapter.adapt_ioctl = ciss_scsi_ioctl;
--
Michael L. Hitch mhitch%montana.edu@localhost
Computer Consultant
Information Technology Center
Montana State University Bozeman, MT USA
Home |
Main Index |
Thread Index |
Old Index