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>