Date: Sat, 17 May 2008 18:34:56 +0200 (CEST) From: freebsd@nagilum.org To: FreeBSD-gnats-submit@FreeBSD.org Cc: freebsd@nagilum.org Subject: i386/123768: [crash] 7.0-STABLE on Soekris net4801 (sys/vm/vm_pageout.c) Message-ID: <20080517163456.A66CE320835@cakebox.homeunix.net> Resent-Message-ID: <200805171650.m4HGo1JI028835@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 123768 >Category: i386 >Synopsis: [crash] 7.0-STABLE on Soekris net4801 (sys/vm/vm_pageout.c) >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-i386 >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat May 17 16:50:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Alexander >Release: FreeBSD 7.0-STABLE i386 >Organization: private >Environment: System: FreeBSD cakebox.tis 7.0-STABLE FreeBSD 7.0-STABLE #5: Thu May 15 22:50:38 CEST 2008 root@cpqak.tis:/usr/obj/usr/src/sys/net4801 i386 Soekris Net4801, FreeBSD STABLE i386 April/May 2008 >Description: Crash under high network and cpu load. Here the results of two dumps, I'll collect some more as long as the problem exists. I haven't enabled WITNESS since I don't think it will help in this case but if you think otherwise let me know. 1: [root@cakebox ~]# kgdb -v /boot/kernel/kernel /var/crash/vmcore.0 kgdb: core file: /var/crash/vmcore.0 kgdb: kernel image: /boot/kernel/kernel [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 "i386-marcel-freebsd". There is no member named pathname. Reading symbols from /boot/kernel/ng_ether.ko...Reading symbols from /boot/kernel/ng_ether.ko.symbols...done. done. Loaded symbols for /boot/kernel/ng_ether.ko Reading symbols from /boot/kernel/netgraph.ko...Reading symbols from /boot/kernel/netgraph.ko.symbols...done. done. Loaded symbols for /boot/kernel/netgraph.ko Reading symbols from /boot/kernel/geom_journal.ko...Reading symbols from /boot/kernel/geom_journal.ko.symbols...done. done. Loaded symbols for /boot/kernel/geom_journal.ko Unread portion of the kernel message buffer: lockmgr: thread 0xc0fdf440 unlocking unheld lock panic: vn_finished_write: neg cnt Uptime: 16h29m13s Physical memory: 123 MB Dumping 50 MB: 35 19 3 #0 doadump () at pcpu.h:195 195 pcpu.h: No such file or directory. in pcpu.h (kgdb) bt #0 doadump () at pcpu.h:195 #1 0xc0504669 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418 #2 0xc0504820 in panic (fmt=Variable "fmt" is not available. ) at /usr/src/sys/kern/kern_shutdown.c:572 #3 0xc0574115 in vn_finished_write (mp=0xc0feb538) at /usr/src/sys/kern/vfs_vnops.c:1049 #4 0xc0637816 in vm_pageout () at /usr/src/sys/vm/vm_pageout.c:1028 #5 0xc04e8d7b in fork_exit (callout=0xc0636a30 <vm_pageout>, arg=0x0, frame=0xc7b6ad38) at /usr/src/sys/kern/kern_fork.c:783 #6 0xc0646ab0 in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:205 (kgdb) list *0xc0574115 0xc0574115 is in vn_finished_write (/usr/src/sys/kern/vfs_vnops.c:1050). 1045 return; 1046 MNT_ILOCK(mp); 1047 mp->mnt_writeopcount--; 1048 if (mp->mnt_writeopcount < 0) 1049 panic("vn_finished_write: neg cnt"); 1050 if ((mp->mnt_kern_flag & MNTK_SUSPEND) != 0 && 1051 mp->mnt_writeopcount <= 0) 1052 wakeup(&mp->mnt_writeopcount); 1053 MNT_IUNLOCK(mp); 1054 } (kgdb) q 2: root@cakebox ~ > kgdb -v /boot/kernel/kernel /var/crash/vmcore.1 kgdb: core file: /var/crash/vmcore.1 kgdb: kernel image: /boot/kernel/kernel [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 "i386-marcel-freebsd". There is no member named pathname. Reading symbols from /boot/kernel/ng_ether.ko...Reading symbols from /boot/kernel/ng_ether.ko.symbols...done. done. Loaded symbols for /boot/kernel/ng_ether.ko Reading symbols from /boot/kernel/netgraph.ko...Reading symbols from /boot/kernel/netgraph.ko.symbols...done. done. Loaded symbols for /boot/kernel/netgraph.ko Reading symbols from /boot/kernel/geom_journal.ko...Reading symbols from /boot/kernel/geom_journal.ko.symbols...done. done. Loaded symbols for /boot/kernel/geom_journal.ko Unread portion of the kernel message buffer: panic: lockmgr: thread 0xc0fdf440, not exclusive lock holder 0xc0fdeaa0 unlocking Uptime: 9h37m37s Physical memory: 123 MB Dumping 45 MB: 30 14 #0 doadump () at pcpu.h:195 195 pcpu.h: No such file or directory. in pcpu.h (kgdb) bt #0 doadump () at pcpu.h:195 #1 0xc0504669 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418 #2 0xc0504820 in panic (fmt=Variable "fmt" is not available. ) at /usr/src/sys/kern/kern_shutdown.c:572 #3 0xc04f5a67 in _lockmgr (lkp=0xc1731278, flags=6, interlkp=0xc17312a8, td=0xc0fdf440, file=0x0, line=0) at /usr/src/sys/kern/kern_lock.c:414 #4 0xc055e519 in vop_stdunlock (ap=0xc7b6ac1c) at /usr/src/sys/kern/vfs_default.c:280 #5 0xc065fecb in VOP_UNLOCK_APV (vop=0xc06b5dc0, a=0xc7b6ac1c) at vnode_if.c:1667 #6 0xc056a350 in vput (vp=0xc1731220) at vnode_if.h:877 #7 0xc06377cd in vm_pageout () at /usr/src/sys/vm/vm_pageout.c:1025 #8 0xc04e8d7b in fork_exit (callout=0xc0636a30 <vm_pageout>, arg=0x0, frame=0xc7b6ad38) at /usr/src/sys/kern/kern_fork.c:783 #9 0xc0646ab0 in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:205 (kgdb) list *0xc06377cd 0xc06377cd is in vm_pageout (/usr/src/sys/vm/vm_pageout.c:1025). 1020 unlock_and_continue: 1021 VM_OBJECT_UNLOCK(object); 1022 if (mp != NULL) { 1023 vm_page_unlock_queues(); 1024 if (vp != NULL) 1025 vput(vp); 1026 VFS_UNLOCK_GIANT(vfslocked); 1027 vm_object_deallocate(object); 1028 vn_finished_write(mp); 1029 vm_page_lock_queues(); (kgdb) list *0xc056a350 0xc056a350 is in vput (/usr/src/sys/kern/vfs_subr.c:2195). 2190 error = 0; 2191 2192 if (vp->v_usecount > 1 || ((vp->v_iflag & VI_DOINGINACT) && 2193 vp->v_usecount == 1)) { 2194 VOP_UNLOCK(vp, 0, td); 2195 v_decr_usecount(vp); 2196 return; 2197 } 2198 2199 if (vp->v_usecount != 1) { (kgdb) q root@cakebox ~ > mount /dev/ad0s1a on / (ufs, NFS exported, local, soft-updates) devfs on /dev (devfs, local) procfs on /proc (procfs, local) devfs on /var/named/dev (devfs, local) /dev/ad0s1d.eli.journal on /export/home (ufs, asynchronous, NFS exported, local, gjournal) and dmesg: Copyright (c) 1992-2008 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 7.0-STABLE #5: Thu May 15 22:50:38 CEST 2008 root@cpqak.tis:/usr/obj/usr/src/sys/net4801 Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Geode(TM) Integrated Processor by National Semi (266.63-MHz 586-class CPU) Origin = "Geode by NSC" Id = 0x540 Stepping = 0 Features=0x808131<FPU,TSC,MSR,CX8,CMOV,MMX> real memory = 134217728 (128 MB) avail memory = 126025728 (120 MB) cryptosoft0: <software crypto> on motherboard cpu0 on motherboard pcib0: <Host to PCI bridge> pcibus 0 on motherboard pci0: <PCI bus> on pcib0 sis0: <NatSemi DP8381[56] 10/100BaseTX> port 0xe100-0xe1ff mem 0xa0000000-0xa000 0fff irq 10 at device 6.0 on pci0 sis0: Silicon Revision: DP83816A miibus0: <MII bus> on sis0 nsphyter0: <DP83815 10/100 media interface> PHY 0 on miibus0 nsphyter0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto sis0: Ethernet address: 00:00:24:c1:4f:c4 sis0: [ITHREAD] sis1: <NatSemi DP8381[56] 10/100BaseTX> port 0xe200-0xe2ff mem 0xa0001000-0xa000 1fff irq 10 at device 7.0 on pci0 sis1: Silicon Revision: DP83816A miibus1: <MII bus> on sis1 nsphyter1: <DP83815 10/100 media interface> PHY 0 on miibus1 nsphyter1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto sis1: Ethernet address: 00:00:24:c1:4f:c5 sis1: [ITHREAD] sis2: <NatSemi DP8381[56] 10/100BaseTX> port 0xe300-0xe3ff mem 0xa0002000-0xa0002fff irq 10 at device 8.0 on pci0 sis2: Silicon Revision: DP83816A miibus2: <MII bus> on sis2 nsphyter2: <DP83815 10/100 media interface> PHY 0 on miibus2 nsphyter2: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto sis2: Ethernet address: 00:00:24:c1:4f:c6 sis2: [ITHREAD] Geode GPIO@ = 6100 Geode Soekris net4801 comBIOS ver. 1.33 20080103 Copyright (C) 2000-2007 isab0: <PCI-ISA bridge> port 0x6100-0x613f,0x6200-0x623f at device 18.0 on pci0 isa0: <ISA bus> on isab0 pci0: <bridge> at device 18.1 (no driver attached) atapci0: <National Geode SC1100 ATA33 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xe000-0xe00f at device 18.2 on pci0 ata0: <ATA channel 0> on atapci0 ata0: [ITHREAD] ata1: <ATA channel 1> on atapci0 ata1: [ITHREAD] Geode CBA@ 0x6000 Geode rev: 06 03 Timecounter "Geode" frequency 27000000 Hz quality 1000 pci0: <bridge> at device 18.5 (no driver attached) ohci0: <OHCI (generic) USB controller> mem 0xa0003000-0xa0003fff irq 11 at device 19.0 on pci0 ohci0: [GIANT-LOCKED] ohci0: [ITHREAD] usb0: OHCI version 1.0, legacy support usb0: <OHCI (generic) USB controller> on ohci0 usb0: USB revision 1.0 uhub0: <(0x0e11) OHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb0 uhub0: 3 ports with 3 removable, self powered orm0: <ISA Option ROM> at iomem 0xc8000-0xd0fff pnpid ORM0000 on isa0 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A, console sio0: [FILTER] sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A sio1: [FILTER] Timecounters tick every 1.000 msec ad0: 152627MB <SAMSUNG HM160HC LQ100-10> at ata0-master PIO4 Trying to mount root from ufs:/dev/ad0s1a Accounting enabled options used to build the kernel+modules: CPUTYPE?=pentium CFLAGS=-O -pipe -mtune=pentium -march=pentium >How-To-Repeat: Cause high network & CPU load. For example NFS export / mount it on a fast machine and do a portupgrade or any other io intensive operation on the nfs mount. I can also reproduce the problem using a bittorrent client provided there is enough traffic. It typically takes between 1-12 hours for the box to crash. I am also using geli+gjournal for one filesystem on the box but not /. I am unsure if it relevant. my kernconf: cpu I586_CPU ident NET4801 makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols options CPU_GEODE # Geode support options CPU_SOEKRIS # Soekris support options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support options GEOM_ELI # encryption on GEOM providers options UFS_ACL # Support for access control lists options UFS_DIRHASH # Improve performance on big directories options UFS_GJOURNAL # Enable gjournal-based UFS journaling. options NFSSERVER # Network Filesystem Server #options MSDOSFS # MSDOS Filesystem options PROCFS # Process filesystem (requires PSEUDOFS)options PSEUDOFS # Pseudo-filesystem framework options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support options SYSVSHM # SYSV-style shared memory options SYSVMSG # SYSV-style message queues options SYSVSEM # SYSV-style semaphores options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions options ADAPTIVE_GIANT # Giant mutex is adaptive. # Bus support. device eisa device pci # ATA and ATAPI devices device ata device atadisk # ATA disk drives options ATA_STATIC_ID # Static device numbering # SCSI peripherals device scbus # SCSI bus (required for SCSI) device da # Direct Access (disks) # Serial (COM) ports device sio # 8250, 16[45]50 based serial ports # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support device sis # Silicon Integrated Systems SiS 900/SiS 7016 # Pseudo devices. device loop # Network loopback device random # Entropy device device ether # Ethernet support device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) device md # Memory "disks" # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! device ether # Ethernet support device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) device md # Memory "disks" # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter device pf # Packet Filter device pflog # Packet Filter logging # USB support device ohci # OHCI PCI->USB interface device usb # USB Bus (required) device umass # Disks/Mass storage - Requires scbus and da device crypto # core crypto support device cryptodev # /dev/crypto for access to h/w >Fix: I wish I knew.. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080517163456.A66CE320835>