Hi,
I need some help here to narrow this down more or may be someone might
find the answer quickly.
I have pinpoint the crash/reboot for the Sun X4100 to the usage of the
"Ultra160: enable dual xfers", even if I think it is U360, but I could
be wrong. Couldn't find the specs just yet. In any case, this is not the
way to fix it and I agree that it may be very stupid, but to do my best
to isolate this so far, I dig as much as I could would the
documentations and specs to find a way for now in making the box rock solid.
This is not a patch as I don't know how to fix it yet anyway, but here
is what I did as a test to bypass the problem for now and make it rock
solid and no more crash.
Obviously this is wrong and what I did is simply force it to work in U80
mode instead of what it look like the mpi drive detect it and try to use
the U160 mode and after some overflow or something like that when I send
the data to fast, it crash.
But with this below, it doesn't anymore.
Again, this is not right and not very brilliant either, but I simply
force it to use U80 and all bugs and crashes are now gone.
This is showing up ONLY when you use the amd64.MP kernel, not when you
use the single processor one, or when you use the i386 single, or mp kernel.
Anyone could help me more please.
I am reaching pretty soon the maximum of where I can go in this kernel
part here.
Best,
Daniel
Index: mpi.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/mpi.c,v
retrieving revision 1.89
diff -u -p -r1.89 mpi.c
--- mpi.c 12 Sep 2007 13:42:49 -0000 1.89
+++ mpi.c 28 Nov 2007 08:07:57 -0000
@@ -458,10 +458,10 @@ mpi_ppr(struct mpi_softc *sc, struct scs
switch (try) {
case 0: /* U320 */
- break;
+ /* break; */
case 1: /* U160 */
- pg1.req_period = 0x09;
- break;
+ /* pg1.req_period = 0x09; */
+ /* break; */
case 2: /* U80 */
pg1.req_period = 0x0a;
break;