Date: Sat, 22 Jan 2011 16:01:58 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-usb@freebsd.org Cc: Marcin Wisnicki <mwisnicki+freebsd@gmail.com> Subject: Re: page fault on device disconnect Message-ID: <201101221601.58195.hselasky@c2i.net> In-Reply-To: <ih7ieg$lj0$1@dough.gmane.org> References: <ih7ieg$lj0$1@dough.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 19 January 2011 21:44:01 Marcin Wisnicki wrote: > I've accidentally cut power to my self-powered USB hdd enclosure with > UFS+gjournal on GELI. > The enclosure also acts as a hub and has single usb memory stick plugged > in but not mounted. > > I kind of expected to have panic in VFS as is typical in such situations > but instead it happened earlier in the stack: > > ugen3.2: <vendor 0x058f> at usbus3 (disconnected) > uhub4: at uhub3, port 1, addr 2 (disconnected) > > > Fatal trap 12: page fault while in kernel mode > cpuid = 0; apic id = 00 > fault virtual address = 0xea7820aa > fault code = supervisor read, page not present > instruction pointer = 0x20:0xc0710d64 > stack pointer = 0x28:0xe4239afc > frame pointer = 0x28:0xe4239b0c > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 15 (usbus3) > trap number = 12 > panic: page fault > cpuid = 0 > KDB: stack backtrace: > db_trace_self_wrapper(c076c1d5,d31206e,2c66000a,70797420,78302065,...) at > db_trace_self_wrapper+0x26 > kdb_backtrace(c078804a,0,c075dd75,e42399a8,0,...) at kdb_backtrace+0x2a > panic(c075dd75,c0788d33,c3e43438,1,1,...) at panic+0x117 > trap_fatal(c1190000,ea782000,1,0,c3e432d0,...) at trap_fatal+0x325 > trap_pfault(0,0,9ed23521,c3e432d0,c3d82000,...) at trap_pfault+0x250 > trap(e4239abc) at trap+0x453 > calltrap() at calltrap+0x6 > --- trap 0xc, eip = 0xc0710d64, esp = 0xe4239afc, ebp = 0xe4239b0c --- > bus_dma_tag_destroy(ea78207a,c44767d0,c4476400,c44c10a0,e4239b44,...) at > bus_dma_tag_destroy+0x14 > usb_dma_tag_unsetup(c4476400,0,c09cc592,491,c44764b0,...) at > usb_dma_tag_unsetup+0x3e > usbd_transfer_unsetup_sub(c3e60dd4,0,c09cc592,4f0,0,...) at > usbd_transfer_unsetup_sub+0xa0 > usbd_transfer_unsetup(c44c10a0,1,c44c1200,1,0,...) at > usbd_transfer_unsetup+0x1ad > uhub_detach(c44c1200,c3d8f860,c079b618,e4239bc4,c0527199,...) at > uhub_detach+0x3a device_detach(c44c1200,c09cbde6,c4466bd0,1,2,...) at > device_detach+0x68 usb_detach_device(c447d000,ff,2,c447d0f0,c447d000,...) > at usb_detach_device+0x3f > usb_unconfigure(c44c9600,c09bb1f0,c3fda440,7f2,c3e60c78,...) at > usb_unconfigure+0x36 usb_free_device(c447d000,0,1,10,c3e60dd4,...) at > usb_free_device+0x18a uhub_explore(c3eba400,0,c09cb510,f7,c3e60d5c,...) at > uhub_explore+0x128 > usb_bus_explore(c3e60d5c,c3e60dd4,c09cc4e1,6c,c3e60d0c,...) at > usb_bus_explore+0xb8 > usb_process(c3e60cfc,e4239d28,4900002,18080458,3019040,...) at > usb_process+0xaa fork_exit(c09c5890,c3e60cfc,e4239d28) at fork_exit+0x90 > fork_trampoline() at fork_trampoline+0x8 > --- trap 0, eip = 0, esp = 0xe4239d60, ebp = 0 --- > Uptime: 30d19h59m54s > (da0:umass-sim0:0:0:0): SYNCHRONIZE CACHE(10). CDB: 35 0 0 0 0 0 0 0 0 0 > (da0:umass-sim0:0:0:0): SCSI sense: Error code 0x3e > Could you show more dmesg? Also try to build a kernel with the following options: > options KDB > options BREAK_TO_DEBUGGER > options DDB > makeoptions DEBUG=-g > options INVARIANTS > options INVARIANT_SUPPORT > options WITNESS > options DEBUG_LOCKS > options DEBUG_VFS_LOCKS > options DIAGNOSTIC > options SW_WATCHDOG > options KTRACE # ktrace(1) support > options SOCKBUF_DEBUG > options DEBUG_MEMGUARD > > > # FreeBSD 8.2-PRERELEASE #0: Sun Dec 19 19:59:25 CET 2010 > > It's not really important to me but if someone wants to work on it > I can provide more info. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101221601.58195.hselasky>