Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Sep 2004 10:07:47 -0400
From:      John Baldwin <jhb@FreeBSD.org>
To:        freebsd-hackers@FreeBSD.org
Subject:   Re: Dell gx280 and acpi problems
Message-ID:  <200409231007.47467.jhb@FreeBSD.org>
In-Reply-To: <20040923082945.AC5EC43D4C@mx1.FreeBSD.org>
References:  <20040923082945.AC5EC43D4C@mx1.FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 23 September 2004 04:29 am, Danny Braniss wrote:
> > On Wednesday 22 September 2004 04:58 am, Danny Braniss wrote:
> > > could some acpi expert shed some light?
> > >
> > > -current panics on boot with BIOS default settings (Suspend Mode is S3)
> > > fix: set Power Management/Suspend Mode to S1 in BIOS
> > >
> > > disabling ACPI on boot is not good, since this box has no PS/2, and the
> > > USB keyboard/mouse don't work with ACPI off.
> > >
> > > the acpi dumps are available from:
> > > 	ftp://ftp.cs.huji.ac.il/users/danny/freebsd/gx280
> > >
> > > this is the panic:
> > >
> > >
> > > KDB: debugger backends: ddb
> > > KDB: current backend: ddb
> > > Copyright (c) 1992-2004 The FreeBSD Project.
> > > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993,
> > > 1994 The Regents of the University of California. All rights reserved.
> > > FreeBSD 5.3-BETA5 #14: Tue Sep 21 13:44:32 IDT 2004
> > >     danny@new-dev:/r+d/obj/new-dev/r+d/5.3/src/sys/HUJI
> > > Timecounter "i8254" frequency 1193182 Hz quality 0
> > > CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (2992.52-MHz 686-class CPU)
> > >   Origin = "GenuineIntel"  Id = 0xf34  Stepping = 4
> > >
> > > Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PG
> > >E,MC A, CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
> > > Hyperthreading: 2 logical CPUs
> > > real memory  = 1063813120 (1014 MB)
> > > avail memory = 1031565312 (983 MB)
> > > kernel trap 12 with interrupts disabled
> > >
> > >
> > > Fatal trap 12: page fault while in kernel mode
> > > cpuid = 0; apic id = 00
> > > fault virtual address   = 0x1c
> > > fault code              = supervisor write, page not present
> > > instruction pointer     = 0x8:0xc075dab5
> > > stack pointer           = 0x10:0xc0c21be0
> > > frame pointer           = 0x10:0xc0c21cac
> > > 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         = 0 ()
> > > [thread 0]
> > > Stopped at      vm_fault+0x1b1: lock cmpxchgl   %ecx,0x1c(%edx)
> > > db> trace
> > > vm_fault(c103a000,c1004000,1,0,c08e36c0) at vm_fault+0x1b1
> > > trap_pfault(c0c21d14,0,c1004c29) at trap_pfault+0x184
> > > trap(fffd0018,c1000010,c0c20010,c1004bfd,7) at trap+0x2f1
> > > calltrap() at calltrap+0x5
> > > --- trap 0xc, eip = 0xc0a18574, esp = 0xc0c21d54, ebp = 0xc0c21d74 ---
> > > madt_probe(c22264f0,c08bb1f0,c0c21d98,c05e8302,0) at madt_probe+0x174
> > > apic_init(0,c1ec00,c1e000,0,c0441225) at apic_init+0x47
> > > mi_startup() at mi_startup+0x96
> > > begin() at begin+0x2c
> >
> > Can you do a 'gdb kernel.debug' and then do 'l madt_probe+0x174' and
> > e-mail the results?
>
> I think i'm doing something wrong :-), tip -38400 com1 works fine,
> Type '?' for a list of commands, 'help' for more detailed help.
> OK boot -d
> /boot/kernel/acpi.ko text=0x3fa30 data=0x1be4+0x110c
> syms=[0x4+0x72a0+0x4+0x9743]
> GDB: debug ports: sio
> GDB: current port: sio
> KDB: debugger backends: ddb gdb
> KDB: current backend: ddb
> KDB: enter: Boot flags requested debugger
> [thread 0]
> Stopped at      kdb_enter+0x2b: nop
> db> gdb
> Step to enter the remote GDB backend.
>
> backing out of tip via ~.
>
>
> shuttle-2# gdb -b 38400 kernel.debug
> GNU gdb 6.1.1 [FreeBSD]
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you
> are welcome to change it and/or distribute copies of it under certain
> conditions. 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-marcel-freebsd"...
> Ready to go.  Enter 'tr' to connect to the remote target
> with /dev/cuaa0, 'tr /dev/cuaa1' to connect to a different port
> or 'trf portno' to connect to the remote target with the firewire
> interface.  portno defaults to 5556.
>
> Type 'getsyms' after connection to load kld symbols.
>
> If you're debugging a local system, you can use 'kldsyms' instead
> to load the kld symbols.  That's a less obnoxious interface.
> (gdb) tr /dev/cuaa0
> Ignoring packet error, continuing...
> Ignoring packet error, continuing...
> Ignoring packet error, continuing...
> Couldn't establish connection to remote target
> Malformed response to offset query, timeout
> (gdb)

You don't have to do the gdb during the panic.  You just need access to the 
kernel.debug corresponding to the kernel you are booting.  Is this a custom 
kernel on the box or are you doing an install?  If you are doing an install, 
try disabling apic support by entering 'set hint.apic.0.disabled=1' at the 
loader prompt and install that way.  Then, once the box is running, build a 
debug kernel, reproduce the panic, get the instruction pointer address, and 
then fire up gdb on the kernel.debug file and do 'l *<value of instruction 
pointer>'.

-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200409231007.47467.jhb>