Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Apr 2009 05:58:38 +0200
From:      deeptech71@gmail.com
To:        freebsd-chat@freebsd.org
Subject:   Re: diagnosing freezes (DRI?)
Message-ID:  <49E6ACEE.6080301@gmail.com>

next in thread | raw e-mail | index | archive | help
I can reliably (~40%) reproduce a freeze, which I think is related.

Using the GENERIC debug kernel built from SVN HEAD:

# cd /usr/obj/usr/src/sys/GENERIC/
# kgdb kernel.debug /var/crash/vmcore.0
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"... 


Unread portion of the kernel message buffer:
<118>Apr 16 04:22:24  syslogd: exiting on signal 15
Waiting (max 60 seconds) for system process `vnlru' to stop...done
Waiting (max 60 seconds) for system process `bufdaemon' to stop...done
Wai
tSiynngc i(nmga xd is6k0s ,s evcnoonddess)  rfeomra isnyisntge.m. .pr0o 
cess `syncer' to stop...0 done 

All buffers synced. 

Copyright (c) 1992-2009 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 is a registered trademark of The FreeBSD Foundation. 

FreeBSD 8.0-CURRENT #0 r191101: Wed Apr 15 17:29:58 UTC 2009 

     devhc@:/usr/obj/usr/src/sys/GENERIC 

WARNING: WITNESS option enabled, expect reduced performance. 

Timecounter "i8254" frequency 1193182 Hz quality 0 

CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz (2798.67-MHz 686-class CPU) 

   Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9 

 
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> 

   Features2=0x4400<CNXT-ID,xTPR> 

   Logical CPUs per core: 2 

real memory  = 536870912 (512 MB) 

avail memory = 506023936 (482 MB) 

ACPI APIC Table: <A M I  OEMAPIC > 

FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs 

  cpu0 (BSP): APIC ID:  0 

  cpu1 (AP/HT): APIC ID:  1 

ioapic0 <Version 2.0> irqs 0-23 on motherboard 

kbd1 at kbdmux0 

acpi0: <A M I OEMXSDT> on motherboard 

acpi0: [ITHREAD] 

acpi0: Power Button (fixed) 

acpi0: reservation of 0, a0000 (3) failed 

acpi0: reservation of 100000, 1fef0000 (3) failed 

Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 

acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0 

pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 

pci0: <ACPI PCI bus> on pcib0 

agp0: <Intel 82865 host to AGP bridge> on hostb0 

pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0 

pci1: <ACPI PCI bus> on pcib1 

vgapci0: <VGA-compatible display> port 0xd000-0xd0ff mem 
0xd0000000-0xdfffffff,0xfbee0000-0xfbeeffff irq 16 at device 0.0 on pci1 

vgapci1: <VGA-compatible display> mem 
0xe0000000-0xefffffff,0xfbef0000-0xfbefffff at device 0.1 on pci1 

uhci0: <Intel 82801EB (ICH5) USB controller USB-A> port 0xc880-0xc89f 
irq 16 at device 29.0 on pci0 

uhci0: [ITHREAD] 

uhci0: LegSup = 0x2030 

usbus0: <Intel 82801EB (ICH5) USB controller USB-A> on uhci0 

uhci1: <Intel 82801EB (ICH5) USB controller USB-B> port 0xcc00-0xcc1f 
irq 19 at device 29.1 on pci0 

uhci1: [ITHREAD] 

uhci1: LegSup = 0x2030 

usbus1: <Intel 82801EB (ICH5) USB controller USB-B> on uhci1 

ehci0: <Intel 82801EB/R (ICH5) USB 2.0 controller> mem 
0xfbdffc00-0xfbdfffff irq 23 at device 29.7 on pci0 

ehci0: [ITHREAD] 

usbus2: EHCI version 1.0 

usbus2: <Intel 82801EB/R (ICH5) USB 2.0 controller> on ehci0 

pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0 

pci2: <ACPI PCI bus> on pcib2 

skc0: <3Com 3C940 Gigabit Ethernet> port 0xe800-0xe8ff mem 
0xfbffc000-0xfbffffff irq 22 at device 5.0 on pci2 

skc0: 3Com Gigabit LOM (3C940) rev. (0x1) 

sk0: <Marvell Semiconductor, Inc. Yukon> on skc0 

sk0: Ethernet address: 00:0e:a6:35:15:91 

miibus0: <MII bus> on sk0 

e1000phy0: <Marvell 88E1011 Gigabit PHY> PHY 0 on miibus0 

e1000phy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 
1000baseTX-FDX, auto
skc0: [ITHREAD] 

pcm0: <Creative CT5880-E> port 0xec00-0xec3f irq 20 at device 12.0 on 
pci2
pcm0: <eMicro EM28028 AC97 Codec> 

pcm0: [ITHREAD] 

pcm0: <Playback: DAC1,DAC2 / Record: ADC> 

isab0: <PCI-ISA bridge> at device 31.0 on pci0 

isa0: <ISA bus> on isab0 

atapci0: <Intel ICH5 UDMA100 controller> port 
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 31.1 on pci0 

ata0: <ATA channel 0> on atapci0 

ata0: [ITHREAD] 

ata1: <ATA channel 1> on atapci0 

ata1: [ITHREAD] 

pci0: <serial bus, SMBus> at device 31.3 (no driver attached) 

acpi_button0: <Power Button> on acpi0 

atrtc0: <AT realtime clock> port 0x70-0x71 irq 8 on acpi0 

atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0 

atkbd0: <AT Keyboard> irq 1 on atkbdc0 

kbd0 at atkbd0 

atkbd0: [GIANT-LOCKED] 

atkbd0: [ITHREAD] 

uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 

uart0: [FILTER] 

uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0 

uart1: [FILTER] 

ppc0: <Parallel port> port 0x378-0x37f,0x778-0x77b irq 7 drq 3 on acpi0 

ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode 

ppc0: FIFO with 16/16/9 bytes threshold 

ppc0: [ITHREAD] 

ppbus0: <Parallel port bus> on ppc0 

plip0: <PLIP network interface> on ppbus0 

plip0: [ITHREAD] 

lpt0: <Printer> on ppbus0 

lpt0: [ITHREAD] 

lpt0: Interrupt-driven port 

ppi0: <Parallel I/O> on ppbus0 

cpu0: <ACPI CPU> on acpi0 

p4tcc0: <CPU Frequency Thermal Control> on cpu0 

cpu1: <ACPI CPU> on acpi0 

p4tcc1: <CPU Frequency Thermal Control> on cpu1 

pmtimer0 on isa0 

orm0: <ISA Option ROM> at iomem 0xc0000-0xccfff pnpid ORM0000 on isa0 

sc0: <System console> at flags 0x100 on isa0 

sc0: VGA <16 virtual consoles, flags=0x300> 

vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on 
isa0
Timecounters tick every 1.000 msec 

usbus0: 12Mbps Full Speed USB v1.0 

usbus1: 12Mbps Full Speed USB v1.0 

usbus2: 480Mbps High Speed USB v2.0 

ad0: 78167MB <Maxtor 6Y080P0 YAR41BW0> at ata0-master UDMA100 

ugen0.1: <Intel> at usbus0 

uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0 

ugen1.1: <Intel> at usbus1 

uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1 

ugen2.1: <Intel> at usbus2 

uhub2: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2 

acd0: DMA limited to UDMA33, controller found non-ATA66 cable 

GEOM: ad0s1: geometry does not match label (255h,63s != 16h,63s). 

acd0: DVDR <SONY DVD RW DW-D26A/JYS2> at ata1-master UDMA33 

SMP: AP CPU #1 Launched! 

WARNING: WITNESS option enabled, expect reduced performance. 

GEOM_LABEL: Label for provider ad0s2 is msdosfs/WINXP. 

GEOM_LABEL: Label for provider ad0s3 is ntfs/STORAGE. 

GEOM_LABEL: Label for provider ad0s1a is ufsid/49cf0dead38cbdfd. 

Root mount waiting for: usbus2 usbus1 usbus0 

uhub0: 2 ports with 2 removable, self powered 

uhub1: 2 ports with 2 removable, self powered 

Root mount waiting for: usbus2 

uhub2: 4 ports with 4 removable, self powered 

Root mount waiting for: usbus2 

Trying to mount root from ufs:/dev/ad0s1a 

<118>Entropy harvesting: 

<118> interrupts 

<118> ethernet 

<118> point_to_point 

<118> kickstart 

<118>. 

GEOM_LABEL: Label ufsid/49cf0dead38cbdfd removed. 

<118>/dev/ad0s1a: FILE SYSTEM CLEAN; SKIPPING CHECKS 

<118>/dev/ad0s1a: clean, 576271 free (53999 frags, 65284 blocks, 1.3% 
fragmentation) 

GEOM_LABEL: Label for provider ad0s1a is ufsid/49cf0dead38cbdfd. 

ugen0.2: <AIPTEK International> at usbus0 

GEOM_LABEL: Label ufsid/49cf0dead38cbdfd removed. 

ums0: <AIPTEK International USB Multi-Smart Mouse, class 0/0, rev 
2.00/16.11, addr 2> on usbus0 

ums0: 5 buttons and [XYZ] coordinates ID=1 

GEOM_LABEL: Label msdosfs/WINXP removed. 

<118>/etc/rc: WARNING: $hostname is not set -- see rc.conf(5). 

<118>Starting Network: sk0. 

<118>Starting Network: lo0. 

<118>Apr 16 04:23:08  syslogd: bind: Can't assign requested address 

<118>Apr 16 04:23:08  syslogd: bind: Can't assign requested address 

<118>syslogd: 

<118>child pid 546 exited with return code 1 

<118> 

<118>/etc/rc: WARNING: failed to start syslogd 

<118>moused: 

<118>unable to open /dev/psm0: No such file or directory 

<118> 

<118>/etc/rc: WARNING: $dbus_enable is not set properly - see 
rc.conf(5).
<118>Starting dbus. 

<118>Starting hald. 

<118>Configuring syscons: 

<118> blanktime 

<118>. 

<118> 

<118>Thu Apr 16 04:23:10 UTC 2009 

drm0: <ATI Radeon AP 9600> on vgapci0 

vgapci0: child drm0 requested pci_enable_busmaster 

info: [drm] AGP at 0xf0000000 128MB 

info: [drm] Initialized radeon 1.29.0 20080528 

info: [drm] Setting GART location based on new memory map 

info: [drm] Loading R300 Microcode 

info: [drm] Num pipes: 1 

info: [drm] writeback test succeeded in 1 usecs 

drm0: [ITHREAD] 

lock order reversal: 

  1st 0xc31a5270 bufwait (bufwait) @ /usr/src/sys/kern/vfs_bio.c:2549 

  2nd 0xc39a3400 dirhash (dirhash) @ 
/usr/src/sys/ufs/ufs/ufs_dirhash.c:275
KDB: stack backtrace: 

db_trace_self_wrapper(c0c2ebcc,d644b860,c0896895,c088879b,c0c319b1,...) 
at db_trace_self_wrapper+0x26 

kdb_backtrace(c088879b,c0c319b1,c3524a80,c3527e18,d644b8bc,...) at 
kdb_backtrace+0x29 

_witness_debugger(c0c319b1,c39a3400,c0c50e61,c3527e18,c0c50afa,...) at 
_witness_debugger+0x25 

witness_checkorder(c39a3400,9,c0c50afa,113,0,...) at 
witness_checkorder+0x839
_sx_xlock(c39a3400,0,c0c50afa,113,c3b4c7c0,...) at _sx_xlock+0x85 

ufsdirhash_acquire(c31a5210,d644b9d4,128,cec0baf0,d644b98c,...) at 
ufsdirhash_acquire+0x35 

ufsdirhash_add(c3b4c7c0,d644b9d4,af0,d644b978,d644b97c,...) at 
ufsdirhash_add+0x13 

ufs_direnter(c3b5ca78,c3df4860,d644b9d4,d644bbe0,0,...) at 
ufs_direnter+0x729
ufs_makeinode(d644bbe0,d644bb4c,d644bc04,d644bb1c,c0b70e35,...) at 
ufs_makeinode+0x519 

ufs_create(d644bc04,d644bc18,0,d644bb4c,d644bbb4,...) at ufs_create+0x30 

VOP_CREATE_APV(c0d2fc20,d644bc04,68,1a4,c39a1aac,...) at 
VOP_CREATE_APV+0xa5
uipc_bind(c3dc3000,c3741b00,c3c80230,d644bc60,c08c0049,...) at 
uipc_bind+0x30e
sobind(c3dc3000,c3741b00,c3c80230,1a,c38d5658,...) at sobind+0x23 

kern_bind(c3c80230,3,c3741b00,c3741b00,80906a4,...) at kern_bind+0x79 

bind(c3c80230,d644bcf8,c,c0c321f2,c0d0ed20,...) at bind+0x46 

syscall(d644bd38) at syscall+0x2a3 

Xint0x80_syscall() at Xint0x80_syscall+0x20 

--- syscall (104, FreeBSD ELF32, bind), eip = 0x2818a983, esp = 
0xbfbfe96c, ebp = 0xbfbfea68 --- 

<118>Apr 16 04:24:28 su: devhc to root on /dev/pts/1 

Kernel page fault with the following non-sleepable locks held: 

exclusive sleep mutex drmdev (drmdev) r = 0 (0xc373f860) locked @ 
/usr/src/sys/modules/drm/drm/../../../dev/drm/drm_drv.c:777 

KDB: stack backtrace: 

db_trace_self_wrapper(c0c2ebcc,d67d4980,c0896895,c3d40457,309,...) at 
db_trace_self_wrapper+0x26 

kdb_backtrace(c3d40457,309,ffffffff,c0eba8c4,d67d49b8,...) at 
kdb_backtrace+0x29
_witness_debugger(c0c30f5d,d67d49cc,4,1,0,...) at _witness_debugger+0x25 

witness_warn(5,0,c0c62807,0,c42087ec,...) at witness_warn+0x1fd 

trap(d67d4a58) at trap+0x152 

calltrap() at calltrap+0x6 

--- trap 0xc, eip = 0xc0b611b6, esp = 0xd67d4a98, ebp = 0xd67d4b48 --- 

slow_copyin(c373f800,c4103300,c42e64e0,d67d4b64,0,...) at 
slow_copyin+0x6
radeon_cp_texture(c373f800,c42e64e0,c4103300,309,c0c26218,...) at 
radeon_cp_texture+0x199 

drm_ioctl(c39d4e00,c018644e,c42e64e0,3,c40afaf0,...) at drm_ioctl+0x356 

devfs_ioctl_f(c38c7150,c018644e,c42e64e0,c38d4700,c40afaf0,...) at 
devfs_ioctl_f+0xf8 

kern_ioctl(c40afaf0,24,c018644e,c42e64e0,18901f0,...) at 
kern_ioctl+0x1dd
ioctl(c40afaf0,d67d4cf8,c,c0c65279,c0d0e870,...) at ioctl+0x134 

syscall(d67d4d38) at syscall+0x2a3 

Xint0x80_syscall() at Xint0x80_syscall+0x20 

--- syscall (54, FreeBSD ELF32, ioctl), eip = 0x2834ec67, esp = 
0xbfbf944c, ebp = 0xbfbf9468 --- 



Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x3f561000
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc0b611b6
stack pointer           = 0x28:0xd67d4a98
frame pointer           = 0x28:0xd67d4b48
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         = 1094 (initial thread)
trap number             = 12
panic: page fault
cpuid = 0
Uptime: 4m53s
Physical memory: 494 MB
Dumping 107 MB: 92 76 60 44 28 12

Reading symbols from 
/boot/kernel.GENERIC.r191101.debug/snd_es137x.ko...Reading symbols from 
/boot/kernel.GENERIC.r191101.debug/snd_es137x.ko.symbols...done.
done. 

Loaded symbols for /boot/kernel.GENERIC.r191101.debug/snd_es137x.ko 

Reading symbols from 
/boot/kernel.GENERIC.r191101.debug/sound.ko...Reading symbols from 
/boot/kernel.GENERIC.r191101.debug/sound.ko.symbols...done.
done. 

Loaded symbols for /boot/kernel.GENERIC.r191101.debug/sound.ko 

Reading symbols from 
/boot/kernel.GENERIC.r191101.debug/radeon.ko...Reading symbols from 
/boot/kernel.GENERIC.r191101.debug/radeon.ko.symbols...done.
done. 

Loaded symbols for /boot/kernel.GENERIC.r191101.debug/radeon.ko 

Reading symbols from /boot/kernel.GENERIC.r191101.debug/drm.ko...Reading 
symbols from /boot/kernel.GENERIC.r191101.debug/drm.ko.symbols...done. 

done. 

Loaded symbols for /boot/kernel.GENERIC.r191101.debug/drm.ko 

#0  doadump () at pcpu.h:246
246             __asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) backtrace
#0  doadump () at pcpu.h:246
#1  0xc085712e in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:420
#2  0xc0857402 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:576
#3  0xc0b63323 in trap_fatal (frame=0xd67d4a58, eva=1062604800)
     at /usr/src/sys/i386/i386/trap.c:926
#4  0xc0b63c20 in trap (frame=0xd67d4a58) at 
/usr/src/sys/i386/i386/trap.c:318
#5  0xc0b47b5b in calltrap () at /usr/src/sys/i386/i386/exception.s:165
#6  0xc0b611b6 in slow_copyin () at /usr/src/sys/i386/i386/support.s:887
Previous frame inner to this frame (corrupt stack?)
(kgdb) list *0xc0b611b6
0xc0b611b6 is at /usr/src/sys/i386/i386/support.s:888.
883     slow_copyin:
884     #endif
885             movb    %cl,%al
886             shrl    $2,%ecx                         /* copy 
longword-wise */
887             cld
888             rep
889             movsl
890             movb    %al,%cl
891             andb    $3,%cl                          /* copy 
remaining bytes*/
892             rep
(kgdb)



OMG, ASM! I don't what this assembly code means or how to debug it. So 
what now? I can run commands on request. Or should I package the whole 
vmcore & kernel and upload/send it somewhere for inspection (tell me 
exactly which files)?


3 more things:

The command
   ddb capture -M /var/crash/vmcore.0 print
printed only a few ugly characters.

This kernel output really looks bad:
Wai
tSiynngc i(nmga xd is6k0s ,s evcnoonddess)  rfeomra isnyisntge.m. .pr0o 
cess `syncer' to stop...0 done

What's the explanation to:
Previous frame inner to this frame (corrupt stack?)
?



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