Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Feb 2008 00:11:26 +0100
From:      Juergen Lock <nox@jelal.kn-bremen.de>
To:        John Marino <mfl-commissioner@marino.st>
Cc:        freebsd-current@freebsd.org
Subject:   Re: 7.0 RC2 kernel panic with Kqemu/AMD64
Message-ID:  <20080217231126.GA68779@saturn.kn-bremen.de>
In-Reply-To: <55528.82.234.78.29.1203252678.squirrel@secure.synsport.net>
References:  <43555.82.234.78.29.1203154742.squirrel@secure.synsport.net> <20080216175811.GA33393@saturn.kn-bremen.de> <47B7352B.1040302@marino.st> <20080216210731.GA40417@saturn.kn-bremen.de> <55528.82.234.78.29.1203252678.squirrel@secure.synsport.net>

index | next in thread | previous in thread | raw e-mail

On Sun, Feb 17, 2008 at 06:51:18AM -0600, John Marino wrote:
> Hello Juergen,
> I decided to build a debug kernel as you suggested with DDB, KDB,
> KDB_TRACE, and KDB_UNATTENDED as you suggested.  The first time the kernel
> panicked, I did not get a dump, but the system did save the second panic. 
> The backtrace is about the same, but the initial information looks much
> better.
> 
> I hope this helps,
> John
> 
> 
> draco-root# kgdb kernel.debug /usr/local/crash/vmcore.1
> [GDB will not be able to debug user-mode threads:
> /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
> 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 "amd64-marcel-freebsd".
> 
> Unread portion of the kernel message buffer:
> kernel
> 
> tFraatpa l trap 12 wi1t2h:  interpraugpet sf aduilsta bwlheidle
>  i
> n
>  Fkaetranle lt rmaopd e1
> :c pupirdi v=i l1e;g eadp iicn sitdr u=c tion0 1f
> afualutl tw hviilret uianl  kaedrdnreels sm	o=d e0
> xc0p
> ufiadu l=t  0;c oadpei	c	 =i ds u=p e0r0v
> iisnosrt rruecatdi odna tpao,i nptaegre	 =n o0tx 2pfr3e0s:en0tx
> fifnfsftfrfufcft8i0o8n3 bpbocidn
> tsetra	c=k  0pxo8i:n0txer	 f f f f f f f f=8 004x710b:a01x5f
> fsftfafcfk fpfoaibn9tde6r6	e 0
>  f r a m e  =p o0ixn1t0e:r0	x    f f f f f=f f0fxa1b09:d06xbcf0f
> fffrfafmfef 8p0o9i8n1tceer0
>  c o d e   s e g=m e0nxt1		0=: 0bxase f0fxf0f,f flfifmaibt9 d06xc00,0
> tcyopdee  0sxe0gm
> e	nt				==  DbPaLs e0 ,0 xp0r,e sl i0m,i tl o0nxg f0f,f fdfe,f32 0, gran 0
> kernel trap 12 with interrupts disabled

OK looks like indeed both cpus are crashing, maybe try setting
PRINTF_BUFR_SIZE as others have suggested.
> 
> 
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address	= 0xffffffffffffffd3
> fault code		= supervisor write data, page not present
> instruction pointer	= 0x8:0xffffff00010e1680

 OK I doubt thats inside the kernel, but you could try doing
`i li *0xffffff00010e1680' in kgdb to make sure...

> stack pointer	        = 0x10:0xffffffffab9d64e0
> frame pointer	        = 0x10:0xffffffff80a93640
> code segment		= base 0x0, limit 0xfffff, type 0x1b
> 			= DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags	= resume, IOPL = 0
> current process		= 999 (qemu-system-x86_64)
> trap number		= 12
> panic: page fault
> cpuid = 0
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
> panic() at panic+0x17a
> trap_fatal() at trap_fatal+0x29f
> trap() at trap+0x242
> calltrap() at calltrap+0x8
> --- trap 0xc, rip = 0xffffff00010e1680, rsp = 0xffffffffab9d64e0, rbp =
> 0xffffffff80a93640 ---
> dmapbase() at 0xffffff00010e1680
> Uptime: 29m47s
> Dumping 1983 MB (2 chunks)
>   chunk 0: 1MB (156 pages) ... ok
>   chunk 1: 1983MB (507568 pages) 1967 1951 1935 1919 1903 1887 1871 1855
> 1839 1823 1807 1791 1775 1759 1743 1727 1711 1695 1679 1663 1647 1631
> 1615 1599 1583 1567 1551 1535 1519 1503 1487 1471 1455 1439 1423 1407
> 1391 1375 1359 1343 1327 1311 1295 1279 1263 1247 1231 1215 1199 1183
> 1167 1151 1135 1119 1103 1087 1071 1055 1039 1023 1007 991 975 959 943
> 927 911 895 879 863 847 831 815 799 783 767 751 735 719 703 687 671 655
> 639 623 607 591 575 559 543 527 511 495 479 463 447 431 415 399 383 367
> 351 335 319 303 287 271 255 239 223 207 191 175 159 143 127 111 95 79 63
> 47 31 15
> 
> #0  doadump () at pcpu.h:194
> 194		__asm __volatile("movq %%gs:0,%0" : "=r" (td));
> 
> 
> (kgdb) backtrace
> #0  doadump () at pcpu.h:194
> #1  0xffffffff80486dd8 in boot (howto=260) at
> /usr/src/sys/kern/kern_shutdown.c:409
> #2  0xffffffff80487237 in panic (fmt=Variable "fmt" is not available.) at
> /usr/src/sys/kern/kern_shutdown.c:563
> #3  0xffffffff8074857f in trap_fatal (frame=0xc, eva=Variable "eva" is not
> available.) at /usr/src/sys/amd64/amd64/trap.c:724
> #4  0xffffffff80749272 in trap (frame=0xffffffffab9d6430) at
> /usr/src/sys/amd64/amd64/trap.c:251
> #5  0xffffffff8072e60e in calltrap () at
> /usr/src/sys/amd64/amd64/exception.S:169
> #6  0xffffffff8047ba90 in _thread_lock_flags (td=0xffffffffab9d66e0,
> opts=Variable "opts" is not available.) at
> /usr/src/sys/kern/kern_mutex.c:523

 So thats how the backtrace ended, next line was the kdgb prompt?

 Anyway I'm still not enlightened yet what the actual problem might be...
	Juergen


home | help

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