GENERIC STABLE8 from 2011-04-22 02:22:36 UTC, r220936, vmcore.7 KDB: current backend: ddb 524288K of memory above 4GB ignored Copyright (c) 1992-2011 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.2-STABLE #0 r220936M: Sat Apr 23 06:32:09 CEST 2011 pho@x4.osted.lan:/usr/src/sys/i386/compile/PHO i386 WARNING: WITNESS option enabled, expect reduced performance. WARNING: DIAGNOSTIC option enabled, expect reduced performance. Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: AMD Phenom(tm) 9150e Quad-Core Processor (1800.48-MHz 686-class CPU) Origin = "AuthenticAMD" Id = 0x100f23 Family = 10 Model = 2 Stepping = 3 Features=0x178bfbff Features2=0x802009 AMD Features=0xee500800 AMD Features2=0x7ff TSC: P-state invariant real memory = 4294967296 (4096 MB) avail memory = 3536416768 (3372 MB) ACPI APIC Table: <060508 APIC1048> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs FreeBSD/SMP: 1 package(s) x 4 core(s) cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 cpu2 (AP): APIC ID: 2 cpu3 (AP): APIC ID: 3 ioapic0 irqs 0-23 on motherboard kbd1 at kbdmux0 acpi0: <060508 RSDT1048> on motherboard acpi0: [ITHREAD] acpi0: Power Button (fixed) acpi0: reservation of fee00000, 1000 (3) failed acpi0: reservation of ffb80000, 80000 (3) failed acpi0: reservation of 0, a0000 (3) failed acpi0: reservation of 100000, d7f00000 (3) failed Timecounter "ACPI-safe" frequency 3579545 Hz quality 850 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0 cpu0: on acpi0 cpu1: on acpi0 cpu2: on acpi0 cpu3: on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 pcib1: at device 1.0 on pci0 pci1: on pcib1 vgapci0: port 0xc000-0xc0ff mem 0xf0000000-0xf7ffffff,0xfe9f0000-0xfe9fffff,0xfe800000-0xfe8fffff irq 18 at device 5.0 on pci1 pci1: at device 5.2 (no driver attached) pcib2: at device 7.0 on pci0 pci2: on pcib2 re0: port 0xd800-0xd8ff mem 0xfeaff000-0xfeafffff irq 19 at device 0.0 on pci2 re0: Using 1 MSI message re0: Chip rev. 0x38000000 re0: MAC rev. 0x00000000 miibus0: on re0 rgephy0: PHY 1 on miibus0 rgephy0: 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-master, auto, auto-flow re0: Ethernet address: 00:21:85:15:33:7d re0: [ITHREAD] atapci0: port 0xb000-0xb007,0xa000-0xa003,0x9000-0x9007,0x8000-0x8003,0x7000-0x700f mem 0xfe7ff800-0xfe7ffbff irq 22 at device 18.0 on pci0 atapci0: [ITHREAD] atapci0: AHCI v1.10 controller with 4 3Gbps ports, PM supported ata2: on atapci0 ata2: port is not ready (timeout 0ms) tfd = 000001d0 ata2: software reset clear timeout ata2: [ITHREAD] ata3: on atapci0 ata3: [ITHREAD] ata4: on atapci0 ata4: [ITHREAD] ata5: on atapci0 ata5: [ITHREAD] ohci0: mem 0xfe7fe000-0xfe7fefff irq 16 at device 19.0 on pci0 ohci0: [ITHREAD] usbus0: on ohci0 ohci1: mem 0xfe7fd000-0xfe7fdfff irq 17 at device 19.1 on pci0 ohci1: [ITHREAD] usbus1: on ohci1 ohci2: mem 0xfe7fc000-0xfe7fcfff irq 18 at device 19.2 on pci0 ohci2: [ITHREAD] usbus2: on ohci2 ohci3: mem 0xfe7fb000-0xfe7fbfff irq 17 at device 19.3 on pci0 ohci3: [ITHREAD] usbus3: on ohci3 ohci4: mem 0xfe7fa000-0xfe7fafff irq 18 at device 19.4 on pci0 ohci4: [ITHREAD] usbus4: on ohci4 ehci0: mem 0xfe7ff000-0xfe7ff0ff irq 19 at device 19.5 on pci0 ehci0: [ITHREAD] ehci0: AMD SB600/700 quirk applied usbus5: EHCI version 1.0 usbus5: on ehci0 pci0: at device 20.0 (no driver attached) atapci1: port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xff00-0xff0f at device 20.1 on pci0 ata0: on atapci1 ata0: [ITHREAD] pci0: at device 20.2 (no driver attached) isab0: at device 20.3 on pci0 isa0: on isab0 pcib3: at device 20.4 on pci0 pci3: on pcib3 fwohci0: port 0xe800-0xe87f mem 0xfebff800-0xfebfffff irq 20 at device 6.0 on pci3 fwohci0: [ITHREAD] fwohci0: OHCI version 1.10 (ROM=1) fwohci0: No. of Isochronous channels is 4. fwohci0: EUI64 00:dc:10:00:01:62:ad:eb fwohci0: Phy 1394a available S400, 2 ports. fwohci0: Link S400, max_rec 2048 bytes. firewire0: on fwohci0 dcons_crom0: on firewire0 dcons_crom0: bus_addr 0xd9bd20 fwe0: on firewire0 if_fwe0: Fake Ethernet address: 02:dc:10:62:ad:eb fwe0: Ethernet address: 02:dc:10:62:ad:eb fwip0: on firewire0 fwip0: Firewire address: 00:dc:10:00:01:62:ad:eb @ 0xfffe00000000, S400, maxrec 2048 fwohci0: Initiate bus reset fwohci0: fwohci_intr_core: BUS reset fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=1, CYCLEMASTER mode acpi_button0: on acpi0 atrtc0: port 0x70-0x71 irq 8 on acpi0 uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 uart0: [FILTER] uart0: console (115200,n,8,1) fdc0: port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0 fdc0: [FILTER] atkbdc0: port 0x60,0x64 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] atkbd0: [ITHREAD] psm0: irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model IntelliMouse Explorer, device ID 4 pmtimer0 on isa0 sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 ppc0: parallel port not found. acpi_throttle0: on cpu0 acpi_throttle0: CLK_VAL field overlaps THT_EN bit device_attach: acpi_throttle0 attach returned 6 hwpstate0: on cpu0 Timecounters tick every 1.000 msec firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0) (me) firewire0: bus manager 0 usbus0: 12Mbps Full Speed USB v1.0 usbus1: 12Mbps Full Speed USB v1.0 usbus2: 12Mbps Full Speed USB v1.0 usbus3: 12Mbps Full Speed USB v1.0 usbus4: 12Mbps Full Speed USB v1.0 usbus5: 480Mbps High Speed USB v2.0 ugen0.1: at usbus0 uhub0: on usbus0 Expensive timeout(9) function: 0xc08cfe50(0xc73ae2e0) 0.010310528 s ugen1.1: at usbus1 uhub1: on usbus1 ugen2.1: at usbus2 uhub2: on usbus2 ugen3.1: at usbus3 uhub3: on usbus3 ugen4.1: at usbus4 uhub4: on usbus4 ugen5.1: at usbus5 uhub5: on usbus5 acd0: DVDR at ata0-slave UDMA33 ad4: 476940MB at ata2-master UDMA100 SATA 3Gb/s SMP: AP CPU #2 Launched! SMP: AP CPU #3 Launched! SMP: AP CPU #1 Launched! WARNING: WITNESS option enabled, expect reduced performance. WARNING: DIAGNOSTIC option enabled, expect reduced performance. uhub0: 2 ports with 2 removable, self powered uhub1: 2 ports with 2 removable, self powered uhub2: 2 ports with 2 removable, self powered uhub3: 2 ports with 2 removable, self powered uhub4: 2 ports with 2 removable, self powered Root mount waiting for: usbus5 Root mount waiting for: usbus5 Root mount waiting for: usbus5 Root mount waiting for: usbus5 Root mount waiting for: usbus5 uhub5: 10 ports with 10 removable, self powered Trying to mount root from ufs:/dev/ad4s2a Setting hostuuid: 00000000-0000-0000-0000-00218515337d. Setting hostid: 0x6b64ac17. Starting ddb. Entropy harvesting: interrupts ethernet point_to_point kickstart. Starting file system checks: /dev/ad4s2a: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad4s2a: clean, 584438 free (822 frags, 72952 blocks, 0.1% fragmentation) /dev/ad4s1f: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad4s1f: clean, 211973 free (3869 frags, 26013 blocks, 0.4% fragmentation) /dev/ad4s1g: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad4s1g: clean, 91337121 free (3153 frags, 11416746 blocks, 0.0% fragmentation) /dev/ad4s2d: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad4s2d: clean, 8635357 free (43677 frags, 1073960 blocks, 0.4% fragmentation) /dev/ad4s2e: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad4s2e: clean, 25035322 free (506 frags, 3129352 blocks, 0.0% fragmentation) Mounting local file systems:. panic: bqrelse: free buffer onto another queue??? cpuid = 1 KDB: stack backtrace: db_trace_self_wrapper(c0c7ad50,c08d85d6,c0c974ca,c778c2e0,e9b7981c,...) at db_trace_self_wrapper+0x26 kdb_backtrace(c0ca6a2f,1,c0c80b60,e9b79880,1,...) at kdb_backtrace+0x2a panic(c0c80b60,0,c0c806a4,5fe,c0c974c1,...) at panic+0x117 bqrelse(db1071c8,db1071c8,c3c,c77a01c0,a38c18,...) at bqrelse+0x1f4 bdwrite(db1071c8,c77ea15c,154,0,9b400,...) at bdwrite+0x1ea ufs_direnter(c7a38c18,c7a4f408,e9b799f0,e9b79bd0,db1071c8,...) at ufs_direnter+0x75c ufs_mkdir(e9b79bf8,c0caacc9,0,e9b79b3c,e9b79c1c,...) at ufs_mkdir+0x7db VOP_MKDIR_APV(c0d79be0,e9b79bf8,e9b79bd0,e9b79b3c,0,...) at VOP_MKDIR_APV+0x64 kern_mkdirat(c778c2e0,ffffff9c,bfbfef5a,0,1ff,...) at kern_mkdirat+0x21b kern_mkdir(c778c2e0,bfbfef5a,0,1ff,e9b79c7c,...) at kern_mkdir+0x2e mkdir(c778c2e0,e9b79cec,e9b79d28,c0c7bfbc,0,...) at mkdir+0x29 syscallenter(c778c2e0,e9b79ce4,e9b79ce4,0,e9b79d28,...) at syscallenter+0x246 syscall(e9b79d28) at syscall+0x4f Xint0x80_syscall() at Xint0x80_syscall+0x21 --- syscall (136, FreeBSD ELF32, mkdir), eip = 0x2816b9e3, esp = 0xbfbfed5c, ebp = 0xbfbfee28 --- KDB: enter: panic [thread pid 95 tid 100095 ] Stopped at kdb_enter+0x3a: movl $0,kdb_why db> run pho db:0:pho> bt Tracing pid 95 tid 100095 td 0xc778c2e0 kdb_enter(c0c78759,c0c78759,c0c80b60,e9b79880,1,...) at kdb_enter+0x3a panic(c0c80b60,0,c0c806a4,5fe,c0c974c1,...) at panic+0x134 bqrelse(db1071c8,db1071c8,c3c,c77a01c0,a38c18,...) at bqrelse+0x1f4 bdwrite(db1071c8,c77ea15c,154,0,9b400,...) at bdwrite+0x1ea ufs_direnter(c7a38c18,c7a4f408,e9b799f0,e9b79bd0,db1071c8,...) at ufs_direnter+0x75c ufs_mkdir(e9b79bf8,c0caacc9,0,e9b79b3c,e9b79c1c,...) at ufs_mkdir+0x7db VOP_MKDIR_APV(c0d79be0,e9b79bf8,e9b79bd0,e9b79b3c,0,...) at VOP_MKDIR_APV+0x64 kern_mkdirat(c778c2e0,ffffff9c,bfbfef5a,0,1ff,...) at kern_mkdirat+0x21b kern_mkdir(c778c2e0,bfbfef5a,0,1ff,e9b79c7c,...) at kern_mkdir+0x2e mkdir(c778c2e0,e9b79cec,e9b79d28,c0c7bfbc,0,...) at mkdir+0x29 syscallenter(c778c2e0,e9b79ce4,e9b79ce4,0,e9b79d28,...) at syscallenter+0x246 syscall(e9b79d28) at syscall+0x4f Xint0x80_syscall() at Xint0x80_syscall+0x21 --- syscall (136, FreeBSD ELF32, mkdir), eip = 0x2816b9e3, esp = 0xbfbfed5c, ebp = 0xbfbfee28 --- db:0:bt> show allpcpu Current CPU: 1 cpuid = 0 dynamic pcpu = 0x691a80 curthread = 0xc7171000: pid 11 "idle: cpu0" curpcb = 0xc6f0dd80 fpcurthread = none idlethread = 0xc7171000: tid 100006 "idle: cpu0" APIC ID = 0 currentldt = 0x50 spin locks held: cpuid = 1 dynamic pcpu = 0x6150a80 curthread = 0xc778c2e0: pid 95 "mkdir" curpcb = 0xe9b79d80 fpcurthread = none idlethread = 0xc71712e0: tid 100005 "idle: cpu1" APIC ID = 1 currentldt = 0x50 spin locks held: cpuid = 2 dynamic pcpu = 0x6153a80 curthread = 0xc71715c0: pid 11 "idle: cpu2" curpcb = 0xc6f07d80 fpcurthread = none idlethread = 0xc71715c0: tid 100004 "idle: cpu2" APIC ID = 2 currentldt = 0x50 spin locks held: cpuid = 3 dynamic pcpu = 0x6156a80 curthread = 0xc71718a0: pid 11 "idle: cpu3" curpcb = 0xc6f04d80 fpcurthread = none idlethread = 0xc71718a0: tid 100003 "idle: cpu3" APIC ID = 3 currentldt = 0x50 spin locks held: db:0:allpcpu> show alllocks Process 95 (mkdir) thread 0xc778c2e0 (100095) exclusive sleep mutex buf queue lock (buf queue lock) r = 0 (0xc0f34a70) locked @ kern/vfs_bio.c:1534 exclusive lockmgr bufwait (bufwait) r = 0 (0xdb104d24) locked @ kern/vfs_bio.c:2636 exclusive lockmgr ufs (ufs) r = 0 (0xc7a4f460) locked @ ufs/ffs/ffs_vfsops.c:1531 exclusive lockmgr ufs (ufs) r = 0 (0xc7a38c70) locked @ kern/vfs_subr.c:2128 db:0:alllocks> show lockedvnods Locked vnodes 0xc7a38c18: tag ufs, type VDIR usecount 1, writecount 0, refcount 4 mountedhere 0 flags (VV_ROOT) v_object 0xc7a3b6e8 ref 0 pages 1 lock type ufs: EXCL by thread 0xc778c2e0 (pid 95) #0 0xc08873f5 at __lockmgr_args+0x4a5 #1 0xc0ab398a at ffs_lock+0x8a #2 0xc0bbd9ed at VOP_LOCK1_APV+0x4d #3 0xc092d65d at _vn_lock+0x3d #4 0xc0920f8c at vget+0x6c #5 0xc0914e3d at vfs_hash_get+0xed #6 0xc0aad649 at ffs_vgetf+0x49 #7 0xc0aadbbe at ffs_vget+0x2e #8 0xc0abc898 at ufs_root+0x28 #9 0xc09162f1 at lookup+0x971 #10 0xc0916cff at namei+0x4cf #11 0xc0924b58 at kern_mkdirat+0x68 #12 0xc0924dde at kern_mkdir+0x2e #13 0xc0924e09 at mkdir+0x29 #14 0xc08d2a26 at syscallenter+0x246 #15 0xc0b9ddaf at syscall+0x4f #16 0xc0b85a51 at Xint0x80_syscall+0x21 ino 2, on dev ad4s2e 0xc7a4f408: tag ufs, type VDIR usecount 1, writecount 0, refcount 2 mountedhere 0 flags () lock type ufs: EXCL by thread 0xc778c2e0 (pid 95) #0 0xc08879d0 at __lockmgr_args+0xa80 #1 0xc0aad7d3 at ffs_vgetf+0x1d3 #2 0xc0aadbbe at ffs_vget+0x2e #3 0xc0a918b1 at ffs_valloc+0x4d1 #4 0xc0abe8a6 at ufs_mkdir+0x96 #5 0xc0bbdd34 at VOP_MKDIR_APV+0x64 #6 0xc0924d0b at kern_mkdirat+0x21b #7 0xc0924dde at kern_mkdir+0x2e #8 0xc0924e09 at mkdir+0x29 #9 0xc08d2a26 at syscallenter+0x246 #10 0xc0b9ddaf at syscall+0x4f #11 0xc0b85a51 at Xint0x80_syscall+0x21 ino 635904, on dev ad4s2e db:0:lockedvnods> show mount 0xc7714b40 /dev/ad4s2a on / (ufs) 0xc7715000 devfs on /dev (devfs) 0xc7a3d5a0 /dev/ad4s1f on /home (ufs) 0xc7a3f000 /dev/ad4s1g on /tmp (ufs) 0xc7a3eb40 /dev/ad4s2d on /usr (ufs) 0xc7a3e870 /dev/ad4s2e on /var (ufs) More info: show mount db:0:mount> ps pid ppid pgrp uid state wmesg wchan cmd 95 94 21 0 R+ CPU 1 mkdir 94 21 21 0 S+ wait 0xc769b2b0 sh 21 1 21 0 Ss+ wait 0xc7765ac0 sh 20 0 0 0 SL sdflush 0xc0f40560 [softdepflush] 19 0 0 0 SL vlruwt 0xc769a000 [vnlru] 18 0 0 0 SL syncer 0xc0f34cf8 [syncer] 17 0 0 0 SL psleep 0xc0f34a28 [bufdaemon] 16 0 0 0 SL pgzero 0xc0f41234 [pagezero] 15 0 0 0 SL psleep 0xc0f40e5c [vmdaemon] 9 0 0 0 SL psleep 0xc0f40e24 [pagedaemon] 8 0 0 0 SL ccb_scan 0xc0d94254 [xpt_thrd] 7 0 0 0 SL waiting_ 0xc0f366f8 [sctp_iterator] 6 0 0 0 SL - 0xc73f043c [fdc0] 5 0 0 0 SL - 0xc73f7000 [fw0_probe] 14 0 0 0 SL (threaded) usb 100058 D - 0xc73d8d34 [usbus5] 100057 D - 0xc73d8d04 [usbus5] 100056 D - 0xc73d8cd4 [usbus5] 100055 D - 0xc73d8ca4 [usbus5] 100053 D - 0xc73cbb5c [usbus4] 100052 D - 0xc73cbb2c [usbus4] 100051 D - 0xc73cbafc [usbus4] 100050 D - 0xc73cbacc [usbus4] 100049 D - 0xc73c7b5c [usbus3] 100048 D - 0xc73c7b2c [usbus3] 100047 D - 0xc73c7afc [usbus3] 100046 D - 0xc73c7acc [usbus3] 100045 D - 0xc73bab5c [usbus2] 100044 D - 0xc73bab2c [usbus2] 100043 D - 0xc73baafc [usbus2] 100042 D - 0xc73baacc [usbus2] 100040 D - 0xc73b7b5c [usbus1] 100039 D - 0xc73b7b2c [usbus1] 100038 D - 0xc73b7afc [usbus1] 100037 D - 0xc73b7acc [usbus1] 100035 D - 0xc73a6b5c [usbus0] 100034 D - 0xc73a6b2c [usbus0] 100033 D - 0xc73a6afc [usbus0] 100032 D - 0xc73a6acc [usbus0] 13 0 0 0 SL - 0xc0dc7b64 [yarrow] 4 0 0 0 SL - 0xc0dc5864 [g_down] 3 0 0 0 SL - 0xc0dc5860 [g_up] 2 0 0 0 SL - 0xc0dc5858 [g_event] 12 0 0 0 WL (threaded) intr 100066 I [irq12: psm0] 100065 I [irq1: atkbd0] 100063 I [swi0: uart] 100060 I [irq20: fwohci0] 100059 I [irq14: ata0] 100054 I [irq19: ehci0] 100041 I [irq18: ohci2 ohci4] 100036 I [irq17: ohci1 ohci3] 100031 I [irq16: ohci0] 100030 I [irq22: atapci0] 100029 I [irq256: re0] 100028 I [irq9: acpi0] 100027 I [swi6: task queue] 100026 I [swi6: Giant taskq] 100024 I [swi5: +] 100018 I [swi2: cambio] 100012 I [swi1: netisr 0] 100011 I [swi3: vm] 100010 I [swi4: clock] 100009 I [swi4: clock] 100008 I [swi4: clock] 100007 I [swi4: clock] 11 0 0 0 RL (threaded) idle 100006 Run CPU 0 [idle: cpu0] 100005 CanRun [idle: cpu1] 100004 Run CPU 2 [idle: cpu2] 100003 Run CPU 3 [idle: cpu3] 1 0 1 0 SLs wait 0xc716fac0 [init] 10 0 0 0 SL audit_wo 0xc0f3fe80 [audit] 0 0 0 0 SLs (threaded) kernel 100061 D - 0xc73f6580 [fw0_taskq] 100025 D - 0xc733cac0 [thread taskq] 100023 D - 0xc733cb80 [ffs_trim taskq] 100022 D - 0xc733cd00 [acpi_task_2] 100021 D - 0xc733cd00 [acpi_task_1] 100020 D - 0xc733cd00 [acpi_task_0] 100019 D - 0xc733cd40 [kqueue taskq] 100016 D - 0xc7150940 [firmware taskq] 100000 D sched 0xc0dc5940 [swapper] db:0:ps> allt Tracing command mkdir pid 95 tid 100095 td 0xc778c2e0 kdb_enter(c0c78759,c0c78759,c0c80b60,e9b79880,1,...) at kdb_enter+0x3a panic(c0c80b60,0,c0c806a4,5fe,c0c974c1,...) at panic+0x134 bqrelse(db1071c8,db1071c8,c3c,c77a01c0,a38c18,...) at bqrelse+0x1f4 bdwrite(db1071c8,c77ea15c,154,0,9b400,...) at bdwrite+0x1ea ufs_direnter(c7a38c18,c7a4f408,e9b799f0,e9b79bd0,db1071c8,...) at ufs_direnter+0x75c ufs_mkdir(e9b79bf8,c0caacc9,0,e9b79b3c,e9b79c1c,...) at ufs_mkdir+0x7db VOP_MKDIR_APV(c0d79be0,e9b79bf8,e9b79bd0,e9b79b3c,0,...) at VOP_MKDIR_APV+0x64 kern_mkdirat(c778c2e0,ffffff9c,bfbfef5a,0,1ff,...) at kern_mkdirat+0x21b kern_mkdir(c778c2e0,bfbfef5a,0,1ff,e9b79c7c,...) at kern_mkdir+0x2e mkdir(c778c2e0,e9b79cec,e9b79d28,c0c7bfbc,0,...) at mkdir+0x29 syscallenter(c778c2e0,e9b79ce4,e9b79ce4,0,e9b79d28,...) at syscallenter+0x246 syscall(e9b79d28) at syscall+0x4f Xint0x80_syscall() at Xint0x80_syscall+0x21 --- syscall (136, FreeBSD ELF32, mkdir), eip = 0x2816b9e3, esp = 0xbfbfed5c, ebp = 0xbfbfee28 --- Tracing command sh pid 94 tid 100106 td 0xc77662e0 sched_switch(c77662e0,0,104,c77662e0,74c53002,...) at sched_switch+0x28a mi_switch(104,0,c77662e0,100,100,...) at mi_switch+0x11a sleepq_switch(c77662e0,0,c0c7bbee,1a0,5c,...) at sleepq_switch+0xd3 sleepq_catch_signals(0,c0c7bbee,160,100,100,...) at sleepq_catch_signals+0x51 sleepq_wait_sig(c769b2b0,5c,c0c7d303,100,0,...) at sleepq_wait_sig+0x17 _sleep(c769b2b0,c769b338,15c,c0c7d303,0,...) at _sleep+0x2bc kern_wait(c77662e0,ffffffff,e9bb4c44,2,0,...) at kern_wait+0xa76 wait4(c77662e0,e9bb4cec,e9bb4d28,c0c7bfbc,0,...) at wait4+0x3b syscallenter(c77662e0,e9bb4ce4,e9bb4ce4,0,e9bb4d28,...) at syscallenter+0x246 syscall(e9bb4d28) at syscall+0x4f Xint0x80_syscall() at Xint0x80_syscall+0x21 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x2815cd5b, esp = 0xbfbfe4ec, ebp = 0xbfbfe508 --- Tracing command sh pid 21 tid 100076 td 0xc7769b80 sched_switch(c7769b80,0,104,c7769b80,747284db,...) at sched_switch+0x28a mi_switch(104,0,c7769b80,100,100,...) at mi_switch+0x11a sleepq_switch(c7769b80,0,c0c7bbee,1a0,5c,...) at sleepq_switch+0xd3 sleepq_catch_signals(0,c0c7bbee,160,100,100,...) at sleepq_catch_signals+0x51 sleepq_wait_sig(c7765ac0,5c,c0c7d303,100,0,...) at sleepq_wait_sig+0x17 _sleep(c7765ac0,c7765b48,15c,c0c7d303,0,...) at _sleep+0x2bc kern_wait(c7769b80,ffffffff,e9b2dc44,2,0,...) at kern_wait+0xa76 wait4(c7769b80,e9b2dcec,e9b2dd28,c0c7bfbc,0,...) at wait4+0x3b syscallenter(c7769b80,e9b2dce4,e9b2dce4,0,e9b2dd28,...) at syscallenter+0x246 syscall(e9b2dd28) at syscall+0x4f Xint0x80_syscall() at Xint0x80_syscall+0x21 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x2815cd5b, esp = 0xbfbfe94c, ebp = 0xbfbfe968 --- Tracing command softdepflush pid 20 tid 100075 td 0xc73d3b80 sched_switch(c73d3b80,0,104,c73d3b80,74dda796,...) at sched_switch+0x28a mi_switch(104,0,c73d3b80,0,0,...) at mi_switch+0x11a sleepq_switch(c73d3b80,0,c0c7bbee,283,0,...) at sleepq_switch+0xd3 sleepq_timedwait(c0f40560,44,c0c9820a,0,0,...) at sleepq_timedwait+0x3e _sleep(c0f40560,c0f40504,44,c0c9820a,3e8,...) at _sleep+0x2a2 softdep_flush(0,e793dd28,c0c750a9,359,c727aac0,...) at softdep_flush+0x244 fork_exit(c0aa99e0,0,e793dd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe793dd60, ebp = 0 --- Tracing command vnlru pid 19 tid 100074 td 0xc74e3000 sched_switch(c74e3000,0,104,c74e3000,74dd1b4f,...) at sched_switch+0x28a mi_switch(104,0,c74e3000,0,0,...) at mi_switch+0x11a sleepq_switch(c74e3000,0,c0c7bbee,283,0,...) at sleepq_switch+0xd3 sleepq_timedwait(c769a000,50,c0c82f37,0,0,...) at sleepq_timedwait+0x3e _sleep(c769a000,c0f34cb8,250,c0c82f37,3e8,...) at _sleep+0x2a2 vnlru_proc(0,e793ad28,c0c750a9,359,c769a000,...) at vnlru_proc+0xe7 fork_exit(c0923b40,0,e793ad28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe793ad60, ebp = 0 --- Tracing command syncer pid 18 tid 100073 td 0xc74e32e0 sched_switch(c74e32e0,0,104,c74e32e0,74dcb5ab,...) at sched_switch+0x28a mi_switch(104,0,c74e32e0,c74e32e0,c74e32e0,...) at mi_switch+0x11a sleepq_switch(c74e32e0,0,c0c7bbee,283,c74e32e0,...) at sleepq_switch+0xd3 sleepq_timedwait(c0f34cf8,0,e7937c74,1,0,...) at sleepq_timedwait+0x3e _cv_timedwait(c0f34cf8,c0f34ce4,3e8,764,4e20,...) at _cv_timedwait+0x1c0 sched_sync(0,e7937d28,c0c750a9,359,c769a2b0,...) at sched_sync+0x4bd fork_exit(c0922eb0,0,e7937d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe7937d60, ebp = 0 --- Tracing command bufdaemon pid 17 tid 100072 td 0xc74e35c0 sched_switch(c74e35c0,0,104,c74e35c0,74dc6cb8,...) at sched_switch+0x28a mi_switch(104,0,c74e35c0,0,0,...) at mi_switch+0x11a sleepq_switch(c74e35c0,0,c0c7bbee,283,0,...) at sleepq_switch+0xd3 sleepq_timedwait(c0f34a28,44,c0c80b13,0,0,...) at sleepq_timedwait+0x3e _sleep(c0f34a28,c0f34a2c,44,c0c80b13,3e8,...) at _sleep+0x2a2 buf_daemon(0,e7934d28,c0c750a9,359,c769a560,...) at buf_daemon+0x138 fork_exit(c090b120,0,e7934d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe7934d60, ebp = 0 --- Tracing command pagezero pid 16 tid 100071 td 0xc74e38a0 sched_switch(c74e38a0,0,104,c74e38a0,ef0114ab,...) at sched_switch+0x28a mi_switch(104,0,c74e38a0,0,0,...) at mi_switch+0x11a sleepq_switch(c74e38a0,0,c0c7bbee,283,0,...) at sleepq_switch+0xd3 sleepq_timedwait(c0f41234,0,c0c9baf0,0,0,...) at sleepq_timedwait+0x3e _sleep(c0f41234,c0f40df0,0,c0c9baf0,493e0,...) at _sleep+0x2a2 vm_pagezero(0,e7931d28,c0c750a9,359,c769a810,...) at vm_pagezero+0xb3 fork_exit(c0ae2760,0,e7931d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe7931d60, ebp = 0 --- Tracing command vmdaemon pid 15 tid 100070 td 0xc74e3b80 sched_switch(c74e3b80,0,104,c74e3b80,eefb94a5,...) at sched_switch+0x28a mi_switch(104,0,c74e3b80,c74e3b80,c74e3b80,...) at mi_switch+0x11a sleepq_switch(c74e3b80,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c0f40e5c,68,c0c80b13,0,0,...) at sleepq_wait+0x39 _sleep(c0f40e5c,c0f40e60,68,c0c80b13,0,...) at _sleep+0x2d2 vm_daemon(0,e792ed28,c0c750a9,359,c769aac0,...) at vm_daemon+0x59 fork_exit(c0addc60,0,e792ed28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe792ed60, ebp = 0 --- Tracing command pagedaemon pid 9 tid 100069 td 0xc74e4000 sched_switch(c74e4000,0,104,c74e4000,7efe68f,...) at sched_switch+0x28a mi_switch(104,0,c74e4000,0,0,...) at mi_switch+0x11a sleepq_switch(c74e4000,0,c0c7bbee,283,0,...) at sleepq_switch+0xd3 sleepq_timedwait(c0f40e24,44,c0c80b13,0,0,...) at sleepq_timedwait+0x3e _sleep(c0f40e24,c0f40df0,44,c0c80b13,1388,...) at _sleep+0x2a2 vm_pageout(0,e792bd28,c0c750a9,359,c769b000,...) at vm_pageout+0x2bb fork_exit(c0adea10,0,e792bd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe792bd60, ebp = 0 --- Tracing command xpt_thrd pid 8 tid 100068 td 0xc74e42e0 sched_switch(c74e42e0,0,104,c74e42e0,ddd303ed,...) at sched_switch+0x28a mi_switch(104,0,c74e42e0,c74e42e0,c74e42e0,...) at mi_switch+0x11a sleepq_switch(c74e42e0,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c0d94254,4c,c0c15647,0,0,...) at sleepq_wait+0x39 _sleep(c0d94254,c0d94298,4c,c0c15647,0,...) at _sleep+0x2d2 xpt_scanner_thread(0,e7928d28,c0c750a9,359,c71702b0,...) at xpt_scanner_thread+0x47 fork_exit(c04845f0,0,e7928d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe7928d60, ebp = 0 --- Tracing command sctp_iterator pid 7 tid 100067 td 0xc74e45c0 sched_switch(c74e45c0,0,104,c74e45c0,ddd2f77d,...) at sched_switch+0x28a mi_switch(104,0,c74e45c0,c74e45c0,c74e45c0,...) at mi_switch+0x11a sleepq_switch(c74e45c0,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c0f366f8,0,c0c8cbda,0,0,...) at sleepq_wait+0x39 _sleep(c0f366f8,c0f366c0,0,c0c8cbda,0,...) at _sleep+0x2d2 sctp_iterator_thread(0,e7925d28,c0c750a9,359,c7170560,...) at sctp_iterator_thread+0x5c fork_exit(c09a6850,0,e7925d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe7925d60, ebp = 0 --- Tracing command fdc0 pid 6 tid 100064 td 0xc74e5000 sched_switch(c74e5000,0,104,c74e5000,6c79839b,...) at sched_switch+0x28a mi_switch(104,0,c74e5000,0,0,...) at mi_switch+0x11a sleepq_switch(c74e5000,0,c0c7bbee,283,0,...) at sleepq_switch+0xd3 sleepq_timedwait(c73f043c,4c,c0c70b1f,0,0,...) at sleepq_timedwait+0x3e _sleep(c73f043c,c73f04f0,4c,c0c70b1f,3e8,...) at _sleep+0x2a2 fdc_thread(c73f0400,e791cd28,c0c750a9,359,c7170810,...) at fdc_thread+0x2be fork_exit(c0b60c70,c73f0400,e791cd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe791cd60, ebp = 0 --- Tracing command fw0_probe pid 5 tid 100062 td 0xc73c15c0 sched_switch(c73c15c0,0,104,c73c15c0,57311a,...) at sched_switch+0x28a mi_switch(104,0,c73c15c0,100,100,...) at mi_switch+0x11a sleepq_switch(c73c15c0,0,c0c7bbee,1a0,5c,...) at sleepq_switch+0xd3 sleepq_catch_signals(0,c0c7bbee,160,100,100,...) at sleepq_catch_signals+0x51 sleepq_wait_sig(c73f7000,5c,c0c70b1f,100,0,...) at sleepq_wait_sig+0x17 _sleep(c73f7000,c73fb488,15c,c0c70b1f,0,...) at _sleep+0x2bc fw_bus_probe_thread(c73f7000,e790cd28,c0c750a9,359,c7170ac0,...) at fw_bus_probe_thread+0xa08 fork_exit(c0673040,c73f7000,e790cd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe790cd60, ebp = 0 --- Tracing command usb pid 14 tid 100058 td 0xc73d12e0 sched_switch(c73d12e0,0,104,c73d12e0,ddcdf21b,...) at sched_switch+0x28a mi_switch(104,0,c73d12e0,c73d12e0,c73d12e0,...) at mi_switch+0x11a sleepq_switch(c73d12e0,0,c0c7bbee,260,c73d12e0,...) at sleepq_switch+0xd3 sleepq_wait(c73d8d34,0,e78f9cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73d8d34,c73d8dd4,c0c69704,6c,c73d8d3c,...) at _cv_wait+0x1b0 usb_process(c73d8d2c,e78f9d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73d8d2c,e78f9d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78f9d60, ebp = 0 --- Tracing command usb pid 14 tid 100057 td 0xc73d15c0 sched_switch(c73d15c0,0,104,c73d15c0,ba14f12e,...) at sched_switch+0x28a mi_switch(104,0,c73d15c0,c73d15c0,c73d15c0,...) at mi_switch+0x11a sleepq_switch(c73d15c0,0,c0c7bbee,260,c73d15c0,...) at sleepq_switch+0xd3 sleepq_wait(c73d8d04,0,e78f6cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73d8d04,c73d8dd4,c0c69704,6c,c73d8d0c,...) at _cv_wait+0x1b0 usb_process(c73d8cfc,e78f6d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73d8cfc,e78f6d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78f6d60, ebp = 0 --- Tracing command usb pid 14 tid 100056 td 0xc73d18a0 sched_switch(c73d18a0,0,104,c73d18a0,dd684e3f,...) at sched_switch+0x28a mi_switch(104,0,c73d18a0,c73d18a0,c73d18a0,...) at mi_switch+0x11a sleepq_switch(c73d18a0,0,c0c7bbee,260,c73d18a0,...) at sleepq_switch+0xd3 sleepq_wait(c73d8cd4,0,e78f3cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73d8cd4,c73d8dd4,c0c69704,6c,c73d8cdc,...) at _cv_wait+0x1b0 usb_process(c73d8ccc,e78f3d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73d8ccc,e78f3d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78f3d60, ebp = 0 --- Tracing command usb pid 14 tid 100055 td 0xc73d1b80 sched_switch(c73d1b80,0,104,c73d1b80,dd683f5f,...) at sched_switch+0x28a mi_switch(104,0,c73d1b80,c73d1b80,c73d1b80,...) at mi_switch+0x11a sleepq_switch(c73d1b80,0,c0c7bbee,260,c73d1b80,...) at sleepq_switch+0xd3 sleepq_wait(c73d8ca4,0,e78f0cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73d8ca4,c73d8dd4,c0c69704,6c,c73d8cac,...) at _cv_wait+0x1b0 usb_process(c73d8c9c,e78f0d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73d8c9c,e78f0d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78f0d60, ebp = 0 --- Tracing command usb pid 14 tid 100053 td 0xc73d32e0 sched_switch(c73d32e0,0,104,c73d32e0,dd682ca2,...) at sched_switch+0x28a mi_switch(104,0,c73d32e0,c73d32e0,c73d32e0,...) at mi_switch+0x11a sleepq_switch(c73d32e0,0,c0c7bbee,260,c73d32e0,...) at sleepq_switch+0xd3 sleepq_wait(c73cbb5c,0,e78e7cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73cbb5c,c73cbbfc,c0c69704,6c,c73cbb64,...) at _cv_wait+0x1b0 usb_process(c73cbb54,e78e7d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73cbb54,e78e7d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78e7d60, ebp = 0 --- Tracing command usb pid 14 tid 100052 td 0xc73d35c0 sched_switch(c73d35c0,0,104,c73d35c0,b1e428f3,...) at sched_switch+0x28a mi_switch(104,0,c73d35c0,c73d35c0,c73d35c0,...) at mi_switch+0x11a sleepq_switch(c73d35c0,0,c0c7bbee,260,c73d35c0,...) at sleepq_switch+0xd3 sleepq_wait(c73cbb2c,0,e78e4cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73cbb2c,c73cbbfc,c0c69704,6c,c73cbb34,...) at _cv_wait+0x1b0 usb_process(c73cbb24,e78e4d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73cbb24,e78e4d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78e4d60, ebp = 0 --- Tracing command usb pid 14 tid 100051 td 0xc73bf000 sched_switch(c73bf000,0,104,c73bf000,dd05cbb5,...) at sched_switch+0x28a mi_switch(104,0,c73bf000,c73bf000,c73bf000,...) at mi_switch+0x11a sleepq_switch(c73bf000,0,c0c7bbee,260,c73bf000,...) at sleepq_switch+0xd3 sleepq_wait(c73cbafc,0,e78e1cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73cbafc,c73cbbfc,c0c69704,6c,c73cbb04,...) at _cv_wait+0x1b0 usb_process(c73cbaf4,e78e1d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73cbaf4,e78e1d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78e1d60, ebp = 0 --- Tracing command usb pid 14 tid 100050 td 0xc73bf2e0 sched_switch(c73bf2e0,0,104,c73bf2e0,dd05bb32,...) at sched_switch+0x28a mi_switch(104,0,c73bf2e0,c73bf2e0,c73bf2e0,...) at mi_switch+0x11a sleepq_switch(c73bf2e0,0,c0c7bbee,260,c73bf2e0,...) at sleepq_switch+0xd3 sleepq_wait(c73cbacc,0,e78decac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73cbacc,c73cbbfc,c0c69704,6c,c73cbad4,...) at _cv_wait+0x1b0 usb_process(c73cbac4,e78ded28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73cbac4,e78ded28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78ded60, ebp = 0 --- Tracing command usb pid 14 tid 100049 td 0xc73bf5c0 sched_switch(c73bf5c0,0,104,c73bf5c0,dd05a8b4,...) at sched_switch+0x28a mi_switch(104,0,c73bf5c0,c73bf5c0,c73bf5c0,...) at mi_switch+0x11a sleepq_switch(c73bf5c0,0,c0c7bbee,260,c73bf5c0,...) at sleepq_switch+0xd3 sleepq_wait(c73c7b5c,0,e78dacac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73c7b5c,c73c7bfc,c0c69704,6c,c73c7b64,...) at _cv_wait+0x1b0 usb_process(c73c7b54,e78dad28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73c7b54,e78dad28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78dad60, ebp = 0 --- Tracing command usb pid 14 tid 100048 td 0xc73bf8a0 sched_switch(c73bf8a0,0,104,c73bf8a0,b191c4aa,...) at sched_switch+0x28a mi_switch(104,0,c73bf8a0,c73bf8a0,c73bf8a0,...) at mi_switch+0x11a sleepq_switch(c73bf8a0,0,c0c7bbee,260,c73bf8a0,...) at sleepq_switch+0xd3 sleepq_wait(c73c7b2c,0,e78d7cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73c7b2c,c73c7bfc,c0c69704,6c,c73c7b34,...) at _cv_wait+0x1b0 usb_process(c73c7b24,e78d7d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73c7b24,e78d7d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78d7d60, ebp = 0 --- Tracing command usb pid 14 tid 100047 td 0xc73bfb80 sched_switch(c73bfb80,0,104,c73bfb80,dca270d3,...) at sched_switch+0x28a mi_switch(104,0,c73bfb80,c73bfb80,c73bfb80,...) at mi_switch+0x11a sleepq_switch(c73bfb80,0,c0c7bbee,260,c73bfb80,...) at sleepq_switch+0xd3 sleepq_wait(c73c7afc,0,e78d4cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73c7afc,c73c7bfc,c0c69704,6c,c73c7b04,...) at _cv_wait+0x1b0 usb_process(c73c7af4,e78d4d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73c7af4,e78d4d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78d4d60, ebp = 0 --- Tracing command usb pid 14 tid 100046 td 0xc73c0000 sched_switch(c73c0000,0,104,c73c0000,dca261bb,...) at sched_switch+0x28a mi_switch(104,0,c73c0000,c73c0000,c73c0000,...) at mi_switch+0x11a sleepq_switch(c73c0000,0,c0c7bbee,260,c73c0000,...) at sleepq_switch+0xd3 sleepq_wait(c73c7acc,0,e78d1cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73c7acc,c73c7bfc,c0c69704,6c,c73c7ad4,...) at _cv_wait+0x1b0 usb_process(c73c7ac4,e78d1d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73c7ac4,e78d1d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78d1d60, ebp = 0 --- Tracing command usb pid 14 tid 100045 td 0xc73c02e0 sched_switch(c73c02e0,0,104,c73c02e0,dca2511f,...) at sched_switch+0x28a mi_switch(104,0,c73c02e0,c73c02e0,c73c02e0,...) at mi_switch+0x11a sleepq_switch(c73c02e0,0,c0c7bbee,260,c73c02e0,...) at sleepq_switch+0xd3 sleepq_wait(c73bab5c,0,e78cdcac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73bab5c,c73babfc,c0c69704,6c,c73bab64,...) at _cv_wait+0x1b0 usb_process(c73bab54,e78cdd28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73bab54,e78cdd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78cdd60, ebp = 0 --- Tracing command usb pid 14 tid 100044 td 0xc73c05c0 sched_switch(c73c05c0,0,104,c73c05c0,b13f56e0,...) at sched_switch+0x28a mi_switch(104,0,c73c05c0,c73c05c0,c73c05c0,...) at mi_switch+0x11a sleepq_switch(c73c05c0,0,c0c7bbee,260,c73c05c0,...) at sleepq_switch+0xd3 sleepq_wait(c73bab2c,0,e78cacac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73bab2c,c73babfc,c0c69704,6c,c73bab34,...) at _cv_wait+0x1b0 usb_process(c73bab24,e78cad28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73bab24,e78cad28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78cad60, ebp = 0 --- Tracing command usb pid 14 tid 100043 td 0xc73c08a0 sched_switch(c73c08a0,0,104,c73c08a0,dc3f5d6b,...) at sched_switch+0x28a mi_switch(104,0,c73c08a0,c73c08a0,c73c08a0,...) at mi_switch+0x11a sleepq_switch(c73c08a0,0,c0c7bbee,260,c73c08a0,...) at sleepq_switch+0xd3 sleepq_wait(c73baafc,0,e78c7cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73baafc,c73babfc,c0c69704,6c,c73bab04,...) at _cv_wait+0x1b0 usb_process(c73baaf4,e78c7d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73baaf4,e78c7d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78c7d60, ebp = 0 --- Tracing command usb pid 14 tid 100042 td 0xc73c0b80 sched_switch(c73c0b80,0,104,c73c0b80,dc3f4df3,...) at sched_switch+0x28a mi_switch(104,0,c73c0b80,c73c0b80,c73c0b80,...) at mi_switch+0x11a sleepq_switch(c73c0b80,0,c0c7bbee,260,c73c0b80,...) at sleepq_switch+0xd3 sleepq_wait(c73baacc,0,e78c4cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73baacc,c73babfc,c0c69704,6c,c73baad4,...) at _cv_wait+0x1b0 usb_process(c73baac4,e78c4d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73baac4,e78c4d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78c4d60, ebp = 0 --- Tracing command usb pid 14 tid 100040 td 0xc73ac000 sched_switch(c73ac000,0,104,c73ac000,dc3f3b0e,...) at sched_switch+0x28a mi_switch(104,0,c73ac000,c73ac000,c73ac000,...) at mi_switch+0x11a sleepq_switch(c73ac000,0,c0c7bbee,260,c73ac000,...) at sleepq_switch+0xd3 sleepq_wait(c73b7b5c,0,e78bdcac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73b7b5c,c73b7bfc,c0c69704,6c,c73b7b64,...) at _cv_wait+0x1b0 usb_process(c73b7b54,e78bdd28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73b7b54,e78bdd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78bdd60, ebp = 0 --- Tracing command usb pid 14 tid 100039 td 0xc73ac2e0 sched_switch(c73ac2e0,0,104,c73ac2e0,b1087a56,...) at sched_switch+0x28a mi_switch(104,0,c73ac2e0,c73ac2e0,c73ac2e0,...) at mi_switch+0x11a sleepq_switch(c73ac2e0,0,c0c7bbee,260,c73ac2e0,...) at sleepq_switch+0xd3 sleepq_wait(c73b7b2c,0,e78bacac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73b7b2c,c73b7bfc,c0c69704,6c,c73b7b34,...) at _cv_wait+0x1b0 usb_process(c73b7b24,e78bad28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73b7b24,e78bad28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78bad60, ebp = 0 --- Tracing command usb pid 14 tid 100038 td 0xc73ac5c0 sched_switch(c73ac5c0,0,104,c73ac5c0,dbdc2abe,...) at sched_switch+0x28a mi_switch(104,0,c73ac5c0,c73ac5c0,c73ac5c0,...) at mi_switch+0x11a sleepq_switch(c73ac5c0,0,c0c7bbee,260,c73ac5c0,...) at sleepq_switch+0xd3 sleepq_wait(c73b7afc,0,e78b7cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73b7afc,c73b7bfc,c0c69704,6c,c73b7b04,...) at _cv_wait+0x1b0 usb_process(c73b7af4,e78b7d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73b7af4,e78b7d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78b7d60, ebp = 0 --- Tracing command usb pid 14 tid 100037 td 0xc73ac8a0 sched_switch(c73ac8a0,0,104,c73ac8a0,dbdc1a59,...) at sched_switch+0x28a mi_switch(104,0,c73ac8a0,c73ac8a0,c73ac8a0,...) at mi_switch+0x11a sleepq_switch(c73ac8a0,0,c0c7bbee,260,c73ac8a0,...) at sleepq_switch+0xd3 sleepq_wait(c73b7acc,0,e78b4cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73b7acc,c73b7bfc,c0c69704,6c,c73b7ad4,...) at _cv_wait+0x1b0 usb_process(c73b7ac4,e78b4d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73b7ac4,e78b4d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78b4d60, ebp = 0 --- Tracing command usb pid 14 tid 100035 td 0xc73ae000 sched_switch(c73ae000,0,104,c73ae000,dbdc088e,...) at sched_switch+0x28a mi_switch(104,0,c73ae000,c73ae000,c73ae000,...) at mi_switch+0x11a sleepq_switch(c73ae000,0,c0c7bbee,260,c73ae000,...) at sleepq_switch+0xd3 sleepq_wait(c73a6b5c,0,e78adcac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73a6b5c,c73a6bfc,c0c69704,6c,c73a6b64,...) at _cv_wait+0x1b0 usb_process(c73a6b54,e78add28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73a6b54,e78add28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78add60, ebp = 0 --- Tracing command usb pid 14 tid 100034 td 0xc73ae2e0 sched_switch(c73ae2e0,0,104,c73ae2e0,b0d17f82,...) at sched_switch+0x28a mi_switch(104,0,c73ae2e0,c73ae2e0,c73ae2e0,...) at mi_switch+0x11a sleepq_switch(c73ae2e0,0,c0c7bbee,260,c73ae2e0,...) at sleepq_switch+0xd3 sleepq_wait(c73a6b2c,0,e78aacac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73a6b2c,c73a6bfc,c0c69704,6c,c73a6b34,...) at _cv_wait+0x1b0 usb_process(c73a6b24,e78aad28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73a6b24,e78aad28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78aad60, ebp = 0 --- Tracing command usb pid 14 tid 100033 td 0xc73ae5c0 sched_switch(c73ae5c0,0,104,c73ae5c0,db7281ca,...) at sched_switch+0x28a mi_switch(104,0,c73ae5c0,c73ae5c0,c73ae5c0,...) at mi_switch+0x11a sleepq_switch(c73ae5c0,0,c0c7bbee,260,c73ae5c0,...) at sleepq_switch+0xd3 sleepq_wait(c73a6afc,0,e78a7cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73a6afc,c73a6bfc,c0c69704,6c,c73a6b04,...) at _cv_wait+0x1b0 usb_process(c73a6af4,e78a7d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73a6af4,e78a7d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78a7d60, ebp = 0 --- Tracing command usb pid 14 tid 100032 td 0xc73ae8a0 sched_switch(c73ae8a0,0,104,c73ae8a0,db726f00,...) at sched_switch+0x28a mi_switch(104,0,c73ae8a0,c73ae8a0,c73ae8a0,...) at mi_switch+0x11a sleepq_switch(c73ae8a0,0,c0c7bbee,260,c73ae8a0,...) at sleepq_switch+0xd3 sleepq_wait(c73a6acc,0,e78a4cac,1,0,...) at sleepq_wait+0x39 _cv_wait(c73a6acc,c73a6bfc,c0c69704,6c,c73a6ad4,...) at _cv_wait+0x1b0 usb_process(c73a6ac4,e78a4d28,c0c750a9,359,c727a000,...) at usb_process+0x156 fork_exit(c07d45d0,c73a6ac4,e78a4d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78a4d60, ebp = 0 --- Tracing command yarrow pid 13 tid 100017 td 0xc72785c0 sched_switch(c72785c0,0,104,c72785c0,8130bd7c,...) at sched_switch+0x28a mi_switch(104,0,c72785c0,2,2,...) at mi_switch+0x11a sleepq_switch(c72785c0,0,c0c7bbee,283,2,...) at sleepq_switch+0xd3 sleepq_timedwait(c0dc7b64,0,c0c70b1f,2,0,...) at sleepq_timedwait+0x3e _sleep(c0dc7b64,0,0,c0c70b1f,64,...) at _sleep+0x2a2 pause(c0c70b1f,64,c0c5cfb8,111,0,...) at pause+0x30 random_kthread(0,c6f2fd28,c0c750a9,359,c727a2b0,...) at random_kthread+0x1b4 fork_exit(c0747a70,0,c6f2fd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f2fd60, ebp = 0 --- Tracing command g_down pid 4 tid 100015 td 0xc7278b80 sched_switch(c7278b80,0,104,c7278b80,7701f681,...) at sched_switch+0x28a mi_switch(104,0,c7278b80,c7278b80,c7278b80,...) at mi_switch+0x11a sleepq_switch(c7278b80,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c0dc5864,4c,c0c70b1f,0,0,...) at sleepq_wait+0x39 _sleep(c0dc5864,c0dc57c8,24c,c0c70b1f,0,...) at _sleep+0x2d2 g_io_schedule_down(c7278b80,0,c0c71786,74,0,...) at g_io_schedule_down+0x58 g_down_procbody(0,c6f29d28,c0c750a9,359,c727a560,...) at g_down_procbody+0x69 fork_exit(c08400c0,0,c6f29d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f29d60, ebp = 0 --- Tracing command g_up pid 3 tid 100014 td 0xc7279000 sched_switch(c7279000,0,104,c7279000,770ca3c2,...) at sched_switch+0x28a mi_switch(104,0,c7279000,c7279000,c7279000,...) at mi_switch+0x11a sleepq_switch(c7279000,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c0dc5860,4c,c0c70b1f,0,0,...) at sleepq_wait+0x39 _sleep(c0dc5860,c0dc57e8,24c,c0c70b1f,0,...) at _sleep+0x2d2 g_io_schedule_up(c7279000,0,c0c71786,5d,0,...) at g_io_schedule_up+0xae g_up_procbody(0,c6f26d28,c0c750a9,359,c716f000,...) at g_up_procbody+0x69 fork_exit(c0840130,0,c6f26d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f26d60, ebp = 0 --- Tracing command g_event pid 2 tid 100013 td 0xc71732e0 sched_switch(c71732e0,0,104,c71732e0,5effe506,...) at sched_switch+0x28a mi_switch(104,0,c71732e0,c71732e0,c71732e0,...) at mi_switch+0x11a sleepq_switch(c71732e0,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c0dc5858,4c,c0c70b1f,0,0,...) at sleepq_wait+0x39 _sleep(c0dc5858,c0dc57a8,24c,c0c70b1f,0,...) at _sleep+0x2d2 g_run_events(c0dcbac0,0,c0c71786,8b) at g_run_events+0x340 g_event_procbody(0,c6f23d28,c0c750a9,359,c716f2b0,...) at g_event_procbody+0x66 fork_exit(c08401a0,0,c6f23d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f23d60, ebp = 0 --- Tracing command intr pid 12 tid 100066 td 0xc74e48a0 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100065 td 0xc74e4b80 sched_switch(c74e4b80,0,109,529,db6f33ba,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c716d070,...) at mi_switch+0x11a ithread_loop(c74e6310,e791fd28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c74e6310,e791fd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe791fd60, ebp = 0 --- Tracing command intr pid 12 tid 100063 td 0xc73c12e0 sched_switch(c73c12e0,0,109,529,622135de,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c73efef0,...) at mi_switch+0x11a ithread_loop(c74d93a0,e790fd28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c74d93a0,e790fd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe790fd60, ebp = 0 --- Tracing command intr pid 12 tid 100060 td 0xc73c1b80 sched_switch(c73c1b80,0,109,529,db6a64f1,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b50f0,...) at mi_switch+0x11a ithread_loop(c73d0610,e7903d28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c73d0610,e7903d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe7903d60, ebp = 0 --- Tracing command intr pid 12 tid 100059 td 0xc73d1000 sched_switch(c73d1000,0,109,529,e81657a3,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b53f0,...) at mi_switch+0x11a ithread_loop(c739aa70,e78ffd28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c739aa70,e78ffd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78ffd60, ebp = 0 --- Tracing command intr pid 12 tid 100054 td 0xc73d3000 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100041 td 0xc73c1000 sched_switch(c73c1000,0,109,529,336bb12,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b51f0,...) at mi_switch+0x11a ithread_loop(c739a460,e78c1d28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c739a460,e78c1d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78c1d60, ebp = 0 --- Tracing command intr pid 12 tid 100036 td 0xc73acb80 sched_switch(c73acb80,0,109,529,29ec7ad,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b5270,...) at mi_switch+0x11a ithread_loop(c739a7f0,e78b1d28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c739a7f0,e78b1d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78b1d60, ebp = 0 --- Tracing command intr pid 12 tid 100031 td 0xc73aeb80 sched_switch(c73aeb80,0,109,529,2062cc1,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b52f0,...) at mi_switch+0x11a ithread_loop(c7395610,e78a1d28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c7395610,e78a1d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe78a1d60, ebp = 0 --- Tracing command intr pid 12 tid 100030 td 0xc72792e0 sched_switch(c72792e0,0,109,529,770ba9c6,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b4ef0,...) at mi_switch+0x11a ithread_loop(c7386a70,e7792d28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c7386a70,e7792d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe7792d60, ebp = 0 --- Tracing command intr pid 12 tid 100029 td 0xc72795c0 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100028 td 0xc72798a0 sched_switch(c72798a0,0,109,529,db6fd27c,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c716cb70,...) at mi_switch+0x11a ithread_loop(c716e4f0,c6f77d28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c716e4f0,c6f77d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f77d60, ebp = 0 --- Tracing command intr pid 12 tid 100027 td 0xc7279b80 sched_switch(c7279b80,0,109,529,ed823cb8,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c7348670,...) at mi_switch+0x11a ithread_loop(c716e1e0,c6f4dd28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c716e1e0,c6f4dd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f4dd60, ebp = 0 --- Tracing command intr pid 12 tid 100026 td 0xc7349000 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100024 td 0xc73495c0 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100018 td 0xc72782e0 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100012 td 0xc71735c0 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100011 td 0xc71738a0 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100010 td 0xc7173b80 sched_switch(c7173b80,0,109,529,74dd6b0a,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b4c70,...) at mi_switch+0x11a ithread_loop(c716e060,c6f1ad28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c716e060,c6f1ad28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f1ad60, ebp = 0 --- Tracing command intr pid 12 tid 100009 td 0xc71b6000 sched_switch(c71b6000,0,109,529,8130c1ab,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b4cf0,...) at mi_switch+0x11a ithread_loop(c716e070,c6f17d28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c716e070,c6f17d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f17d60, ebp = 0 --- Tracing command intr pid 12 tid 100008 td 0xc71b62e0 sched_switch(c71b62e0,0,109,529,328c2fd2,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b4d70,...) at mi_switch+0x11a ithread_loop(c716e080,c6f14d28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c716e080,c6f14d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f14d60, ebp = 0 --- Tracing command intr pid 12 tid 100007 td 0xc71b65c0 sched_switch(c71b65c0,0,109,529,869d4ff8,...) at sched_switch+0x28a mi_switch(109,0,c0c75265,529,c71b4df0,...) at mi_switch+0x11a ithread_loop(c716e090,c6f11d28,c0c750a9,359,c716f560,...) at ithread_loop+0x177 fork_exit(c08787e0,c716e090,c6f11d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f11d60, ebp = 0 --- Tracing command idle pid 11 tid 100006 td 0xc7171000 cpustop_handler(1,c6f0dc0c,c0b9de66,80000000,369e99,...) at cpustop_handler+0x34 ipi_nmi_handler(80000000,369e99,0,10f,c716f810,...) at ipi_nmi_handler+0x2f trap(c6f0dc18) at trap+0x36 calltrap() at calltrap+0x6 --- trap 0x13, eip = 0xc0b7e005, esp = 0xc6f0dc58, ebp = 0xc6f0dc58 --- acpi_cpu_c1(c6f0dc74,c0d944d0,0,ffffffff,c6f0dca0,...) at acpi_cpu_c1+0x5 acpi_cpu_idle(ffffffff,c0dcbac0,c6f0dca0,c0b9149b,1,...) at acpi_cpu_idle+0xe9 cpu_idle_amdc1e(1,c6f0dce8,c08bab4e,1,c6f0dcc4,...) at cpu_idle_amdc1e+0x56 cpu_idle(1,c6f0dcc4,c0c79958,a08,c7171000,...) at cpu_idle+0x1b sched_idletd(0,c6f0dd28,c0c750a9,359,c716f810,...) at sched_idletd+0x22e fork_exit(c08ba920,0,c6f0dd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f0dd60, ebp = 0 --- Tracing command idle pid 11 tid 100005 td 0xc71712e0 sched_switch(c71712e0,0,60c,815,770ca0a4,...) at sched_switch+0x28a mi_switch(60c,0,c0c79958,815,1,...) at mi_switch+0x11a sched_preempt(c71712e0,1,0,c6f0ac58,c0b8613f,...) at sched_preempt+0x7c ipi_bitmap_handler(8,28,28,c7284218,c7284200,...) at ipi_bitmap_handler+0x34 Xipi_intr_bitmap_handler() at Xipi_intr_bitmap_handler+0x2f --- interrupt, eip = 0xc0b7e005, esp = 0xc6f0ac58, ebp = 0xc6f0ac58 --- acpi_cpu_c1(c6f0ac74,c0d944d0,1,ffffffff,c6f0aca0,...) at acpi_cpu_c1+0x5 acpi_cpu_idle(ffffffff,c0dcc140,c6f0aca0,c0b9149b,1,...) at acpi_cpu_idle+0xe9 cpu_idle_amdc1e(1,c6f0ace8,c08bab4e,1,c6f0acc4,...) at cpu_idle_amdc1e+0x56 cpu_idle(1,c6f0acc4,c0c79958,a08,c71712e0,...) at cpu_idle+0x1b sched_idletd(0,c6f0ad28,c0c750a9,359,c716f810,...) at sched_idletd+0x22e fork_exit(c08ba920,0,c6f0ad28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f0ad60, ebp = 0 --- Tracing command idle pid 11 tid 100004 td 0xc71715c0 cpustop_handler(4,c6f07c0c,c0b9de66,c0dc7db8,c6f07ba0,...) at cpustop_handler+0x34 ipi_nmi_handler(c0dc7db8,c6f07ba0,c088d9bd,c0dc7db8,c716f810,...) at ipi_nmi_handler+0x2f trap(c6f07c18) at trap+0x36 calltrap() at calltrap+0x6 --- trap 0x13, eip = 0xc0b7e005, esp = 0xc6f07c58, ebp = 0xc6f07c58 --- acpi_cpu_c1(c6f07c74,c0d944d0,2,ffffffff,c6f07ca0,...) at acpi_cpu_c1+0x5 acpi_cpu_idle(ffffffff,c0dcc7c0,c6f07ca0,c0b9149b,0,...) at acpi_cpu_idle+0xe9 cpu_idle_amdc1e(0,c6f07ce8,c08bab4e,0,c6f07cc4,...) at cpu_idle_amdc1e+0x56 cpu_idle(0,c6f07cc4,c0c79958,a08,c71715c0,...) at cpu_idle+0x1b sched_idletd(0,c6f07d28,c0c750a9,359,c716f810,...) at sched_idletd+0x22e fork_exit(c08ba920,0,c6f07d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f07d60, ebp = 0 --- Tracing command idle pid 11 tid 100003 td 0xc71718a0 cpustop_handler(8,c6f04c0c,c0b9de66,c0dc7df4,c6f04ba0,...) at cpustop_handler+0x34 ipi_nmi_handler(c0dc7df4,c6f04ba0,c088d9bd,c0dc7df4,c716f810,...) at ipi_nmi_handler+0x2f trap(c6f04c18) at trap+0x36 calltrap() at calltrap+0x6 --- trap 0x13, eip = 0xc0b7e005, esp = 0xc6f04c58, ebp = 0xc6f04c58 --- acpi_cpu_c1(c6f04c74,c0d944d0,3,ffffffff,c6f04ca0,...) at acpi_cpu_c1+0x5 acpi_cpu_idle(ffffffff,c0dcce40,c6f04ca0,c0b9149b,0,...) at acpi_cpu_idle+0xe9 cpu_idle_amdc1e(0,c6f04ce8,c08bab4e,0,c6f04cc4,...) at cpu_idle_amdc1e+0x56 cpu_idle(0,c6f04cc4,c0c79958,a08,c71718a0,...) at cpu_idle+0x1b sched_idletd(0,c6f04d28,c0c750a9,359,c716f810,...) at sched_idletd+0x22e fork_exit(c08ba920,0,c6f04d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f04d60, ebp = 0 --- Tracing command init pid 1 tid 100002 td 0xc7171b80 sched_switch(c7171b80,0,104,c7171b80,c2cdf7ea,...) at sched_switch+0x28a mi_switch(104,0,c7171b80,100,100,...) at mi_switch+0x11a sleepq_switch(c7171b80,0,c0c7bbee,1a0,5c,...) at sleepq_switch+0xd3 sleepq_catch_signals(0,c0c7bbee,160,100,100,...) at sleepq_catch_signals+0x51 sleepq_wait_sig(c716fac0,5c,c0c7d303,100,0,...) at sleepq_wait_sig+0x17 _sleep(c716fac0,c716fb48,15c,c0c7d303,0,...) at _sleep+0x2bc kern_wait(c7171b80,ffffffff,c6f00c44,2,0,...) at kern_wait+0xa76 wait4(c7171b80,c6f00cec,bfbfe8c8,1,0,...) at wait4+0x3b syscallenter(c7171b80,c6f00ce4,c0b9e52e,c7171b80,c6f00d28,...) at syscallenter+0x246 syscall(c6f00d28) at syscall+0x4f Xint0x80_syscall() at Xint0x80_syscall+0x21 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x8054d7b, esp = 0xbfbfe89c, ebp = 0xbfbfe8b8 --- Tracing command audit pid 10 tid 100001 td 0xc7173000 sched_switch(c7173000,0,104,c7173000,db711a59,...) at sched_switch+0x28a mi_switch(104,0,c7173000,c7173000,c7173000,...) at mi_switch+0x11a sleepq_switch(c7173000,0,c0c7bbee,260,c7173000,...) at sleepq_switch+0xd3 sleepq_wait(c0f3fe80,0,c6efdc8c,1,0,...) at sleepq_wait+0x39 _cv_wait(c0f3fe80,c0f3fe64,c0c95f0d,192,0,...) at _cv_wait+0x1b0 audit_worker(0,c6efdd28,c0c750a9,359,c7170000,...) at audit_worker+0x50 fork_exit(c0a7fc60,0,c6efdd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6efdd60, ebp = 0 --- Tracing command kernel pid 0 tid 100061 td 0xc73c18a0 sched_switch(c73c18a0,0,104,c73c18a0,db6a9bea,...) at sched_switch+0x28a mi_switch(104,0,c73c18a0,c73c18a0,c73c18a0,...) at mi_switch+0x11a sleepq_switch(c73c18a0,0,c0c7bbee,260,c0dc5bf0,...) at sleepq_switch+0xd3 sleepq_wait(c73f6580,0,c0c78d24,c0c70b1f,0,...) at sleepq_wait+0x39 msleep_spin(c73f6580,c73f6598,c0c70b1f,0,c0c750a9,...) at msleep_spin+0x1ce taskqueue_thread_loop(c73fb49c,e7909d28,c0c750a9,359,c0dc5940,...) at taskqueue_thread_loop+0x8f fork_exit(c08d2100,c73fb49c,e7909d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe7909d60, ebp = 0 --- Tracing command kernel pid 0 tid 100025 td 0xc73492e0 sched_switch(c73492e0,0,104,c73492e0,ddf965e9,...) at sched_switch+0x28a mi_switch(104,0,c73492e0,c73492e0,c73492e0,...) at mi_switch+0x11a sleepq_switch(c73492e0,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c733cac0,0,c0c70b1f,0,0,...) at sleepq_wait+0x39 _sleep(c733cac0,c733cad8,0,c0c70b1f,0,...) at _sleep+0x2d2 taskqueue_thread_loop(c0dda548,c6f47d28,c0c750a9,359,c0dc5940,...) at taskqueue_thread_loop+0xb5 fork_exit(c08d2100,c0dda548,c6f47d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f47d60, ebp = 0 --- Tracing command kernel pid 0 tid 100023 td 0xc73498a0 sched_switch(c73498a0,0,104,c73498a0,ddf406d4,...) at sched_switch+0x28a mi_switch(104,0,c73498a0,c73498a0,c73498a0,...) at mi_switch+0x11a sleepq_switch(c73498a0,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c733cb80,0,c0c70b1f,0,0,...) at sleepq_wait+0x39 _sleep(c733cb80,c733cb98,0,c0c70b1f,0,...) at _sleep+0x2d2 taskqueue_thread_loop(c0f40464,c6f41d28,c0c750a9,359,c0dc5940,...) at taskqueue_thread_loop+0xb5 fork_exit(c08d2100,c0f40464,c6f41d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f41d60, ebp = 0 --- Tracing command kernel pid 0 tid 100022 td 0xc7349b80 sched_switch(c7349b80,0,104,c7349b80,ddf3f4e4,...) at sched_switch+0x28a mi_switch(104,0,c7349b80,c7349b80,c7349b80,...) at mi_switch+0x11a sleepq_switch(c7349b80,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c733cd00,0,c0c78d24,c0c70b1f,0,...) at sleepq_wait+0x39 msleep_spin(c733cd00,c733cd18,c0c70b1f,0,c0c750a9,...) at msleep_spin+0x1ce taskqueue_thread_loop(c0d97120,c6f3ed28,c0c750a9,359,c0dc5940,...) at taskqueue_thread_loop+0x8f fork_exit(c08d2100,c0d97120,c6f3ed28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f3ed60, ebp = 0 --- Tracing command kernel pid 0 tid 100021 td 0xc71b68a0 sched_switch(c71b68a0,0,104,c71b68a0,ddf3e8b0,...) at sched_switch+0x28a mi_switch(104,0,c71b68a0,c71b68a0,c71b68a0,...) at mi_switch+0x11a sleepq_switch(c71b68a0,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c733cd00,0,c0c78d24,c0c70b1f,0,...) at sleepq_wait+0x39 msleep_spin(c733cd00,c733cd18,c0c70b1f,0,c0c750a9,...) at msleep_spin+0x1ce taskqueue_thread_loop(c0d97120,c6f3bd28,c0c750a9,359,c0dc5940,...) at taskqueue_thread_loop+0x8f fork_exit(c08d2100,c0d97120,c6f3bd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f3bd60, ebp = 0 --- Tracing command kernel pid 0 tid 100020 td 0xc71b6b80 sched_switch(c71b6b80,0,104,c71b6b80,ddf3d9a4,...) at sched_switch+0x28a mi_switch(104,0,c71b6b80,c71b6b80,c71b6b80,...) at mi_switch+0x11a sleepq_switch(c71b6b80,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c733cd00,0,c0c78d24,c0c70b1f,0,...) at sleepq_wait+0x39 msleep_spin(c733cd00,c733cd18,c0c70b1f,0,c0c750a9,...) at msleep_spin+0x1ce taskqueue_thread_loop(c0d97120,c6f38d28,c0c750a9,359,c0dc5940,...) at taskqueue_thread_loop+0x8f fork_exit(c08d2100,c0d97120,c6f38d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f38d60, ebp = 0 --- Tracing command kernel pid 0 tid 100019 td 0xc7278000 sched_switch(c7278000,0,104,c7278000,ddf06f9a,...) at sched_switch+0x28a mi_switch(104,0,c7278000,c7278000,c7278000,...) at mi_switch+0x11a sleepq_switch(c7278000,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c733cd40,0,c0c70b1f,0,0,...) at sleepq_wait+0x39 _sleep(c733cd40,c733cd58,0,c0c70b1f,0,...) at _sleep+0x2d2 taskqueue_thread_loop(c0dc6284,c6f35d28,c0c750a9,359,c0dc5940,...) at taskqueue_thread_loop+0xb5 fork_exit(c08d2100,c0dc6284,c6f35d28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f35d60, ebp = 0 --- Tracing command kernel pid 0 tid 100016 td 0xc72788a0 sched_switch(c72788a0,0,104,c72788a0,bcb30c70,...) at sched_switch+0x28a mi_switch(104,0,c72788a0,c72788a0,c72788a0,...) at mi_switch+0x11a sleepq_switch(c72788a0,0,c0c7bbee,260,0,...) at sleepq_switch+0xd3 sleepq_wait(c7150940,0,c0c70b1f,0,0,...) at sleepq_wait+0x39 _sleep(c7150940,c7150958,0,c0c70b1f,0,...) at _sleep+0x2d2 taskqueue_thread_loop(c0dd8fe0,c6f2cd28,c0c750a9,359,c0dc5940,...) at taskqueue_thread_loop+0xb5 fork_exit(c08d2100,c0dd8fe0,c6f2cd28) at fork_exit+0x94 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc6f2cd60, ebp = 0 --- Tracing command kernel pid 0 tid 100000 td 0xc0dc5bf0 sched_switch(c0dc5bf0,0,104,c0dc5bf0,f063408e,...) at sched_switch+0x28a mi_switch(104,0,c0dc5bf0,0,0,...) at mi_switch+0x11a sleepq_switch(c0dc5bf0,0,c0c7bbee,283,0,...) at sleepq_switch+0xd3 sleepq_timedwait(c0dc5940,44,c0c79f33,0,0,...) at sleepq_timedwait+0x3e _sleep(c0dc5940,0,44,c0c79f33,2710,...) at _sleep+0x2a2 scheduler(0,141ec00,141ec00,141e000,1425000,...) at scheduler+0x217 mi_startup() at mi_startup+0xac begin() at begin+0x2c db:0:allt> call doadump Physical memory: 3439 MB Dumping 101 MB: 86 70 54 38 22 6 Dump complete = 0xf db:0:doadump> reset cpu_reset: Restarting BSP cpu_reset_proxy: Stopped CPU 1 (kgdb) bt #0 doadump () at pcpu.h:231 #1 0xc04d30a9 in db_fncall (dummy1=0xc08c70ea, dummy2=0x0, dummy3=0xffffffff, dummy4=0xe9b79518 ",\225·é") at ../../../ddb/db_command.c:548 #2 0xc04d34df in db_command (last_cmdp=0xc0d952fc, cmd_table=0x0, dopager=0x0) at ../../../ddb/db_command.c:445 #3 0xc04d3594 in db_command_script (command=0xc0d96208 "call doadump") at ../../../ddb/db_command.c:516 #4 0xc04d76b0 in db_script_exec (scriptname=0xc0d95b60 "doadump", warnifnotfound=Variable "warnifnotfound" is not available. ) at ../../../ddb/db_script.c:302 #5 0xc04d7741 in db_run_cmd (addr=0x1, have_addr=0x0, count=0xc0f92ec0, modif=0xe9b79650 "") at ../../../ddb/db_script.c:375 #6 0xc04d34a1 in db_command (last_cmdp=0xc0d952fc, cmd_table=0x0, dopager=0x1) at ../../../ddb/db_command.c:445 #7 0xc04d35fa in db_command_loop () at ../../../ddb/db_command.c:498 #8 0xc04d547d in db_trap (type=0x3, code=0x0) at ../../../ddb/db_main.c:229 #9 0xc08c7262 in kdb_trap (type=0x3, code=0x0, tf=0xe9b79800) at ../../../kern/subr_kdb.c:548 #10 0xc0b9e43c in trap (frame=0xe9b79800) at ../../../i386/i386/trap.c:723 #11 0xc0b859ec in calltrap () at ../../../i386/i386/exception.s:168 #12 0xc08c70ea in kdb_enter (why=0xc0c78759 "panic", msg=0xc0c78759 "panic") at cpufunc.h:71 #13 0xc089bba4 in panic (fmt=0xc0c80b60 "bqrelse: free buffer onto another queue???") at ../../../kern/kern_shutdown.c:575 #14 0xc090be54 in bqrelse (bp=0xdb1071c8) at ../../../kern/vfs_bio.c:1544 #15 0xc090cdba in bdwrite (bp=0xdb1071c8) at ../../../kern/vfs_bio.c:1047 #16 0xc0ab871c in ufs_direnter (dvp=0xc7a38c18, tvp=0xc7a4f408, dirp=0xe9b799f0, cnp=0xe9b79bd0, newdirbp=0xdb1071c8, isrename=0x0) at ../../../ufs/ufs/ufs_lookup.c:1107 #17 0xc0abefeb in ufs_mkdir (ap=0xe9b79bf8) at ../../../ufs/ufs/ufs_vnops.c:1955 #18 0xc0bbdd34 in VOP_MKDIR_APV (vop=0xc0d7a0a0, a=0xe9b79bf8) at vnode_if.c:1534 #19 0xc0924d0b in kern_mkdirat (td=0xc778c2e0, fd=0xffffff9c, path=0xbfbfef5a
, segflg=UIO_USERSPACE, mode=Variable "mode" is not available. ) at vnode_if.h:665 #20 0xc0924dde in kern_mkdir (td=0xc778c2e0, path=0xbfbfef5a
, segflg=UIO_USERSPACE, mode=0x1ff) at ../../../kern/vfs_syscalls.c:3721 #21 0xc0924e09 in mkdir (td=0xc778c2e0, uap=0xe9b79cec) at ../../../kern/vfs_syscalls.c:3700 #22 0xc08d2a26 in syscallenter (td=0xc778c2e0, sa=0xe9b79ce4) at ../../../kern/subr_trap.c:326 #23 0xc0b9ddaf in syscall (frame=0xe9b79d28) at ../../../i386/i386/trap.c:1088 #24 0xc0b85a51 in Xint0x80_syscall () at ../../../i386/i386/exception.s:266 #25 0x00000033 in ?? () Previous frame inner to this frame (corrupt stack?) (kgdb) f 14 #14 0xc090be54 in bqrelse (bp=0xdb1071c8) at ../../../kern/vfs_bio.c:1544 1544 panic("bqrelse: free buffer onto another queue???"); (kgdb) l 1539 bremfreel(bp); 1540 if (bo != NULL) 1541 BO_UNLOCK(bo); 1542 } 1543 if (bp->b_qindex != QUEUE_NONE) 1544 panic("bqrelse: free buffer onto another queue???"); 1545 /* buffers with stale but valid contents */ 1546 if (bp->b_flags & B_DELWRI) { 1547 if (bp->b_flags & B_NEEDSGIANT) 1548 bp->b_qindex = QUEUE_DIRTY_GIANT; (kgdb) info loc bo = (struct bufobj *) 0xc7a4f4fc (kgdb) p *bp $1 = {b_bufobj = 0xc7a4f4fc, b_bcount = 0x800, b_caller1 = 0x0, b_data = 0xc7801800 "", b_error = 0x0, b_iocmd = 0x2, b_ioflags = 0x0, b_iooffset = 0x0, b_resid = 0x0, b_iodone = 0, b_blkno = 0x9b0d80, b_offset = 0x0, b_bobufs = {tqe_next = 0x0, tqe_prev = 0xc7a4f520}, b_left = 0x0, b_right = 0x0, b_vflags = 0x0, b_freelist = {tqe_next = 0x0, tqe_prev = 0xdb107078}, b_qindex = 0x2, b_flags = 0x100a0, b_xflags = 0x1, b_lock = { lock_object = {lo_name = 0xc0c80cf7 "bufwait", lo_flags = 0x5730000, lo_data = 0x0, lo_witness = 0xc712df60}, lk_lock = 0x1, lk_timo = 0x0, lk_pri = 0x50, lk_stack = {depth = 0xc, pcs = {0xc08879d0, 0xc090b433, 0xc090caa0, 0xc0a96624, 0xc0abee46, 0xc0bbdd34, 0xc0924d0b, 0xc0924dde, 0xc0924e09, 0xc08d2a26, 0xc0b9ddaf, 0xc0b85a51, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}}, b_bufsize = 0x800, b_runningbufspace = 0x0, b_kvabase = 0xdb839000
, b_kvasize = 0x4000, b_lblkno = 0x0, b_vp = 0xc7a4f408, b_dirtyoff = 0x0, b_dirtyend = 0x0, b_rcred = 0x0, b_wcred = 0x0, b_saveaddr = 0xdb839000, b_pager = { pg_reqpage = 0x0}, b_cluster = {cluster_head = {tqh_first = 0x0, tqh_last = 0x0}, cluster_entry = {tqe_next = 0x0, tqe_prev = 0x0}}, b_pages = {0x0 }, b_npages = 0x0, b_dep = {lh_first = 0xc77c5220}, b_fsprivate1 = 0x0, b_fsprivate2 = 0x0, b_fsprivate3 = 0x0, b_pin_count = 0x0} (kgdb) p *bo $2 = {bo_mtx = {lock_object = {lo_name = 0xc0c82ee3 "bufobj interlock", lo_flags = 0x1030000, lo_data = 0x0, lo_witness = 0xc712ff78}, mtx_lock = 0x4}, bo_clean = {bv_hd = {tqh_first = 0x0, tqh_last = 0xc7a4f510}, bv_root = 0x0, bv_cnt = 0x0}, bo_dirty = {bv_hd = {tqh_first = 0xdb1071c8, tqh_last = 0xdb107200}, bv_root = 0xdb1071c8, bv_cnt = 0x1}, bo_numoutput = 0x0, bo_flag = 0x1, bo_ops = 0xc0d68080, bo_bsize = 0x4000, bo_object = 0x0, bo_synclist = {le_next = 0x0, le_prev = 0xc74d3210}, bo_private = 0xc7a4f408, __bo_vnode = 0xc7a4f408} (kgdb) f 16 #16 0xc0ab871c in ufs_direnter (dvp=0xc7a38c18, tvp=0xc7a4f408, dirp=0xe9b799f0, cnp=0xe9b79bd0, newdirbp=0xdb1071c8, isrename=0x0) at ../../../ufs/ufs/ufs_lookup.c:1107 1107 bdwrite(newdirbp); (kgdb) l 1102 if (DOINGSOFTDEP(dvp)) { 1103 (void) softdep_setup_directory_add(bp, dp, 1104 dp->i_offset + (caddr_t)ep - dirbuf, 1105 dirp->d_ino, newdirbp, 0); 1106 if (newdirbp != NULL) 1107 bdwrite(newdirbp); 1108 bdwrite(bp); 1109 } else { 1110 if (DOINGASYNC(dvp)) { 1111 bdwrite(bp); (kgdb) p *dvp $3 = {v_type = VDIR, v_tag = 0xc0c72d69 "ufs", v_op = 0xc0d79be0, v_data = 0xc77ea15c, v_mount = 0xc7a3e870, v_nmntvnodes = {tqe_next = 0xc7a38ac0, tqe_prev = 0xc7a3e8a4}, v_un = {vu_mount = 0x0, vu_socket = 0x0, vu_cdev = 0x0, vu_fifoinfo = 0x0, vu_yield = 0x0}, v_hashlist = {le_next = 0x0, le_prev = 0xc7515ad8}, v_hash = 0x2, v_cache_src = {lh_first = 0xc7813168}, v_cache_dst = {tqh_first = 0x0, tqh_last = 0xc7a38c48}, v_cache_dd = 0x0, v_cstart = 0x0, v_lasta = 0x0, v_lastw = 0x0, v_clen = 0x0, v_lock = {lock_object = {lo_name = 0xc0c72d69 "ufs", lo_flags = 0x57b0000, lo_data = 0x0, lo_witness = 0xc7131500}, lk_lock = 0xc778c2e0, lk_timo = 0x33, lk_pri = 0x50, lk_stack = {depth = 0x11, pcs = {0xc08873f5, 0xc0ab398a, 0xc0bbd9ed, 0xc092d65d, 0xc0920f8c, 0xc0914e3d, 0xc0aad649, 0xc0aadbbe, 0xc0abc898, 0xc09162f1, 0xc0916cff, 0xc0924b58, 0xc0924dde, 0xc0924e09, 0xc08d2a26, 0xc0b9ddaf, 0xc0b85a51, 0x0}}}, v_interlock = {lock_object = {lo_name = 0xc0c7cd56 "vnode interlock", lo_flags = 0x1030000, lo_data = 0x0, lo_witness = 0xc712b248}, mtx_lock = 0x4}, v_vnlock = 0xc7a38c70, v_holdcnt = 0x4, v_usecount = 0x1, v_iflag = 0x0, v_vflag = 0x1, v_writecount = 0x0, v_freelist = {tqe_next = 0x0, tqe_prev = 0xc7a3c39c}, v_bufobj = {bo_mtx = {lock_object = { lo_name = 0xc0c82ee3 "bufobj interlock", lo_flags = 0x1030000, lo_data = 0x0, lo_witness = 0xc712ff78}, mtx_lock = 0x4}, bo_clean = {bv_hd = {tqh_first = 0xdb104cc4, tqh_last = 0xdb104cfc}, bv_root = 0xdb104cc4, bv_cnt = 0x1}, bo_dirty = {bv_hd = {tqh_first = 0x0, tqh_last = 0xc7a38d30}, bv_root = 0x0, bv_cnt = 0x0}, bo_numoutput = 0x0, bo_flag = 0x0, bo_ops = 0xc0d68080, bo_bsize = 0x4000, bo_object = 0xc7a3b6e8, bo_synclist = { le_next = 0x0, le_prev = 0x0}, bo_private = 0xc7a38c18, __bo_vnode = 0xc7a38c18}, v_pollinfo = 0x0, v_label = 0x0, v_lockf = 0x0} (kgdb) p *tvp $4 = {v_type = VDIR, v_tag = 0xc0c72d69 "ufs", v_op = 0xc0d79be0, v_data = 0xc77e2984, v_mount = 0xc7a3e870, v_nmntvnodes = {tqe_next = 0x0, tqe_prev = 0xc7a4fd84}, v_un = {vu_mount = 0x0, vu_socket = 0x0, vu_cdev = 0x0, vu_fifoinfo = 0x0, vu_yield = 0x0}, v_hashlist = {le_next = 0x0, le_prev = 0xc7542ad0}, v_hash = 0x9b400, v_cache_src = {lh_first = 0x0}, v_cache_dst = {tqh_first = 0x0, tqh_last = 0xc7a4f438}, v_cache_dd = 0x0, v_cstart = 0x0, v_lasta = 0x0, v_lastw = 0x0, v_clen = 0x0, v_lock = {lock_object = {lo_name = 0xc0c72d69 "ufs", lo_flags = 0x57b0000, lo_data = 0x0, lo_witness = 0xc7131500}, lk_lock = 0xc778c2e0, lk_timo = 0x33, lk_pri = 0x50, lk_stack = {depth = 0xc, pcs = {0xc08879d0, 0xc0aad7d3, 0xc0aadbbe, 0xc0a918b1, 0xc0abe8a6, 0xc0bbdd34, 0xc0924d0b, 0xc0924dde, 0xc0924e09, 0xc08d2a26, 0xc0b9ddaf, 0xc0b85a51, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}}, v_interlock = {lock_object = {lo_name = 0xc0c7cd56 "vnode interlock", lo_flags = 0x1030000, lo_data = 0x0, lo_witness = 0xc712b248}, mtx_lock = 0x4}, v_vnlock = 0xc7a4f460, v_holdcnt = 0x2, v_usecount = 0x1, v_iflag = 0x0, v_vflag = 0x0, v_writecount = 0x0, v_freelist = {tqe_next = 0x0, tqe_prev = 0x0}, v_bufobj = {bo_mtx = {lock_object = {lo_name = 0xc0c82ee3 "bufobj interlock", lo_flags = 0x1030000, lo_data = 0x0, lo_witness = 0xc712ff78}, mtx_lock = 0x4}, bo_clean = {bv_hd = {tqh_first = 0x0, tqh_last = 0xc7a4f510}, bv_root = 0x0, bv_cnt = 0x0}, bo_dirty = {bv_hd = {tqh_first = 0xdb1071c8, tqh_last = 0xdb107200}, bv_root = 0xdb1071c8, bv_cnt = 0x1}, bo_numoutput = 0x0, bo_flag = 0x1, bo_ops = 0xc0d68080, bo_bsize = 0x4000, bo_object = 0x0, bo_synclist = {le_next = 0x0, le_prev = 0xc74d3210}, bo_private = 0xc7a4f408, __bo_vnode = 0xc7a4f408}, v_pollinfo = 0x0, v_label = 0x0, v_lockf = 0x0} (kgdb) p *dirp $5 = {d_ino = 0x9b400, d_reclen = 0xac, d_type = 0x4, d_namlen = 0x9, d_name = ".diskless\000\023Ç\001\000\000\000x|ðÀ||ðÀ\200³\022Ç \232·é7p\215À³\000ÀÀo\036ÈÀpè£Ç@\232·é[z\215Ào\036ÈÀ\207!ÇÀ\003\000\000\000àÂxÇ\001\000\000\000\200³\022Ç\000\025\023Ç\001\000\000\000x|ðÀ||ðÀ\200³\022Çh\232·é7p\215À³\000ÀÀù4ÈÀpè£Ç\210\232·é[z\215Àù4ÈÀ\207!ÇÀ\003\000\000\000àÂxÇÄ\232·éF\002\000\000\200³\022Ç\204ÃxÇù4ÈÀÀ\232·éüz\215À\210|ðÀ\204ÃxÇx|ðÀTþÕÀù4ÈÀàÂxÇpè£Ç"...} (kgdb) p *cnp $6 = {cn_nameiop = 0x1, cn_flags = 0x508cc08, cn_thread = 0xc778c2e0, cn_cred = 0xc716d100, cn_lkflags = 0x200000, cn_pnbuf = 0xc776a800 "/var/.diskless", cn_nameptr = 0xc776a805 ".diskless", cn_namelen = 0x9, cn_consume = 0x0} (kgdb) p *newdirbp $7 = {b_bufobj = 0xc7a4f4fc, b_bcount = 0x800, b_caller1 = 0x0, b_data = 0xc7801800 "", b_error = 0x0, b_iocmd = 0x2, b_ioflags = 0x0, b_iooffset = 0x0, b_resid = 0x0, b_iodone = 0, b_blkno = 0x9b0d80, b_offset = 0x0, b_bobufs = {tqe_next = 0x0, tqe_prev = 0xc7a4f520}, b_left = 0x0, b_right = 0x0, b_vflags = 0x0, b_freelist = {tqe_next = 0x0, tqe_prev = 0xdb107078}, b_qindex = 0x2, b_flags = 0x100a0, b_xflags = 0x1, b_lock = { lock_object = {lo_name = 0xc0c80cf7 "bufwait", lo_flags = 0x5730000, lo_data = 0x0, lo_witness = 0xc712df60}, lk_lock = 0x1, lk_timo = 0x0, lk_pri = 0x50, lk_stack = {depth = 0xc, pcs = {0xc08879d0, 0xc090b433, 0xc090caa0, 0xc0a96624, 0xc0abee46, 0xc0bbdd34, 0xc0924d0b, 0xc0924dde, 0xc0924e09, 0xc08d2a26, 0xc0b9ddaf, 0xc0b85a51, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}}, b_bufsize = 0x800, b_runningbufspace = 0x0, b_kvabase = 0xdb839000
, b_kvasize = 0x4000, b_lblkno = 0x0, b_vp = 0xc7a4f408, b_dirtyoff = 0x0, b_dirtyend = 0x0, b_rcred = 0x0, b_wcred = 0x0, b_saveaddr = 0xdb839000, b_pager = { pg_reqpage = 0x0}, b_cluster = {cluster_head = {tqh_first = 0x0, tqh_last = 0x0}, cluster_entry = {tqe_next = 0x0, tqe_prev = 0x0}}, b_pages = {0x0 }, b_npages = 0x0, b_dep = {lh_first = 0xc77c5220}, b_fsprivate1 = 0x0, b_fsprivate2 = 0x0, b_fsprivate3 = 0x0, b_pin_count = 0x0} (kgdb) $ svn diff -x -p /usr/src/sys Index: /usr/src/sys/ufs/ufs/inode.h =================================================================== --- /usr/src/sys/ufs/ufs/inode.h (revision 220936) +++ /usr/src/sys/ufs/ufs/inode.h (working copy) @@ -120,7 +120,7 @@ struct inode { #define IN_CHANGE 0x0002 /* Inode change time update request. */ #define IN_UPDATE 0x0004 /* Modification time update request. */ #define IN_MODIFIED 0x0008 /* Inode has been modified. */ -#define IN_RENAME 0x0010 /* Inode is being renamed. */ +#define IN_NEEDSYNC 0x0010 /* Inode requires fsync. */ #define IN_LAZYMOD 0x0040 /* Modified, but don't write yet. */ #define IN_SPACECOUNTED 0x0080 /* Blocks to be freed in free count. */ #define IN_LAZYACCESS 0x0100 /* Process IN_ACCESS after the Index: /usr/src/sys/ufs/ufs/ufs_vnops.c =================================================================== --- /usr/src/sys/ufs/ufs/ufs_vnops.c (revision 220936) +++ /usr/src/sys/ufs/ufs/ufs_vnops.c (working copy) @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -114,6 +115,8 @@ static vop_close_t ufsfifo_close; static vop_kqfilter_t ufsfifo_kqfilter; static vop_pathconf_t ufsfifo_pathconf; +SYSCTL_NODE(_vfs, OID_AUTO, ufs, CTLFLAG_RD, 0, "UFS filesystem"); + /* * A virgin directory (no blushing please). */ @@ -992,7 +995,7 @@ ufs_link(ap) error = UFS_UPDATE(vp, !(DOINGSOFTDEP(vp) | DOINGASYNC(vp))); if (!error) { ufs_makedirentry(ip, cnp, &newdir); - error = ufs_direnter(tdvp, vp, &newdir, cnp, NULL); + error = ufs_direnter(tdvp, vp, &newdir, cnp, NULL, 0); } if (error) { @@ -1043,7 +1046,7 @@ ufs_whiteout(ap) newdir.d_namlen = cnp->cn_namelen; bcopy(cnp->cn_nameptr, newdir.d_name, (unsigned)cnp->cn_namelen + 1); newdir.d_type = DT_WHT; - error = ufs_direnter(dvp, NULL, &newdir, cnp, NULL); + error = ufs_direnter(dvp, NULL, &newdir, cnp, NULL, 0); break; case DELETE: @@ -1062,6 +1065,11 @@ ufs_whiteout(ap) return (error); } +static volatile int rename_restarts; +SYSCTL_INT(_vfs_ufs, OID_AUTO, rename_restarts, CTLFLAG_RD, + __DEVOLATILE(int *, &rename_restarts), 0, + "Times rename had to restart due to lock contention"); + /* * Rename system call. * rename("foo", "bar"); @@ -1101,111 +1109,185 @@ ufs_rename(ap) struct vnode *tdvp = ap->a_tdvp; struct vnode *fvp = ap->a_fvp; struct vnode *fdvp = ap->a_fdvp; + struct vnode *nvp; struct componentname *tcnp = ap->a_tcnp; struct componentname *fcnp = ap->a_fcnp; struct thread *td = fcnp->cn_thread; - struct inode *ip, *xp, *dp; + struct inode *fip, *tip, *tdp, *fdp; struct direct newdir; - int doingdirectory = 0, oldparent = 0, newparent = 0; + off_t endoff; + int doingdirectory, newparent; int error = 0, ioflag; - ino_t fvp_ino; + struct mount *mp; + ino_t ino; #ifdef INVARIANTS if ((tcnp->cn_flags & HASBUF) == 0 || (fcnp->cn_flags & HASBUF) == 0) panic("ufs_rename: no name"); #endif + endoff = 0; + mp = tdvp->v_mount; + VOP_UNLOCK(tdvp, 0); + if (tvp && tvp != tdvp) + VOP_UNLOCK(tvp, 0); /* * Check for cross-device rename. */ if ((fvp->v_mount != tdvp->v_mount) || (tvp && (fvp->v_mount != tvp->v_mount))) { error = EXDEV; -abortit: - if (tdvp == tvp) - vrele(tdvp); - else - vput(tdvp); - if (tvp) - vput(tvp); - vrele(fdvp); + mp = NULL; + goto releout; + } + error = vfs_busy(mp, 0); + if (error) { + mp = NULL; + goto releout; + } +relock: + /* + * We need to acquire 2 to 4 locks depending on whether tvp is NULL + * and fdvp and tdvp are the same directory. Subsequently we need + * to double-check all paths and in the directory rename case we + * need to verify that we are not creating a directory loop. To + * handle this we acquire all but fdvp using non-blocking + * acquisitions. If we fail to acquire any lock in the path we will + * drop all held locks, acquire the new lock in a blocking fashion, + * and then release it and restart the rename. This acquire/release + * step ensures that we do not spin on a lock waiting for release. + */ + error = vn_lock(fdvp, LK_EXCLUSIVE); + if (error) + goto releout; + if (vn_lock(tdvp, LK_EXCLUSIVE | LK_NOWAIT) != 0) { + VOP_UNLOCK(fdvp, 0); + error = vn_lock(tdvp, LK_EXCLUSIVE); + if (error) + goto releout; + VOP_UNLOCK(tdvp, 0); + atomic_add_int(&rename_restarts, 1); + goto relock; + } + /* + * Re-resolve fvp to be certain it still exists and fetch the + * correct vnode. + */ + error = ufs_lookup_ino(fdvp, NULL, fcnp, &ino); + if (error) { + VOP_UNLOCK(fdvp, 0); + VOP_UNLOCK(tdvp, 0); + goto releout; + } + error = VFS_VGET(mp, ino, LK_EXCLUSIVE | LK_NOWAIT, &nvp); + if (error) { + VOP_UNLOCK(fdvp, 0); + VOP_UNLOCK(tdvp, 0); + if (error != EBUSY) + goto releout; + error = VFS_VGET(mp, ino, LK_EXCLUSIVE, &nvp); + if (error != 0) + goto releout; + VOP_UNLOCK(nvp, 0); vrele(fvp); - return (error); + fvp = nvp; + atomic_add_int(&rename_restarts, 1); + goto relock; } - + vrele(fvp); + fvp = nvp; + /* + * Re-resolve tvp and acquire the vnode lock if present. + */ + error = ufs_lookup_ino(tdvp, NULL, tcnp, &ino); + if (error != 0 && error != EJUSTRETURN) { + VOP_UNLOCK(fdvp, 0); + VOP_UNLOCK(tdvp, 0); + VOP_UNLOCK(fvp, 0); + goto releout; + } + /* + * If tvp disappeared we just carry on. + */ + if (error == EJUSTRETURN && tvp != NULL) { + vrele(tvp); + tvp = NULL; + } + /* + * Get the tvp ino if the lookup succeeded. We may have to restart + * if the non-blocking acquire fails. + */ + if (error == 0) { + nvp = NULL; + error = VFS_VGET(mp, ino, LK_EXCLUSIVE | LK_NOWAIT, &nvp); + if (tvp) + vrele(tvp); + tvp = nvp; + if (error) { + VOP_UNLOCK(fdvp, 0); + VOP_UNLOCK(tdvp, 0); + VOP_UNLOCK(fvp, 0); + if (error != EBUSY) + goto releout; + error = VFS_VGET(mp, ino, LK_EXCLUSIVE, &nvp); + if (error != 0) + goto releout; + VOP_UNLOCK(nvp, 0); + atomic_add_int(&rename_restarts, 1); + goto relock; + } + } + fdp = VTOI(fdvp); + fip = VTOI(fvp); + tdp = VTOI(tdvp); + tip = NULL; + if (tvp) + tip = VTOI(tvp); if (tvp && ((VTOI(tvp)->i_flags & (NOUNLINK | IMMUTABLE | APPEND)) || (VTOI(tdvp)->i_flags & APPEND))) { error = EPERM; - goto abortit; + goto unlockout; } - /* * Renaming a file to itself has no effect. The upper layers should - * not call us in that case. Temporarily just warn if they do. + * not call us in that case. However, things could change after + * we drop the locks above. */ if (fvp == tvp) { - printf("ufs_rename: fvp == tvp (can't happen)\n"); error = 0; - goto abortit; + goto unlockout; } - - if ((error = vn_lock(fvp, LK_EXCLUSIVE)) != 0) - goto abortit; - dp = VTOI(fdvp); - ip = VTOI(fvp); - if (ip->i_nlink >= LINK_MAX) { - VOP_UNLOCK(fvp, 0); + doingdirectory = 0; + newparent = 0; + ino = fip->i_number; + if (fip->i_nlink >= LINK_MAX) { error = EMLINK; - goto abortit; + goto unlockout; } - if ((ip->i_flags & (NOUNLINK | IMMUTABLE | APPEND)) - || (dp->i_flags & APPEND)) { - VOP_UNLOCK(fvp, 0); + if ((fip->i_flags & (NOUNLINK | IMMUTABLE | APPEND)) + || (fdp->i_flags & APPEND)) { error = EPERM; - goto abortit; + goto unlockout; } - if ((ip->i_mode & IFMT) == IFDIR) { + if ((fip->i_mode & IFMT) == IFDIR) { /* * Avoid ".", "..", and aliases of "." for obvious reasons. */ if ((fcnp->cn_namelen == 1 && fcnp->cn_nameptr[0] == '.') || - dp == ip || (fcnp->cn_flags | tcnp->cn_flags) & ISDOTDOT || - (ip->i_flag & IN_RENAME)) { - VOP_UNLOCK(fvp, 0); + fdp == fip || + (fcnp->cn_flags | tcnp->cn_flags) & ISDOTDOT) { error = EINVAL; - goto abortit; + goto unlockout; } - ip->i_flag |= IN_RENAME; - oldparent = dp->i_number; + if (fdp->i_number != tdp->i_number) + newparent = tdp->i_number; doingdirectory = 1; } - vrele(fdvp); - - /* - * When the target exists, both the directory - * and target vnodes are returned locked. - */ - dp = VTOI(tdvp); - xp = NULL; - if (tvp) - xp = VTOI(tvp); - - /* - * 1) Bump link count while we're moving stuff - * around. If we crash somewhere before - * completing our work, the link count - * may be wrong, but correctable. - */ - ip->i_effnlink++; - ip->i_nlink++; - DIP_SET(ip, i_nlink, ip->i_nlink); - ip->i_flag |= IN_CHANGE; - if (DOINGSOFTDEP(fvp)) - softdep_change_linkcnt(ip); - if ((error = UFS_UPDATE(fvp, !(DOINGSOFTDEP(fvp) | - DOINGASYNC(fvp)))) != 0) { - VOP_UNLOCK(fvp, 0); - goto bad; + if ((fvp->v_type == VDIR && fvp->v_mountedhere != NULL) || + (tvp != NULL && tvp->v_type == VDIR && + tvp->v_mountedhere != NULL)) { + error = EXDEV; + goto unlockout; } /* @@ -1214,88 +1296,93 @@ ufs_rename(ap) * directory hierarchy above the target, as this would * orphan everything below the source directory. Also * the user must have write permission in the source so - * as to be able to change "..". We must repeat the call - * to namei, as the parent directory is unlocked by the - * call to checkpath(). + * as to be able to change "..". */ - error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_thread); - fvp_ino = ip->i_number; - VOP_UNLOCK(fvp, 0); - if (oldparent != dp->i_number) - newparent = dp->i_number; if (doingdirectory && newparent) { - if (error) /* write access check above */ - goto bad; - if (xp != NULL) - vput(tvp); - error = ufs_checkpath(fvp_ino, dp, tcnp->cn_cred); + error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_thread); if (error) - goto out; + goto unlockout; + error = ufs_checkpath(ino, fdp->i_number, tdp, tcnp->cn_cred, + &ino); + /* + * We encountered a lock that we have to wait for. Unlock + * everything else and VGET before restarting. + */ + if (ino) { + VOP_UNLOCK(fdvp, 0); + VOP_UNLOCK(fvp, 0); + VOP_UNLOCK(tdvp, 0); + if (tvp) + VOP_UNLOCK(tvp, 0); + error = VFS_VGET(mp, ino, LK_SHARED, &nvp); + if (error == 0) + vput(nvp); + atomic_add_int(&rename_restarts, 1); + goto relock; + } + if (error) + goto unlockout; if ((tcnp->cn_flags & SAVESTART) == 0) panic("ufs_rename: lost to startdir"); - VREF(tdvp); - error = relookup(tdvp, &tvp, tcnp); - if (error) - goto out; - vrele(tdvp); - dp = VTOI(tdvp); - xp = NULL; - if (tvp) - xp = VTOI(tvp); } + if (fip->i_effnlink == 0 || fdp->i_effnlink == 0 || + tdp->i_effnlink == 0) + panic("Bad effnlink fip %p, fdp %p, tdp %p", fip, fdp, tdp); + /* + * 1) Bump link count while we're moving stuff + * around. If we crash somewhere before + * completing our work, the link count + * may be wrong, but correctable. + */ + fip->i_effnlink++; + fip->i_nlink++; + DIP_SET(fip, i_nlink, fip->i_nlink); + fip->i_flag |= IN_CHANGE; + if (DOINGSOFTDEP(fvp)) + softdep_change_linkcnt(fip); + error = UFS_UPDATE(fvp, !(DOINGSOFTDEP(fvp) | DOINGASYNC(fvp))); + if (error) + goto bad; + + /* * 2) If target doesn't exist, link the target * to the source and unlink the source. * Otherwise, rewrite the target directory * entry to reference the source inode and * expunge the original entry's existence. */ - if (xp == NULL) { - if (dp->i_dev != ip->i_dev) + if (tip == NULL) { + if (tdp->i_dev != fip->i_dev) panic("ufs_rename: EXDEV"); - /* - * Account for ".." in new directory. - * When source and destination have the same - * parent we don't fool with the link count. - */ if (doingdirectory && newparent) { - if ((nlink_t)dp->i_nlink >= LINK_MAX) { + /* + * Account for ".." in new directory. + * When source and destination have the same + * parent we don't adjust the link count. The + * actual link modification is completed when + * .. is rewritten below. + */ + if ((nlink_t)tdp->i_nlink >= LINK_MAX) { error = EMLINK; goto bad; } - dp->i_effnlink++; - dp->i_nlink++; - DIP_SET(dp, i_nlink, dp->i_nlink); - dp->i_flag |= IN_CHANGE; - if (DOINGSOFTDEP(tdvp)) - softdep_change_linkcnt(dp); - error = UFS_UPDATE(tdvp, !(DOINGSOFTDEP(tdvp) | - DOINGASYNC(tdvp))); - if (error) - goto bad; } - ufs_makedirentry(ip, tcnp, &newdir); - error = ufs_direnter(tdvp, NULL, &newdir, tcnp, NULL); - if (error) { - if (doingdirectory && newparent) { - dp->i_effnlink--; - dp->i_nlink--; - DIP_SET(dp, i_nlink, dp->i_nlink); - dp->i_flag |= IN_CHANGE; - if (DOINGSOFTDEP(tdvp)) - softdep_change_linkcnt(dp); - (void)UFS_UPDATE(tdvp, 1); - } + ufs_makedirentry(fip, tcnp, &newdir); + error = ufs_direnter(tdvp, NULL, &newdir, tcnp, NULL, 1); + if (error) goto bad; - } - vput(tdvp); + /* Setup tdvp for directory compaction if needed. */ + if (tdp->i_count && tdp->i_endoff && + tdp->i_endoff < tdp->i_size) + endoff = tdp->i_endoff; } else { - if (xp->i_dev != dp->i_dev || xp->i_dev != ip->i_dev) + if (tip->i_dev != tdp->i_dev || tip->i_dev != fip->i_dev) panic("ufs_rename: EXDEV"); /* * Short circuit rename(foo, foo). */ - if (xp->i_number == ip->i_number) + if (tip->i_number == fip->i_number) panic("ufs_rename: same file"); /* * If the parent directory is "sticky", then the caller @@ -1303,7 +1390,7 @@ ufs_rename(ap) * destination of the rename. This implements append-only * directories. */ - if ((dp->i_mode & S_ISTXT) && + if ((tdp->i_mode & S_ISTXT) && VOP_ACCESS(tdvp, VADMIN, tcnp->cn_cred, td) && VOP_ACCESS(tvp, VADMIN, tcnp->cn_cred, td)) { error = EPERM; @@ -1314,9 +1401,9 @@ ufs_rename(ap) * to it. Also, ensure source and target are compatible * (both directories, or both not directories). */ - if ((xp->i_mode&IFMT) == IFDIR) { - if ((xp->i_effnlink > 2) || - !ufs_dirempty(xp, dp->i_number, tcnp->cn_cred)) { + if ((tip->i_mode & IFMT) == IFDIR) { + if ((tip->i_effnlink > 2) || + !ufs_dirempty(tip, tdp->i_number, tcnp->cn_cred)) { error = ENOTEMPTY; goto bad; } @@ -1329,21 +1416,31 @@ ufs_rename(ap) error = EISDIR; goto bad; } - error = ufs_dirrewrite(dp, xp, ip->i_number, - IFTODT(ip->i_mode), - (doingdirectory && newparent) ? newparent : doingdirectory); - if (error) - goto bad; if (doingdirectory) { if (!newparent) { - dp->i_effnlink--; + tdp->i_effnlink--; if (DOINGSOFTDEP(tdvp)) - softdep_change_linkcnt(dp); + softdep_change_linkcnt(tdp); } - xp->i_effnlink--; + tip->i_effnlink--; if (DOINGSOFTDEP(tvp)) - softdep_change_linkcnt(xp); + softdep_change_linkcnt(tip); } + error = ufs_dirrewrite(tdp, tip, fip->i_number, + IFTODT(fip->i_mode), + (doingdirectory && newparent) ? newparent : doingdirectory); + if (error) { + if (doingdirectory) { + if (!newparent) { + tdp->i_effnlink++; + if (DOINGSOFTDEP(tdvp)) + softdep_change_linkcnt(tdp); + } + tip->i_effnlink++; + if (DOINGSOFTDEP(tvp)) + softdep_change_linkcnt(tip); + } + } if (doingdirectory && !DOINGSOFTDEP(tvp)) { /* * Truncate inode. The only stuff left in the directory @@ -1357,115 +1454,107 @@ ufs_rename(ap) * them now. */ if (!newparent) { - dp->i_nlink--; - DIP_SET(dp, i_nlink, dp->i_nlink); - dp->i_flag |= IN_CHANGE; + tdp->i_nlink--; + DIP_SET(tdp, i_nlink, tdp->i_nlink); + tdp->i_flag |= IN_CHANGE; } - xp->i_nlink--; - DIP_SET(xp, i_nlink, xp->i_nlink); - xp->i_flag |= IN_CHANGE; + tip->i_nlink--; + DIP_SET(tip, i_nlink, tip->i_nlink); + tip->i_flag |= IN_CHANGE; ioflag = IO_NORMAL; if (!DOINGASYNC(tvp)) ioflag |= IO_SYNC; + /* Don't go to bad here as the new link exists. */ if ((error = UFS_TRUNCATE(tvp, (off_t)0, ioflag, tcnp->cn_cred, tcnp->cn_thread)) != 0) - goto bad; + goto unlockout; } - vput(tdvp); - vput(tvp); - xp = NULL; } /* - * 3) Unlink the source. + * 3) Unlink the source. We have to resolve the path again to + * fixup the directory offset and count for ufs_dirremove. */ - fcnp->cn_flags &= ~MODMASK; - fcnp->cn_flags |= LOCKPARENT | LOCKLEAF; - if ((fcnp->cn_flags & SAVESTART) == 0) - panic("ufs_rename: lost from startdir"); - VREF(fdvp); - error = relookup(fdvp, &fvp, fcnp); - if (error == 0) - vrele(fdvp); - if (fvp != NULL) { - xp = VTOI(fvp); - dp = VTOI(fdvp); - } else { - /* - * From name has disappeared. IN_RENAME is not sufficient - * to protect against directory races due to timing windows, - * so we have to remove the panic. XXX the only real way - * to solve this issue is at a much higher level. By the - * time we hit ufs_rename() it's too late. - */ -#if 0 - if (doingdirectory) - panic("ufs_rename: lost dir entry"); -#endif - vrele(ap->a_fvp); - return (0); + if (fdvp == tdvp) { + error = ufs_lookup_ino(fdvp, NULL, fcnp, &ino); + if (error) + panic("ufs_rename: from entry went away!"); + if (ino != fip->i_number) + panic("ufs_rename: ino mismatch %d != %d\n", ino, + fip->i_number); } /* - * Ensure that the directory entry still exists and has not - * changed while the new name has been entered. If the source is - * a file then the entry may have been unlinked or renamed. In - * either case there is no further work to be done. If the source - * is a directory then it cannot have been rmdir'ed; the IN_RENAME - * flag ensures that it cannot be moved by another rename or removed - * by a rmdir. + * If the source is a directory with a + * new parent, the link count of the old + * parent directory must be decremented + * and ".." set to point to the new parent. */ - if (xp != ip) { + if (doingdirectory && newparent) { /* - * From name resolves to a different inode. IN_RENAME is - * not sufficient protection against timing window races - * so we can't panic here. XXX the only real way - * to solve this issue is at a much higher level. By the - * time we hit ufs_rename() it's too late. + * If tip exists we simply use its link, otherwise we must + * add a new one. */ -#if 0 - if (doingdirectory) - panic("ufs_rename: lost dir entry"); -#endif - } else { - /* - * If the source is a directory with a - * new parent, the link count of the old - * parent directory must be decremented - * and ".." set to point to the new parent. - */ - if (doingdirectory && newparent) { - xp->i_offset = mastertemplate.dot_reclen; - ufs_dirrewrite(xp, dp, newparent, DT_DIR, 0); - cache_purge(fdvp); + if (tip == NULL) { + tdp->i_effnlink++; + tdp->i_nlink++; + DIP_SET(tdp, i_nlink, tdp->i_nlink); + tdp->i_flag |= IN_CHANGE; + if (DOINGSOFTDEP(tdvp)) + softdep_change_linkcnt(tdp); + error = UFS_UPDATE(tdvp, !(DOINGSOFTDEP(tdvp) | + DOINGASYNC(tdvp))); + /* Don't go to bad here as the new link exists. */ + if (error) + goto unlockout; } - error = ufs_dirremove(fdvp, xp, fcnp->cn_flags, 0); - xp->i_flag &= ~IN_RENAME; + fip->i_offset = mastertemplate.dot_reclen; + ufs_dirrewrite(fip, fdp, newparent, DT_DIR, 0); + cache_purge(fdvp); } - if (dp) - vput(fdvp); - if (xp) - vput(fvp); - vrele(ap->a_fvp); + error = ufs_dirremove(fdvp, fip, fcnp->cn_flags, 0); + +unlockout: + vput(fdvp); + vput(fvp); + if (tvp) + vput(tvp); + /* + * If compaction or fsync was requested do it now that other locks + * are no longer needed. + */ + if (error == 0 && endoff != 0) { +#ifdef UFS_DIRHASH + if (tdp->i_dirhash != NULL) + ufsdirhash_dirtrunc(tdp, endoff); +#endif + UFS_TRUNCATE(tdvp, endoff, IO_NORMAL | IO_SYNC, tcnp->cn_cred, + td); + } + if (error == 0 && tdp->i_flag & IN_NEEDSYNC) + error = VOP_FSYNC(tdvp, MNT_WAIT, td); + vput(tdvp); + if (mp) + vfs_unbusy(mp); return (error); bad: - if (xp) - vput(ITOV(xp)); - vput(ITOV(dp)); -out: - if (doingdirectory) - ip->i_flag &= ~IN_RENAME; - if (vn_lock(fvp, LK_EXCLUSIVE) == 0) { - ip->i_effnlink--; - ip->i_nlink--; - DIP_SET(ip, i_nlink, ip->i_nlink); - ip->i_flag |= IN_CHANGE; - ip->i_flag &= ~IN_RENAME; - if (DOINGSOFTDEP(fvp)) - softdep_change_linkcnt(ip); - vput(fvp); - } else - vrele(fvp); + fip->i_effnlink--; + fip->i_nlink--; + DIP_SET(fip, i_nlink, fip->i_nlink); + fip->i_flag |= IN_CHANGE; + if (DOINGSOFTDEP(fvp)) + softdep_change_linkcnt(fip); + goto unlockout; + +releout: + vrele(fdvp); + vrele(fvp); + vrele(tdvp); + if (tvp) + vrele(tvp); + if (mp) + vfs_unbusy(mp); + return (error); } @@ -1863,7 +1952,7 @@ ufs_mkdir(ap) else if (!DOINGSOFTDEP(dvp) && ((error = bwrite(bp)))) goto bad; ufs_makedirentry(ip, cnp, &newdir); - error = ufs_direnter(dvp, tvp, &newdir, cnp, bp); + error = ufs_direnter(dvp, tvp, &newdir, cnp, bp, 0); bad: if (error == 0) { @@ -1920,7 +2009,7 @@ ufs_rmdir(ap) * tries to remove a locally mounted on directory). */ error = 0; - if ((ip->i_flag & IN_RENAME) || ip->i_effnlink < 2) { + if (ip->i_effnlink < 2) { error = EINVAL; goto out; } @@ -2579,7 +2668,7 @@ ufs_makeinode(mode, dvp, vpp, cnp) } #endif /* !UFS_ACL */ ufs_makedirentry(ip, cnp, &newdir); - error = ufs_direnter(dvp, tvp, &newdir, cnp, NULL); + error = ufs_direnter(dvp, tvp, &newdir, cnp, NULL, 0); if (error) goto bad; *vpp = tvp; Index: /usr/src/sys/ufs/ufs/ufs_lookup.c =================================================================== --- /usr/src/sys/ufs/ufs/ufs_lookup.c (revision 220936) +++ /usr/src/sys/ufs/ufs/ufs_lookup.c (working copy) @@ -76,9 +76,6 @@ SYSCTL_INT(_debug, OID_AUTO, dircheck, CTLFLAG_RW, /* true if old FS format...*/ #define OFSFMT(vp) ((vp)->v_mount->mnt_maxsymlinklen <= 0) -static int ufs_lookup_(struct vnode *, struct vnode **, struct componentname *, - ino_t *); - #ifdef QUOTA static int ufs_lookup_upgrade_lock(struct vnode *vp) @@ -214,11 +211,11 @@ ufs_lookup(ap) } */ *ap; { - return (ufs_lookup_(ap->a_dvp, ap->a_vpp, ap->a_cnp, NULL)); + return (ufs_lookup_ino(ap->a_dvp, ap->a_vpp, ap->a_cnp, NULL)); } -static int -ufs_lookup_(struct vnode *vdp, struct vnode **vpp, struct componentname *cnp, +int +ufs_lookup_ino(struct vnode *vdp, struct vnode **vpp, struct componentname *cnp, ino_t *dd_ino) { struct inode *dp; /* inode for directory being searched */ @@ -556,6 +553,8 @@ notfound: return (ENOENT); found: + if (dd_ino != NULL) + *dd_ino = ino; if (numdirpasses == 2) nchstats.ncs_pass2++; /* @@ -578,11 +577,6 @@ found: if ((flags & ISLASTCN) && nameiop == LOOKUP) dp->i_diroff = i_offset &~ (DIRBLKSIZ - 1); - if (dd_ino != NULL) { - *dd_ino = ino; - return (0); - } - /* * If deleting, and at end of pathname, return * parameters which can be used to remove file. @@ -590,17 +584,6 @@ found: if (nameiop == DELETE && (flags & ISLASTCN)) { if (flags & LOCKPARENT) ASSERT_VOP_ELOCKED(vdp, __FUNCTION__); - if ((error = VFS_VGET(vdp->v_mount, ino, - LK_EXCLUSIVE, &tdp)) != 0) - return (error); - - error = ufs_delete_denied(vdp, tdp, cred, cnp->cn_thread); - if (error) { - vput(tdp); - return (error); - } - - /* * Return pointer to current entry in dp->i_offset, * and distance past previous entry (if there @@ -617,6 +600,16 @@ found: dp->i_count = 0; else dp->i_count = dp->i_offset - prevoff; + if (dd_ino != NULL) + return (0); + if ((error = VFS_VGET(vdp->v_mount, ino, + LK_EXCLUSIVE, &tdp)) != 0) + return (error); + error = ufs_delete_denied(vdp, tdp, cred, cnp->cn_thread); + if (error) { + vput(tdp); + return (error); + } if (dp->i_number == ino) { VREF(vdp); *vpp = vdp; @@ -648,6 +641,8 @@ found: dp->i_offset = i_offset; if (dp->i_number == ino) return (EISDIR); + if (dd_ino != NULL) + return (0); if ((error = VFS_VGET(vdp->v_mount, ino, LK_EXCLUSIVE, &tdp)) != 0) return (error); @@ -682,6 +677,8 @@ found: cnp->cn_flags |= SAVENAME; return (0); } + if (dd_ino != NULL) + return (0); /* * Step through the translation in the name. We do not `vput' the @@ -713,7 +710,7 @@ found: * to the inode we looked up before vdp lock was * dropped. */ - error = ufs_lookup_(pdp, NULL, cnp, &ino1); + error = ufs_lookup_ino(pdp, NULL, cnp, &ino1); if (error) { vput(tdp); return (error); @@ -865,12 +862,13 @@ ufs_makedirentry(ip, cnp, newdirp) * soft dependency code). */ int -ufs_direnter(dvp, tvp, dirp, cnp, newdirbp) +ufs_direnter(dvp, tvp, dirp, cnp, newdirbp, isrename) struct vnode *dvp; struct vnode *tvp; struct direct *dirp; struct componentname *cnp; struct buf *newdirbp; + int isrename; { struct ucred *cr; struct thread *td; @@ -943,22 +941,28 @@ int blkoff += DIRBLKSIZ; } if (softdep_setup_directory_add(bp, dp, dp->i_offset, - dirp->d_ino, newdirbp, 1) == 0) { - bdwrite(bp); + dirp->d_ino, newdirbp, 1)) + dp->i_flag |= IN_NEEDSYNC; + if (newdirbp) + bdwrite(newdirbp); + bdwrite(bp); + if ((dp->i_flag & IN_NEEDSYNC) == 0) return (UFS_UPDATE(dvp, 0)); - } - /* We have just allocated a directory block in an - * indirect block. Rather than tracking when it gets - * claimed by the inode, we simply do a VOP_FSYNC - * now to ensure that it is there (in case the user - * does a future fsync). Note that we have to unlock - * the inode for the entry that we just entered, as - * the VOP_FSYNC may need to lock other inodes which - * can lead to deadlock if we also hold a lock on - * the newly entered node. + /* + * We have just allocated a directory block in an + * indirect block. We must prevent holes in the + * directory created if directory entries are + * written out of order. To accomplish this we + * fsync when we extend a directory into indirects. + * During rename it's not safe to drop the tvp lock + * so sync must be delayed until it is. + * + * This synchronous step could be removed if fsck and + * the kernel were taught to fill in sparse + * directories rather than panic. */ - if ((error = bwrite(bp))) - return (error); + if (isrename) + return (0); if (tvp != NULL) VOP_UNLOCK(tvp, 0); error = VOP_FSYNC(dvp, MNT_WAIT, td); @@ -1099,6 +1103,8 @@ int (void) softdep_setup_directory_add(bp, dp, dp->i_offset + (caddr_t)ep - dirbuf, dirp->d_ino, newdirbp, 0); + if (newdirbp != NULL) + bdwrite(newdirbp); bdwrite(bp); } else { if (DOINGASYNC(dvp)) { @@ -1116,7 +1122,8 @@ int * lock other inodes which can lead to deadlock if we also hold a * lock on the newly entered node. */ - if (error == 0 && dp->i_endoff && dp->i_endoff < dp->i_size) { + if (isrename == 0 && error == 0 && + dp->i_endoff && dp->i_endoff < dp->i_size) { if (tvp != NULL) VOP_UNLOCK(tvp, 0); #ifdef UFS_DIRHASH @@ -1386,25 +1393,25 @@ ufs_dir_dd_ino(struct vnode *vp, struct ucred *cre /* * Check if source directory is in the path of the target directory. - * Target is supplied locked, source is unlocked. - * The target is always vput before returning. */ int -ufs_checkpath(ino_t source_ino, struct inode *target, struct ucred *cred) +ufs_checkpath(ino_t source_ino, ino_t parent_ino, struct inode *target, struct ucred *cred, ino_t *wait_ino) { - struct vnode *vp, *vp1; + struct mount *mp; + struct vnode *tvp, *vp, *vp1; int error; ino_t dd_ino; - vp = ITOV(target); - if (target->i_number == source_ino) { - error = EEXIST; - goto out; - } + vp = tvp = ITOV(target); + mp = vp->v_mount; + *wait_ino = 0; + if (target->i_number == source_ino) + return (EEXIST); + if (target->i_number == parent_ino) + return (0); + if (target->i_number == ROOTINO) + return (0); error = 0; - if (target->i_number == ROOTINO) - goto out; - for (;;) { error = ufs_dir_dd_ino(vp, cred, &dd_ino); if (error != 0) @@ -1415,9 +1422,13 @@ int } if (dd_ino == ROOTINO) break; - error = vn_vget_ino(vp, dd_ino, LK_EXCLUSIVE, &vp1); - if (error != 0) + if (dd_ino == parent_ino) break; + error = VFS_VGET(mp, dd_ino, LK_SHARED | LK_NOWAIT, &vp1); + if (error != 0) { + *wait_ino = dd_ino; + break; + } /* Recheck that ".." still points to vp1 after relock of vp */ error = ufs_dir_dd_ino(vp, cred, &dd_ino); if (error != 0) { @@ -1429,14 +1440,14 @@ int vput(vp1); continue; } - vput(vp); + if (vp != tvp) + vput(vp); vp = vp1; } -out: if (error == ENOTDIR) - printf("checkpath: .. not a directory\n"); - if (vp != NULL) + panic("checkpath: .. not a directory\n"); + if (vp != tvp) vput(vp); return (error); } Index: /usr/src/sys/ufs/ufs/ufs_extern.h =================================================================== --- /usr/src/sys/ufs/ufs/ufs_extern.h (revision 220936) +++ /usr/src/sys/ufs/ufs/ufs_extern.h (working copy) @@ -57,7 +57,7 @@ int ufs_bmap(struct vop_bmap_args *); int ufs_bmaparray(struct vnode *, ufs2_daddr_t, ufs2_daddr_t *, struct buf *, int *, int *); int ufs_fhtovp(struct mount *, struct ufid *, struct vnode **); -int ufs_checkpath(ino_t, struct inode *, struct ucred *); +int ufs_checkpath(ino_t, ino_t, struct inode *, struct ucred *, ino_t *); void ufs_dirbad(struct inode *, doff_t, char *); int ufs_dirbadentry(struct vnode *, struct direct *, int); int ufs_dirempty(struct inode *, ino_t, struct ucred *); @@ -66,9 +66,11 @@ int ufs_extwrite(struct vop_write_args *); void ufs_makedirentry(struct inode *, struct componentname *, struct direct *); int ufs_direnter(struct vnode *, struct vnode *, struct direct *, - struct componentname *, struct buf *); + struct componentname *, struct buf *, int); int ufs_dirremove(struct vnode *, struct inode *, int, int); int ufs_dirrewrite(struct inode *, struct inode *, ino_t, int, int); +int ufs_lookup_ino(struct vnode *, struct vnode **, struct componentname *, + ino_t *); int ufs_getlbns(struct vnode *, ufs2_daddr_t, struct indir *, int *); int ufs_inactive(struct vop_inactive_args *); int ufs_init(struct vfsconf *);