From owner-freebsd-bugs@FreeBSD.ORG Fri Dec 5 17:05:58 2003 Return-Path: Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 991F716A4CE; Fri, 5 Dec 2003 17:05:58 -0800 (PST) Received: from mailbox.univie.ac.at (mail.univie.ac.at [131.130.1.27]) by mx1.FreeBSD.org (Postfix) with ESMTP id F007343FCB; Fri, 5 Dec 2003 17:05:55 -0800 (PST) (envelope-from l.ertl@univie.ac.at) Received: from dialin202.cc.univie.ac.at (dialin202.cc.univie.ac.at [131.130.202.202])hB615Ure091516; Sat, 6 Dec 2003 02:05:38 +0100 Date: Sat, 6 Dec 2003 02:05:25 +0100 (CET) From: Lukas Ertl To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org, current@FreeBSD.org In-Reply-To: <200311281110.hASBALHl043768@freefall.freebsd.org> Message-ID: <20031206015846.I651@korben.in.tern> References: <200311281110.hASBALHl043768@freefall.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE X-DCC-ZID-Univie-Metrics: mailbox 4251; Body=3 Fuz1=3 Fuz2=3 Subject: Re: kern/59747: usb dead after resume X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Dec 2003 01:05:58 -0000 > > >Category: kern > >Responsible: freebsd-bugs > >Synopsis: usb dead after resume > >Arrival-Date: Fri Nov 28 03:10:21 PST 2003 This is probably related: I'm now able to trigger a reproducable panic when having USB support compiled as a module and going through these steps: *) boot up *) suspend/resume *) kldload usb After a few seconds, I drop into ddb, at usb_softschedintr+0xf. This is the backtrace from kgdb: Script started on Fri Dec 5 23:55:04 2003 GNU gdb 5.2.1 (FreeBSD) Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you ar= e welcome to change it and/or distribute copies of it under certain condition= s. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-undermydesk-freebsd"... panic messages: --- Fatal trap 12: page fault while in kernel mode fault virtual address=09=3D 0x4 fault code=09=09=3D supervisor read, page not present instruction pointer=09=3D 0x8:0xc639025f stack pointer=09 =3D 0x10:0xd77bbcbc frame pointer=09 =3D 0x10:0xd77bbcc0 code segment=09=09=3D base 0x0, limit 0xfffff, type 0x1b =09=09=09=3D DPL 0, pres 1, def32 1, gran 1 processor eflags=09=3D interrupt enabled, resume, IOPL =3D 0 current process=09=09=3D 22 (irq11: cbb0 cbb1+++) Dumping 511 MB 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320 = 336 352 368 384 400 416 432 448 464 480 496 --- Reading symbols from /usr/obj/usr/src/sys/KORBEN/modules/usr/src/sys/module= s/acpi/acpi.ko.debug...done. Loaded symbols for /usr/obj/usr/src/sys/KORBEN/modules/usr/src/sys/modules/= acpi/acpi.ko.debug Reading symbols from /usr/obj/usr/src/sys/KORBEN/modules/usr/src/sys/module= s/linux/linux.ko.debug...done. Loaded symbols for /usr/obj/usr/src/sys/KORBEN/modules/usr/src/sys/modules/= linux/linux.ko.debug Reading symbols from /usr/obj/usr/src/sys/KORBEN/modules/usr/src/sys/module= s/usb/usb.ko.debug...done. Loaded symbols for /usr/obj/usr/src/sys/KORBEN/modules/usr/src/sys/modules/= usb/usb.ko.debug #0 doadump () at /usr/src/sys/kern/kern_shutdown.c:240 240=09=09dumping++; (kgdb) l *usb_schedsoftintr+0xf 0xc639025f is in usb_schedsoftintr (/usr/src/sys/dev/usb/usb.c:840). 835=09=09=09=09callout_reset(&bus->softi, 0, bus->methods->soft_intr, 836=09=09=09=09 bus); 837=09#endif /* __HAVE_GENERIC_SOFT_INTERRUPTS */ 838=09=09} 839=09#else 840=09 bus->methods->soft_intr(bus); 841=09#endif /* USB_USE_SOFTINTR */ 842=09} 843 844=09#if defined(__NetBSD__) || defined(__OpenBSD__) (kgdb) where #0 doadump () at /usr/src/sys/kern/kern_shutdown.c:240 #1 0xc044bf95 in db_fncall (dummy1=3D0, dummy2=3D0, dummy3=3D0, dummy4=3D0xd77bbac4 "=A0At=C0\f") at /usr/src/sys/ddb/db_command.c:548 #2 0xc044bce2 in db_command (last_cmdp=3D0xc0743840, cmd_table=3D0x0, aux_cmd_tablep=3D0xc06f9f70, aux_cmd_tablep_end=3D0xc06f9f74) at /usr/src/sys/ddb/db_command.c:346 #3 0xc044be25 in db_command_loop () at /usr/src/sys/ddb/db_command.c:472 #4 0xc044ee45 in db_trap (type=3D12, code=3D0) at /usr/src/sys/ddb/db_trap= =2Ec:73 #5 0xc0694bac in kdb_trap (type=3D12, code=3D0, regs=3D0xd77bbc7c) at /usr/src/sys/i386/i386/db_interface.c:171 #6 0xc06a5b66 in trap_fatal (frame=3D0xd77bbc7c, eva=3D0) at /usr/src/sys/i386/i386/trap.c:816 #7 0xc06a5832 in trap_pfault (frame=3D0xd77bbc7c, usermode=3D0, eva=3D4) at /usr/src/sys/i386/i386/trap.c:735 #8 0xc06a538d in trap (frame=3D {tf_fs =3D -1043267560, tf_es =3D -1043202032, tf_ds =3D 16, tf_edi = =3D 31, tf_esi =3D -988827648, tf_ebp =3D -679756608, tf_isp =3D -679756632= , tf_ebx =3D 63, tf_edx =3D 0, tf_ecx =3D -1056882688, tf_eax =3D -98882764= 8, tf_trapno =3D 12, tf_err =3D 0, tf_eip =3D -969342369, tf_cs =3D 8, tf_e= flags =3D 66194, tf_esp =3D -988827648, tf_ss =3D -679756580}) at /usr/src/= sys/i386/i386/trap.c:420 #9 0xc0696558 in calltrap () at {standard input}:94 #10 0xc6395a32 in uhci_intr1 (sc=3D0xc50fb000) at /usr/src/sys/dev/usb/uhci.c:1257 #11 0xc639587a in uhci_intr (arg=3D0xc50fb000) at /usr/src/sys/dev/usb/uhci.c:1172 #12 0xc0526448 in ithread_loop (arg=3D0xc1d1a800) at /usr/src/sys/kern/kern_intr.c:544 #13 0xc05250c0 in fork_exit (callout=3D0xc0526270 , arg=3D0x0= , frame=3D0x0) at /usr/src/sys/kern/kern_fork.c:793 (kgdb) fr 10 #10 0xc6395a32 in uhci_intr1 (sc=3D0xc50fb000) at /usr/src/sys/dev/usb/uhci.c:1257 1257=09=09usb_schedsoftintr(&sc->sc_bus); (kgdb) p sc $1 =3D (uhci_softc_t *) 0xc50fb000 (kgdb) p sc->sc_bus $2 =3D {bdev =3D 0xc4d1eb00, methods =3D 0x0, pipe_size =3D 0, root_hub =3D= 0x0, devices =3D {0x0 }, needs_explore =3D 0 '\0', use_polling =3D 0 '\0', usbctl =3D 0x0, stats =3D {uds_requests =3D {0, 0= , 0, 0}}, intr_context =3D 0, no_intrs =3D 1, usbrev =3D 2, dmatag =3D 0x0} (kgdb) p *sc $3 =3D {sc_bus =3D {bdev =3D 0xc4d1eb00, methods =3D 0x0, pipe_size =3D 0, root_hub =3D 0x0, devices =3D {0x0 }, needs_explore =3D 0 '\0', use_polling =3D 0 '\0', usbctl =3D 0x0, stats= =3D { uds_requests =3D {0, 0, 0, 0}}, intr_context =3D 0, no_intrs =3D 1, usbrev =3D 2, dmatag =3D 0x0}, iot =3D 0, ioh =3D 6176, sc_size =3D 0, ih =3D 0xc4d72680, io_res =3D 0xc4e8ff40, irq_res =3D 0xc4d169c0, sc_pframes =3D 0x0, sc_dma =3D {block =3D 0x0, offs =3D 0, len =3D 0}, sc= _vframes =3D {{ htd =3D 0x0, etd =3D 0x0, hqh =3D 0x0, eqh =3D 0x0, bandwidth =3D 0} }, sc_lctl_start =3D 0x0, sc_lctl_end =3D 0x0, sc_hctl_start =3D 0x0, sc_hctl_end =3D 0x0, sc_bulk_start =3D 0x0, sc_bulk_end =3D 0x0, sc_last_qh =3D 0x0, sc_loops = =3D 0, sc_freetds =3D 0x0, sc_freeqhs =3D 0x0, sc_free_xfers =3D {stqh_first =3D= 0x0, stqh_last =3D 0x0}, sc_addr =3D 0 '\0', sc_conf =3D 0 '\0', sc_saved_sof =3D 0 '\0', sc_saved_frnum =3D 0, sc_isreset =3D 0 '\0', sc_suspend =3D 0 '\0', sc_dying =3D 1 '\001', sc_intrhead =3D {lh_first = =3D 0x0}, sc_ival =3D 0, sc_intr_xfer =3D 0x0, sc_poll_handle =3D {c_links =3D {sle= =3D { sle_next =3D 0x0}, tqe =3D {tqe_next =3D 0x0, tqe_prev =3D 0x0}}, c= _time =3D 0, c_arg =3D 0x0, c_func =3D 0, c_flags =3D 0}, sc_vendor =3D "Intel\0\0\0\0\0\0\0\0\0\0", sc_id_vendor =3D 0, sc_child = =3D 0x0} (kgdb) quit Script done on Fri Dec 5 23:56:06 2003 --=20 Lukas Ertl eMail: l.ertl@univie.ac.at UNIX Systemadministrator Tel.: (+43 1) 4277-14073 Vienna University Computer Center Fax.: (+43 1) 4277-9140 University of Vienna http://mailbox.univie.ac.at/~le/