From owner-freebsd-current@FreeBSD.ORG Sun Mar 14 11:09:47 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4DFCD16A4CE; Sun, 14 Mar 2004 11:09:47 -0800 (PST) Received: from rwcrmhc12.comcast.net (rwcrmhc12.comcast.net [216.148.227.85]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3B94D43D31; Sun, 14 Mar 2004 11:09:47 -0800 (PST) (envelope-from kaarthik@comcast.net) Received: from the-saint.the-saint.localdomain (pcp06945825pcs.nrockv01.md.comcast.net[69.138.30.56]) by comcast.net (rwcrmhc12) with ESMTP id <2004031419094501400gqfsbe>; Sun, 14 Mar 2004 19:09:46 +0000 To: Lukas Ertl From: Kaarthik Sivakumar In-Reply-To: <20040314155729.F657@korben.in.tern> (Lukas Ertl's message of "Sun, 14 Mar 2004 15:58:13 +0100 (CET)") References: <86r7vvwkin.fsf@comcast.net> <20040314155729.F657@korben.in.tern> Date: Sun, 14 Mar 2004 14:09:44 -0500 Message-ID: <86llm32qkn.fsf@comcast.net> User-Agent: Gnus/5.1002 (Gnus v5.10.2) XEmacs/21.5 (celeriac, berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii cc: freebsd-current@FreeBSD.org Subject: Re: CD access panic on 5.2RC2 (similar to panic before for audio/data CD access) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Mar 2004 19:09:47 -0000 >>> "LE" == Lukas Ertl writes: LE> What's the panic message? Would it be possible for you to get a LE> coredump and a gdb backtrace out of that? Ok, here is a gdb backtrace. I have also put in some info about the last frame that called calltrap(). That doesnt seem to be same function that panic tells me about. The panic says that it stopped at devstat_remove_entry but the last frame before calltrap is g_destroy_provider. I guess I dont understand the kernel code well enough to know what is happening. I also noticed that when I accessed the CD using cd0 (using atapicam) then the panic doesnt happen. This only happens when I access it using acd0. atapicam is always compiled in the kernel. (Sorry about the long lines) (kgdb) bt #0 doadump () at ../../../kern/kern_shutdown.c:240 #1 0xc04e93c2 in boot (howto=260) at ../../../kern/kern_shutdown.c:372 #2 0xc04e96f7 in panic () at ../../../kern/kern_shutdown.c:550 #3 0xc043d832 in db_panic () at ../../../ddb/db_command.c:450 #4 0xc043d792 in db_command (last_cmdp=0xc069c340, cmd_table=0x0, aux_cmd_tablep=0xc066efb0, aux_cmd_tablep_end=0xc066efb4) at ../../../ddb/db_command.c:346 #5 0xc043d8d5 in db_command_loop () at ../../../ddb/db_command.c:472 #6 0xc04408d5 in db_trap (type=12, code=0) at ../../../ddb/db_trap.c:73 #7 0xc060b0ac in kdb_trap (type=12, code=0, regs=0xd89a1c44) at ../../../i386/i386/db_interface.c:171 #8 0xc061e0c6 in trap_fatal (frame=0xd89a1c44, eva=0) at ../../../i386/i386/trap.c:816 #9 0xc061dd92 in trap_pfault (frame=0xd89a1c44, usermode=0, eva=28) at ../../../i386/i386/trap.c:735 #10 0xc061d97d in trap (frame={tf_fs = 24, tf_es = 16, tf_ds = 16, tf_edi = 0, tf_esi = -1027875712, tf_ebp = -660988776, tf_isp = -660988816, tf_ebx = -1019462608, tf_edx = 0, tf_ecx = -1066768828, tf_eax = 1, tf_trapno = 12, tf_err = 0, tf_eip = -1068488413, tf_cs = 8, tf_eflags = 66051, tf_esp = -1066768864, tf_ss = 0}) at ../../../i386/i386/trap.c:420 #11 0xc060caa8 in calltrap () at {standard input}:94 #12 0xc04b8558 in g_destroy_provider (pp=0xc33c3c30) at ../../../geom/geom_subr.c:426 #13 0xc04b5775 in g_orphan_register (pp=0xc2bbdc80) at ../../../geom/geom_event.c:143 #14 0xc04b5850 in one_event () at ../../../geom/geom_event.c:169 #15 0xc04b5a15 in g_run_events () at ../../../geom/geom_event.c:202 #16 0xc04b68c5 in g_event_procbody () at ../../../geom/geom_kern.c:134 #17 0xc04d5dae in fork_exit (callout=0xc04b68a0 , arg=0x0, frame=0x0) at ../../../kern/kern_fork.c:793 (kgdb) fr 12 #12 0xc04b8558 in g_destroy_provider (pp=0xc33c3c30) at ../../../geom/geom_subr.c:426 426 devstat_remove_entry(pp->stat); (kgdb) l 421 KASSERT (pp->acw == 0, ("g_destroy_provider with acw")); 422 KASSERT (pp->acw == 0, ("g_destroy_provider with ace")); 423 g_cancel_event(pp); 424 LIST_REMOVE(pp, provider); 425 gp = pp->geom; 426 devstat_remove_entry(pp->stat); 427 g_free(pp); 428 if ((gp->flags & G_GEOM_WITHER)) 429 g_wither_geom(gp, 0); 430 } (kgdb) p *pp $1 = {name = 0x0, provider = {le_next = 0x0, le_prev = 0x0}, geom = 0x0, consumers = {lh_first = 0x0}, acr = 0, acw = 0, ace = 0, error = 0, orphan = {tqe_next = 0x0, tqe_prev = 0x0}, index = 0, mediasize = 0, sectorsize = 0, stripesize = 0, stripeoffset = 0, stat = 0x0, nstart = 0, nend = 0, flags = 0} (kgdb) p gp $2 = (struct g_geom *) 0xc2bbdc80 (kgdb) p *gp $5 = {name = 0xc1f4d5e0 "acd0", class = 0xc0675c00, geom = {le_next = 0x0, le_prev = 0xc0675c24}, consumer = {lh_first = 0x0}, provider = {lh_first = 0xc32a5380}, geoms = {tqe_next = 0xc2ab6b80, tqe_prev = 0xc2ab6a18}, rank = 1, start = 0xc0457ce0 , spoiled = 0, dumpconf = 0, access = 0xc0456cf0 , orphan = 0, ioctl = 0xc0456f60 , softc = 0xc2abb000, flags = 0} (kgdb) Thanks. kaarthik