Date: Fri, 21 Apr 2000 03:52:11 -0400 (EDT) From: Mike Nowlin <mike@argos.org> To: freebsd-stable@FreeBSD.ORG Cc: adoyle@viewsnet.com Subject: Re: ppi Geek Port crash - more info Message-ID: <Pine.LNX.4.05.10004210329220.28275-100000@jason.argos.org> In-Reply-To: <Pine.LNX.4.05.10004150406230.28959-100000@jason.argos.org>
next in thread | previous in thread | raw e-mail | index | archive | help
More information on this problem: On Sat, 15 Apr 2000, Mike Nowlin wrote: > Bringing back a problem discussed earlier that I couldn't find a > resolution on, I'm having problems with the ppi interface blowing up the > system (CVSup'd to 4.0-CURRENT somewhere around April 3). (I just want m= y > I'll try to update tomorrow and try it again, but I get the feeling that > I'll have the same problem. -- done as of 4/20, no changes... It DOES work on my 3.4-STABLE system. (I'm about ready to start backing my 4.0 up week-by-week until it works, then doing some diff's... :) ) This bug is triggered by an open() on /dev/ppi0... PR kern/14something... I hooked up a serial kgdb and got the back trace of what happened to cause this... Looks to me like irq=3D0 when it hits BUS_SETUP_INTR in several places, which is passed on to nexus_setup_intr(), causing the panic. I'm not that familiar with how this all works, but I'm more than willing to play with it -- been digging into this code for the last three hours, but can't really "get a grip on it." If someone has a few pointers as to where to look, I'll see what I can do. This whole BUS_SETUP_INTR thing is messing with my mind -- long day/week/month/year at work... :) =20 Hints as to what UNITOSOFTC() really does? Thanks - Mike ------- Lots of debugging stuff below ------- db> trace Debugger(c0271e63) at Debugger+0x3c panic(c02997c0,c0840d80,c0837e00,c0840c80,c61e8ba0) at panic+0x70 nexus_setup_intr(c082de80,c0840c00,0,1,c012d838) at nexus_setup_intr+0x19 BUS_SETUP_INTR(c082de80,c0840c00,0,1,c012d838) at BUS_SETUP_INTR+0x40 bus_generic_setup_intr(c082de00,c0840c00,0,1,c012d838) at=20 =09bus_generic_setup_intr+0x2e BUS_SETUP_INTR(c082de00,c0840c00,0,1,c012d838) at BUS_SETUP_INTR+0x40 bus_generic_setup_intr(c082dd00,c0840c00,0,1,c012d838) at=20 =09bus_generic_setup_intr+0x2e BUS_SETUP_INTR(c082dd00,c0840c00,0,1,c012d838) at BUS_SETUP_INTR+0x40 bus_generic_setup_intr(c082db00,c0840c00,0,1,c012d838) at=20 =09bus_generic_setup_intr+0x2e BUS_SETUP_INTR(c082db00,c0840c00,0,1,c012d838) at BUS_SETUP_INTR+0x40 isa_setup_intr(c082d600,c0840c00,0,1,c012d838) at isa_setup_intr+0x26 BUS_SETUP_INTR(c082d600,c0840c00,0,1,c012d838) at BUS_SETUP_INTR+0x40 ppc_setup_intr(c0837e00,c0840c00,0,1,c012d838) at ppc_setup_intr+0x5e BUS_SETUP_INTR(c0837e00,c0840c00,0,1,c012d838) at BUS_SETUP_INTR+0x40 ppbus_setup_intr(c0840d00,c0840c00,0,1,c012d838) at ppbus_setup_intr+0x50 BUS_SETUP_INTR(c0840d00,c0840c00,0,1,c012d838) at BUS_SETUP_INTR+0x40 ppiopen(c0840980,3,2000,c5c86080,0) at ppiopen+0x90 spec_open(c61e8e10,c61e8de8,c02207a9,c61e8e10,c61e8e84) at spec_open+0xfd spec_vnoperate(c61e8e10,c61e8e84,c0171a57,c61e8e10,0) at spec_vnoperate+0x1= 5 ufs_vnoperatespec(c61e8e10,0,c61e8f80,c096b240,c61edb00) at=20 =09ufs_vnoperatespec+0x15 vn_open(c61e8edc,3,1,c5c86080,c02a772c) at vn_open+0x3d7 open(c5c86080,c61e8f80,1,bfbffcd8,bfbffce0) at open+0xb5 syscall(2f,2f,2f,bfbffce0,bfbffcd8) at syscall+0x176 Xint0x80_syscall() at Xint0x80_syscall+0x26 db> #0 0xc0141c95 in panic (fmt=3D0xc0299b20 "nexus_setup_intr: NULL irq resou= rce!") at ../../kern/kern_shutdown.c:526 #1 0xc0255a2d in nexus_setup_intr (bus=3D0xc082de00, child=3D0xc0840c00, i= rq=3D0x0, flags=3D1, ihand=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0x= c0841e14) at ../../i386/i386/nexus.c:402 #2 0xc0120178 in BUS_SETUP_INTR (dev=3D0xc082de00, child=3D0xc0840c00, irq= =3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc= 0841e14) at bus_if.c:162 #3 0xc0149ef6 in bus_generic_setup_intr (dev=3D0xc082dd80, child=3D0xc0840= c00, irq=3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc0841e14) at ../../kern/subr_bus.c:1968 #4 0xc0120178 in BUS_SETUP_INTR (dev=3D0xc082dd80, child=3D0xc0840c00, irq= =3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc= 0841e14) at bus_if.c:162 #5 0xc0149ef6 in bus_generic_setup_intr (dev=3D0xc082dc80, child=3D0xc0840= c00, irq=3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc0841e14) at ../../kern/subr_bus.c:1968 #6 0xc0120178 in BUS_SETUP_INTR (dev=3D0xc082dc80, child=3D0xc0840c00, irq= =3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc= 0841e14) at bus_if.c:162 #7 0xc0149ef6 in bus_generic_setup_intr (dev=3D0xc082da80, child=3D0xc0840= c00, irq=3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc0841e14) at ../../kern/subr_bus.c:1968 #8 0xc0120178 in BUS_SETUP_INTR (dev=3D0xc082da80, child=3D0xc0840c00, irq= =3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc= 0841e14) at bus_if.c:162 #9 0xc026278e in isa_setup_intr (bus=3D0xc082d580, child=3D0xc0840c00, r= =3D0x0, flags=3D1, ihand=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0x= c0841e14) at ../../i386/isa/isa.c:252 #10 0xc0120178 in BUS_SETUP_INTR (dev=3D0xc082d580, child=3D0xc0840c00, irq= =3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc= 0841e14) at bus_if.c:162 #11 0xc026645e in ppc_setup_intr (bus=3D0xc0837d80, child=3D0xc0840c00, r= =3D0x0, flags=3D1, ihand=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0x= c0841e14) at ../../isa/ppc.c:1978 #12 0xc0120178 in BUS_SETUP_INTR (dev=3D0xc0837d80, child=3D0xc0840c00, irq= =3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc= 0841e14) at bus_if.c:162 #13 0xc012d660 in ppbus_setup_intr (bus=3D0xc0840d00, child=3D0xc0840c00, r= =3D0x0, flags=3D1, ihand=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0x= c0841e14) at ../../dev/ppbus/ppbconf.c:420 #14 0xc0120178 in BUS_SETUP_INTR (dev=3D0xc0840d00, child=3D0xc0840c00, irq= =3D0x0, flags=3D1, intr=3D0xc012d8d4 <ppiintr>, arg=3D0xc0840980, cookiep=3D0xc= 0841e14) at bus_if.c:162 #15 0xc012d96c in ppiopen (dev=3D0xc0840980, flags=3D3, fmt=3D8192, p=3D0xc= 5cc5f20) at ../../dev/ppbus/ppi.c:276 #16 0xc0176fc1 in spec_open (ap=3D0xc61d4e10) at ../../miscfs/specfs/spec_vnops.c:191 #17 0xc0176ec1 in spec_vnoperate (ap=3D0xc61d4e10) at ../../miscfs/specfs/spec_vnops.c:117 #18 0xc0220951 in ufs_vnoperatespec (ap=3D0xc61d4e10) at ../../ufs/ufs/ufs_vnops.c:2301 #19 0xc0171ae7 in vn_open (ndp=3D0xc61d4edc, fmode=3D3, cmode=3D1) at vnode= _if.h:189 #20 0xc016dad9 in open (p=3D0xc5cc5f20, uap=3D0xc61d4f80) at ../../kern/vfs_syscalls.c:994 #21 0xc025a3b6 in syscall (frame=3D{tf_fs =3D 47, tf_es =3D 47, tf_ds =3D 4= 7, tf_edi =3D -1077936964, tf_esi =3D -1077936972, tf_ebp =3D -107793705= 6, tf_isp =3D -971157548, tf_ebx =3D 1, tf_edx =3D 4, tf_ecx =3D 6720077= 76, tf_eax =3D 5, tf_trapno =3D 12, tf_err =3D 2, tf_eip =3D 671918804, t= f_cs =3D 31, tf_eflags =3D 659, tf_esp =3D -1077937100, tf_ss =3D 47}) at ../../i386/i386/trap.c:1073 #22 0xc024e8b6 in Xint0x80_syscall () #23 0x80483bd in ?? () (kgdb) frame 15 #15 0xc012d96c in ppiopen (dev=3D0xc0840980, flags=3D3, fmt=3D8192, p=3D0xc= 5cc5d80) at ../../dev/ppbus/ppi.c:276 276 BUS_SETUP_INTR(device_get_parent(ppidev), ppidev, p= pi->intr_resource, (kgdb) print (struct ppi_data) ppi $4 =3D {ppi_unit =3D -1065083904, ppi_flags =3D -1065088000, ppi_count =3D -1065088640, ppi_mode =3D -971145884, ppi_buffer =3D "x\001\022A\000\r\204A\000\f\204A\000\000\000\000\001\000\= 000\000O=D8\022A\200\t\204A\024\036\204A\224}\035=C6lU\022A\000\r\204A\000\= f\204A\000\000\000\000\001\000\000\000O=D8\022A\200\t\204A\024\036\204A=E0+= \032=C6\200\t\204A\200]I=C50\t\204A\003\000\000\000\000 \000\000\200]I=C5\0= 00\000\000\000=E0+\032=C6\200\001\000\000=A0m*A\000\000\000\000\000/*A=E0+\= 032=C6\000\000\000\000\200]I=C5=DC}\035=C6An\027A\020~\035=C6=E8}\035=C6Q\t= \"A\020~\035=C6\204~\035=C6=E7\032\027A\020~\035=C6\000\000\000\000\200\177= \035=C6\000=BA\215A=E0+\032=C6$~\035=C6\200\231\215A"..., intr_resource =3D 0xc5cc5d80, intr_cookie =3D 0xc61d7f80} (kgdb) print ppi $5 =3D (struct ppi_data *) 0xc0841c00 (kgdb) print ppi->intr_resource $6 =3D (struct resource *) 0x0 (kgdb) (kgdb) print unit $8 =3D 3229879296 (kgdb) print dev $9 =3D 0xc0840980 > The crash: >=20 > hawk:/home/mike# ./geekport > panic: nexus_setup_intr: NULL irq resource! >=20 > syncing disks... 6 6 > done > Uptime: 3m28s >=20 > dumping to dev #ad/0x20001, offset 73728 > dump ata0: resetting devices .. done > 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 4= 0 > 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 1= 5 > 14 13 12 11 10 9 8 7 6 5 4 3 2 1 succeeded > Automatic reboot in 15 seconds - press a key on the console to abort To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.05.10004210329220.28275-100000>