GENERIC from Mon May 18 11:56:40 2009 +0300, vm3 f8f4b39, vmcore.148 KDB: debugger backends: ddb KDB: current backend: ddb 524288K of memory above 4GB ignored Copyright (c) 1992-2009 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 8.0-CURRENT #0: Tue May 19 11:14:51 CEST 2009 pho@x4.osted.lan:/var/tmp/deviant2/sys/i386/compile/PHO 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 (1799.99-MHz 686-class CPU) Origin = "AuthenticAMD" Id = 0x100f23 Stepping = 3 Features=0x178bfbff Features2=0x802009 AMD Features=0xee500800 AMD Features2=0x7ff TSC: P-state invariant real memory = 4294967296 (4096 MB) avail memory = 1032314880 (984 MB) : Trying to mount root from ufs:/dev/ad4s1a Entropy harvesting: interrupts ethernet point_to_point kickstart. GEOM_LABEL: Label ufsid/48f38e3c5b611e96 removed. /dev/ad4s1a: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad4s1a: clean, 252451 free (2459 frags, 31GEOM_LABEL249 blocks, 0.2%: Labe fragmentation)l for provider ad4s1a is ufsid/48f38e3c5b611e96. GEOM_LABEL: Label ufsid/48f38e3cff1ca3a5 removed. /dev/ad4s1e: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad4s1e: clean, 50083433 frGEOM_LABEL: ee (2321 frags, Label f6260139 blocks, or provider a0.0% fragmentatid4s1e is ufsid/4on) 8f38e3cff1ca3a5. GEOM_LABEL: Label ufsid/48f38e47737647c8 removed. /dev/ad4s1f: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad4s1f: clean, 6274431 free (205975 frags,GEOM_LAB 758557 blocks, EL: 0.9% fragmentatiLabel for pon) rovider ad4s1f is ufsid/48f38e47737647c8. GEOM_LABEL: Label ufsid/48f38e4956403ff8 removed. /dev/ad4s1d: FILGEOM_LABEL: E SYSTEM CLEAN; Label for provider aSKIPPING CHECKSd4s1d is ufsid/4 /dev/ad4s1d: cl8f38e4956403ff8.ean, 13517311 fr ee (96255 frags, 1677632 blocks, 0.2% fragmentation) GEOM_LABEL: Label ufsid/48f38e3c5b611e96 removed. GEOM_LABEL: Label ufsid/48f38e3cff1ca3a5 removed. GEOM_LABEL: Label ufsid/48f38e47737647c8 removed. GEOM_LABEL: Label ufsid/48f38e4956403ff8 removed. re0: link state changed to DOWN Starting Network: lo0 re0. add net default: gateway 192.168.1.1 Additional ABI support: linux. lock order reversal: 1st 0xe4517070 bufwait (bufwait) @ kern/vfs_bio.c:2556 2nd 0xc4c7a000 dirhash (dirhash) @ ufs/ufs/ufs_dirhash.c:275 KDB: stack backtrace: db_trace_self_wrapper(c0c4a59b,f394887c,c089fb15,c089185b,c0c4d452,...) at db_trace_self_wrapper+0x26 kdb_backtrace(c089185b,c0c4d452,c452bbb8,c452f1c0,f39488d8,...) at kdb_backtrace+0x29 _witness_debugger(c0c4d452,c4c7a000,c0c6d642,c452f1c0,c0c6d2e8,...) at _witness_debugger+0x25 witness_checkorder(c4c7a000,9,c0c6d2df,113,0,...) at witness_checkorder+0x839 _sx_xlock(c4c7a000,0,c0c6d2df,113,c4c04570,...) at _sx_xlock+0x85 ufsdirhash_acquire(e4517010,f3948a20,24,e4ea71d4,f39489a8,...) at ufsdirhash_acquire+0x48 ufsdirhash_add(c4c04570,f3948a20,11d4,f3948994,f3948998,...) at ufsdirhash_add+0x13 ufs_direnter(c4e03de8,c4f9a164,f3948a20,f3948c04,e45174e4,...) at ufs_direnter+0x779 ufs_mkdir(f3948c28,c0c821fe,0,f3948bd8,f3948b70,...) at ufs_mkdir+0x8ce VOP_MKDIR_APV(c0d49e80,f3948c28,eae,eac,0,...) at VOP_MKDIR_APV+0xc5 kern_mkdirat(c4e1b6c0,ffffff9c,bfbfef5a,0,1ff,...) at kern_mkdirat+0x23b kern_mkdir(c4e1b6c0,bfbfef5a,0,1ff,f3948d2c,...) at kern_mkdir+0x2e mkdir(c4e1b6c0,f3948cf8,8,c0c4dd1a,c0d2b340,...) at mkdir+0x29 syscall(f3948d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (136, FreeBSD ELF32, mkdir), eip = 0x2815fea3, esp = 0xbfbfed6c, ebp = 0xbfbfee38 --- Starting mountd. Configuring syscons: keymap blanktime. Local package initialization: watchdogd. Tue May 19 11:44:29 CEST 2009 FreeBSD/i386 (x4.osted.lan) (console) login: May 19 11:48:09 x4 su: pho to root on /dev/pts/0 panic: ffs_read: uio->uio_offset < 0 cpuid = 0 KDB: enter: panic [thread pid 39456 tid 100344 ] Stopped at kdb_enter+0x3a: movl $0,kdb_why db:0:kdb.enter.panic> run pho db:1:pho> bt Tracing pid 39456 tid 100344 td 0xc55a4000 kdb_enter(c0c4727c,c0c4727c,c0c6d00c,f3c77a00,0,...) at kdb_enter+0x3a panic(c0c6d00c,c0f0ede0,4,0,f3c77a18,...) at panic+0x136 ffs_read(f3c77ad0,c0c81a33,c4ea5000,f3c77ad0,c51969bc,...) at ffs_read+0xd9 VOP_READ_APV(c0d49e80,f3c77ad0,c0c556ab,27b,c4ea5000,...) at VOP_READ_APV+0xc5 vn_read_wired_chunk(c505db28,c4ea5000,c4f11400,0,0,...) at vn_read_wired_chunk+0xb1 do_vn_rw_chunked(0,0,c55a4000,f3c77b80,c08f9120,...) at do_vn_rw_chunked+0x19e vn_read(c505db28,c4ea5000,c4f11400,0,c55a4000,...) at vn_read+0x1b9 dofileread(c4ea5000,ffffffff,ffffffff,0,c505db28,...) at dofileread+0x96 kern_readv(c55a4000,3,c4ea5000,c4ea5000,28203f9c,...) at kern_readv+0x58 readv(c55a4000,f3c77cf8,c,f3c77d38,c0d2b1c0,...) at readv+0x46 syscall(f3c77d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (120, FreeBSD ELF32, readv), eip = 0x280fbccf, esp = 0xbfbfeb1c, ebp = 0xbfbfeb68 --- db:1:bt> show allpcpu Current CPU: 0 cpuid = 0 curthread = 0xc55a4000: pid 39456 "uio" curpcb = 0xf3c77d90 fpcurthread = none idlethread = 0xc4579480: pid 11 "idle: cpu0" APIC ID = 0 currentldt = 0x50 spin locks held: cpuid = 1 curthread = 0xc45796c0: pid 11 "idle: cpu1" curpcb = 0xc41ced90 fpcurthread = none idlethread = 0xc45796c0: pid 11 "idle: cpu1" APIC ID = 1 currentldt = 0x50 spin locks held: cpuid = 2 curthread = 0xc457b900: pid 3 "g_up" curpcb = 0xc41ead90 fpcurthread = none idlethread = 0xc4579900: pid 11 "idle: cpu2" APIC ID = 2 currentldt = 0x50 spin locks held: cpuid = 3 curthread = 0xc4579b40: pid 11 "idle: cpu3" curpcb = 0xc41c8d90 fpcurthread = none idlethread = 0xc4579b40: pid 11 "idle: cpu3" APIC ID = 3 currentldt = 0x50 spin locks held: db:1:allpcpu> show alllocks Process 39589 (awk) thread 0xc56ccb40 (100602) exclusive lockmgr bufwait (bufwait) r = 0 (0xe44de65c) locked @ vm/vm_pager.c:310 shared lockmgr ufs (ufs) r = 0 (0xc4bc7a14) locked @ kern/vfs_subr.c:2103 Process 39456 (uio) thread 0xc55a4000 (100344) shared lockmgr ufs (ufs) r = 0 (0xc5196a14) locked @ kern/vfs_vnops.c:635 Process 38636 (dl) thread 0xc53b1000 (100458) exclusive lockmgr bufwait (bufwait) r = 0 (0xe450234c) locked @ kern/vfs_bio.c:1831 exclusive lockmgr ufs (ufs) r = 0 (0xc53d8cdc) locked @ kern/vfs_vnops.c:717 Process 29584 (sshd) thread 0xc56beb40 (100384) exclusive sx so_rcv_sx (so_rcv_sx) r = 0 (0xc507f3a0) locked @ kern/uipc_sockbuf.c:148 Process 1174 (sshd) thread 0xc4c4a000 (100080) exclusive sx so_rcv_sx (so_rcv_sx) r = 0 (0xc5267b5c) locked @ kern/uipc_sockbuf.c:148 Process 1173 (sshd) thread 0xc4cb9d80 (100146) exclusive sx so_rcv_sx (so_rcv_sx) r = 0 (0xc50806b8) locked @ kern/uipc_sockbuf.c:148 Process 1172 (sshd) thread 0xc4e1b000 (100145) exclusive sx so_rcv_sx (so_rcv_sx) r = 0 (0xc507f844) locked @ kern/uipc_sockbuf.c:148 Process 1165 (sshd) thread 0xc4e1d000 (100097) exclusive sx so_rcv_sx (so_rcv_sx) r = 0 (0xc50796b8) locked @ kern/uipc_sockbuf.c:148 db:1:alllocks> show lockedvnods Locked vnodes 0xc4bc79bc: tag ufs, type VREG usecount 136, writecount 0, refcount 148 mountedhere 0 flags () v_object 0xc4bd19b0 ref 135 pages 186 lock type ufs: SHARED (count 1) #0 0xc0848f62 at __lockmgr_args+0x582 #1 0xc0a84691 at ffs_lock+0xa1 #2 0xc0b899e5 at VOP_LOCK1_APV+0xa5 #3 0xc08f7d68 at _vn_lock+0x78 #4 0xc08ebc19 at vget+0xc9 #5 0xc0a9e82d at vm_fault_hold+0xa5d #6 0xc0a9fdb3 at vm_fault+0x23 #7 0xc0b7b4e8 at trap_pfault+0x118 #8 0xc0b7be19 at trap+0x2a9 #9 0xc0b5ea2b at calltrap+0x6 ino 211999, on dev ad4s1a 0xc51969bc: tag ufs, type VREG usecount 1, writecount 1, refcount 48 mountedhere 0 flags () v_object 0xc56e81f0 ref 0 pages 184 lock type ufs: SHARED (count 1) #0 0xc0848f62 at __lockmgr_args+0x582 #1 0xc0a84691 at ffs_lock+0xa1 #2 0xc0b899e5 at VOP_LOCK1_APV+0xa5 #3 0xc08f7d68 at _vn_lock+0x78 #4 0xc08f9199 at vn_read_wired_chunk+0x79 #5 0xc08f6a7e at do_vn_rw_chunked+0x19e #6 0xc08f70a9 at vn_read+0x1b9 #7 0xc08a2356 at dofileread+0x96 #8 0xc08a2688 at kern_readv+0x58 #9 0xc08a2726 at readv+0x46 #10 0xc0b7b894 at syscall+0x2b4 #11 0xc0b5ea90 at Xint0x80_syscall+0x20 ino 189, on dev ad4s1e 0xc53d8c84: tag ufs, type VREG usecount 3, writecount 3, refcount 7 mountedhere 0 flags () v_object 0xc54175d0 ref 2 pages 10 lock type ufs: EXCL by thread 0xc53b1000 (pid 38636) with exclusive waiters pending #0 0xc0849560 at __lockmgr_args+0xb80 #1 0xc0a84691 at ffs_lock+0xa1 #2 0xc0b899e5 at VOP_LOCK1_APV+0xa5 #3 0xc08f7d68 at _vn_lock+0x78 #4 0xc08f8ffb at vn_write_wired_chunk+0xbb #5 0xc08f6972 at do_vn_rw_chunked+0x92 #6 0xc08f6c60 at vn_write+0x160 #7 0xc08a21d5 at dofilewrite+0x95 #8 0xc08a3718 at kern_writev+0x58 #9 0xc08a382f at write+0x4f #10 0xc0b7b894 at syscall+0x2b4 #11 0xc0b5ea90 at Xint0x80_syscall+0x20 ino 258, on dev ad4s1e db:1:lockedvnods> show mount 0xc4bbeb30 /dev/ad4s1a on / (ufs) 0xc4bbf000 devfs on /dev (devfs) 0xc4e1f598 /dev/ad4s1e on /tmp (ufs) 0xc4e1f2cc /dev/ad4s1f on /usr (ufs) 0xc4e1f000 /dev/ad4s1d on /var (ufs) 0xc4bbfb30 procfs on /proc (procfs) More info: show mount db:1:mount> ps pid ppid pgrp uid state wmesg wchan cmd 39615 38636 1404 0 SE+ ufs 0xc53d8cdc dl 39589 1184 1180 1001 SL vnread 0xe44de5fc awk 39588 1184 1180 1001 SL vmpfw 0xc2518020 sed 39587 1184 1180 1001 SL vmpfw 0xc2518020 vmstat 39561 1101 1101 0 SL pfault 0xc0f0ecdc sh 39456 29621 39456 1001 R+ CPU 0 uio 38842 38639 1404 0 R+ swap 38841 38639 1404 0 SL+ swread 0xc1b018d4 swap 38840 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38839 38639 1404 0 SL+ swread 0xc23cbed4 swap 38838 38639 1404 0 SL+ swread 0xc27b67ec swap 38837 38639 1404 0 SL+ swread 0xc1980434 swap 38836 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38835 38639 1404 0 SL+ swread 0xc24f0adc swap 38834 38639 1404 0 R+ swap 38833 38639 1404 0 R+ swap 38832 38639 1404 0 SL+ swread 0xc2037e70 swap 38831 38639 1404 0 R+ swap 38830 38639 1404 0 SL+ swread 0xc1f75770 swap 38829 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38828 38639 1404 0 R+ swap 38827 38639 1404 0 SL+ swread 0xc282ec1c swap 38826 38639 1404 0 R+ swap 38825 38639 1404 0 R+ swap 38824 38639 1404 0 SL+ swread 0xc270a9e8 swap 38823 38639 1404 0 SL+ swread 0xc27bacfc swap 38822 38639 1404 0 SL+ swread 0xc24d5eac swap 38821 38639 1404 0 R+ swap 38820 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38819 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38818 38639 1404 0 SL+ swread 0xc2845628 swap 38817 38639 1404 0 R+ swap 38816 38639 1404 0 R+ swap 38815 38639 1404 0 R+ swap 38814 38639 1404 0 SL+ swread 0xc253d540 swap 38813 38639 1404 0 R+ swap 38812 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38811 38639 1404 0 R+ swap 38810 38639 1404 0 R+ swap 38809 38639 1404 0 R+ swap 38808 38639 1404 0 SL+ swread 0xc22bc1c0 swap 38807 38639 1404 0 SL+ swread 0xc238b1d4 swap 38806 38639 1404 0 R+ swap 38805 38639 1404 0 R+ swap 38804 38639 1404 0 SL+ swread 0xc279737c swap 38803 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38802 38639 1404 0 R+ swap 38801 38639 1404 0 SL+ swread 0xc290a830 swap 38800 38639 1404 0 R+ swap 38799 38639 1404 0 R+ swap 38798 38639 1404 0 R+ swap 38797 38639 1404 0 R+ swap 38796 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38795 38639 1404 0 R+ swap 38794 38639 1404 0 R+ swap 38793 38639 1404 0 R+ swap 38792 38639 1404 0 R+ swap 38791 38639 1404 0 R+ swap 38790 38639 1404 0 SL+ swread 0xc24123c0 swap 38789 38639 1404 0 R+ swap 38788 38639 1404 0 R+ swap 38787 38639 1404 0 R+ swap 38786 38639 1404 0 R+ swap 38785 38639 1404 0 R+ swap 38784 38639 1404 0 R+ swap 38783 38639 1404 0 R+ swap 38782 38639 1404 0 R+ swap 38781 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38780 38639 1404 0 R+ swap 38779 38639 1404 0 R+ swap 38778 38639 1404 0 R+ swap 38777 38639 1404 0 R+ swap 38776 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38774 38639 1404 0 R+ swap 38772 38639 1404 0 R+ swap 38771 38639 1404 0 R+ swap 38770 38639 1404 0 R+ swap 38769 38639 1404 0 R+ swap 38768 38639 1404 0 R+ swap 38767 38639 1404 0 R+ swap 38766 38639 1404 0 R+ swap 38765 38639 1404 0 R+ swap 38764 38639 1404 0 R+ swap 38763 38639 1404 0 R+ swap 38762 38639 1404 0 R+ swap 38761 38639 1404 0 SL+ swread 0xc1fc8b48 swap 38760 38639 1404 0 RL+ swap 38759 38639 1404 0 R+ swap 38758 38639 1404 0 R+ swap 38757 38639 1404 0 SL+ swread 0xc1ee6c20 swap 38756 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38755 38639 1404 0 R+ swap 38754 38639 1404 0 R+ swap 38753 38639 1404 0 R+ swap 38752 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38751 38639 1404 0 SL+ swread 0xc2161340 swap 38750 38639 1404 0 R+ swap 38749 38639 1404 0 R+ swap 38748 38639 1404 0 R+ swap 38747 38639 1404 0 R+ swap 38746 38639 1404 0 R+ swap 38745 38639 1404 0 R+ swap 38744 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38743 38639 1404 0 R+ swap 38742 38639 1404 0 R+ swap 38741 38639 1404 0 R+ swap 38740 38639 1404 0 R+ swap 38739 38639 1404 0 R+ swap 38738 38639 1404 0 R+ swap 38736 38639 1404 0 R+ swap 38735 38639 1404 0 R+ swap 38734 38639 1404 0 R+ swap 38733 38639 1404 0 SL+ swread 0xc28b9614 swap 38732 38639 1404 0 R+ swap 38731 38639 1404 0 R+ swap 38730 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38729 38639 1404 0 R+ swap 38728 38639 1404 0 R+ swap 38727 38639 1404 0 R+ swap 38726 38639 1404 0 R+ swap 38725 38639 1404 0 R+ swap 38724 38639 1404 0 SL+ swread 0xc1b423b4 swap 38723 38639 1404 0 R+ swap 38722 38639 1404 0 R+ swap 38721 38639 1404 0 SL+ swread 0xc26bdda8 swap 38720 38639 1404 0 R+ swap 38719 38639 1404 0 R+ swap 38718 38639 1404 0 R+ swap 38717 38639 1404 0 R+ swap 38716 38639 1404 0 R+ swap 38715 38639 1404 0 R+ swap 38714 38639 1404 0 R+ swap 38713 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38712 38639 1404 0 R+ swap 38711 38639 1404 0 R+ swap 38710 38639 1404 0 R+ swap 38709 38639 1404 0 R+ swap 38708 38639 1404 0 R+ swap 38707 38639 1404 0 R+ swap 38706 38639 1404 0 R+ swap 38705 38639 1404 0 R+ swap 38704 38639 1404 0 R+ swap 38703 38639 1404 0 R+ swap 38702 38639 1404 0 R+ swap 38701 38639 1404 0 R+ swap 38700 38639 1404 0 R+ swap 38699 38639 1404 0 SL+ swread 0xc282b6b8 swap 38698 38639 1404 0 R+ swap 38697 38639 1404 0 SL+ swread 0xc1cefff0 swap 38696 38639 1404 0 R+ swap 38695 38639 1404 0 R+ swap 38694 38639 1404 0 R+ swap 38693 38639 1404 0 R+ swap 38692 38639 1404 0 R+ swap 38691 38639 1404 0 SL+ swread 0xc23ce2f4 swap 38690 38639 1404 0 SL+ swread 0xc2287bf8 swap 38689 38639 1404 0 R+ swap 38688 38639 1404 0 R+ swap 38687 38639 1404 0 R+ swap 38686 38639 1404 0 R+ swap 38685 38639 1404 0 R+ swap 38684 38639 1404 0 R+ swap 38683 38639 1404 0 R+ swap 38682 38639 1404 0 R+ swap 38681 38639 1404 0 SL+ swread 0xc2571398 swap 38680 38639 1404 0 SL+ swread 0xc24aa744 swap 38679 38639 1404 0 R+ swap 38678 38639 1404 0 R+ swap 38677 38639 1404 0 R+ swap 38676 38639 1404 0 R+ swap 38675 38639 1404 0 R+ swap 38674 38639 1404 0 R+ swap 38673 38639 1404 0 SL+ swread 0xc23f9484 swap 38672 38639 1404 0 R+ swap 38671 38639 1404 0 R+ swap 38670 38639 1404 0 R+ swap 38669 38639 1404 0 R+ swap 38668 38639 1404 0 R+ swap 38667 38639 1404 0 R+ swap 38666 38639 1404 0 R+ swap 38665 38639 1404 0 R+ swap 38664 38639 1404 0 R+ swap 38663 38639 1404 0 R+ swap 38662 38639 1404 0 R+ swap 38661 38639 1404 0 R+ swap 38660 38639 1404 0 R+ swap 38659 38639 1404 0 SL+ swread 0xc1a00030 swap 38658 38639 1404 0 R+ swap 38657 38639 1404 0 SL+ swread 0xc1e56310 swap 38656 38639 1404 0 R+ swap 38655 38639 1404 0 R+ swap 38654 38639 1404 0 R+ swap 38653 38639 1404 0 R+ swap 38652 38639 1404 0 R+ swap 38651 38639 1404 0 R+ swap 38650 38639 1404 0 R+ swap 38649 38639 1404 0 R+ swap 38648 38639 1404 0 R+ swap 38647 38639 1404 0 R+ swap 38646 38639 1404 0 R+ swap 38645 38639 1404 0 R+ swap 38644 38639 1404 0 R+ swap 38643 38639 1404 0 SL+ swread 0xc1af11dc swap 38642 38639 1404 0 R+ swap 38641 38639 1404 0 R+ swap 38640 38639 1404 0 SL+ pfault 0xc0f0ecdc swap 38639 38635 1404 0 S+ wait 0xc567da90 swap 38636 35794 1404 0 S+ biowr 0xe45022ec dl 38635 35794 1404 0 S+ nanslp 0xc0d95f84 swap 35794 1404 1404 0 S+ wait 0xc5516000 sh 29621 29620 29621 1001 Ss+ wait 0xc536ba90 bash 29620 29584 29584 1001 S select 0xc563ce24 sshd 29584 1075 29584 0 Ss sbwait 0xc507f3cc sshd 1404 1366 1404 0 S+ wait 0xc4f7bd34 sh 1366 1362 1366 0 S+ wait 0xc4f7a7ec bash 1362 1361 1362 0 S+ pause 0xc4f7b844 csh 1361 1168 1361 1001 S+ wait 0xc4f7ba90 su 1185 1180 1180 1001 S piperd 0xc523c600 awk 1184 1180 1180 1001 S wait 0xc4c10d34 sh 1183 1181 1183 1001 Ss+ select 0xc4cb6ce4 top 1182 1179 1182 1001 Ss kqread 0xc4bcfe80 tail 1181 1174 1174 1001 S select 0xc4e3fe24 sshd 1180 1178 1180 1001 Ss wait 0xc5250000 sh 1179 1173 1173 1001 S select 0xc4a5b464 sshd 1178 1172 1172 1001 S select 0xc4cb7464 sshd 1174 1075 1174 0 Ss sbwait 0xc5267b88 sshd 1173 1075 1173 0 Ss sbwait 0xc50806e4 sshd 1172 1075 1172 0 Ss sbwait 0xc507f870 sshd 1168 1167 1168 1001 Ss+ wait 0xc4f7b000 bash 1167 1165 1165 1001 S select 0xc4cb83e4 sshd 1165 1075 1165 0 Ss sbwait 0xc50796e4 sshd 1159 1 1159 0 Ss+ ttyin 0xc48fa870 getty 1158 1 1158 0 Ss+ ttyin 0xc48fa470 getty 1157 1 1157 0 Ss+ ttyin 0xc48fa070 getty 1156 1 1156 0 Ss+ ttyin 0xc47cfe70 getty 1155 1 1155 0 Ss+ ttyin 0xc47cfc70 getty 1154 1 1154 0 Ss+ ttyin 0xc47cf670 getty 1153 1 1153 0 Ss+ ttyin 0xc47cf870 getty 1152 1 1152 0 Ss+ ttyin 0xc47cfa70 getty 1151 1 1151 0 Ss+ ttyin 0xc47cf270 getty 1125 1 1125 0 Ss select 0xc4b7be24 inetd 1101 1 1101 0 Ss wait 0xc4f7ad34 watchdogd 1092 1 1092 0 Ss nanslp 0xc0d95f84 cron 1086 1 1086 25 Ss pause 0xc4e1aae8 sendmail 1082 1 1082 0 Ss select 0xc4c38424 sendmail 1075 1 1075 0 Ss select 0xc4e3fda4 sshd 1038 1 1038 0 Ss select 0xc4bc3264 ntpd 917 1 917 0 Ss rpcsvc 0xc4c37990 NLM: master 911 1 911 0 Ss select 0xc4c37824 rpc.statd 902 901 901 0 S (threaded) nfsd 100140 S rpcsvc 0xc4cb7a90 nfsd: service 100139 S rpcsvc 0xc4bc3450 nfsd: service 100138 S rpcsvc 0xc4bc3410 nfsd: service 100095 S rpcsvc 0xc4c38210 nfsd: master 901 1 901 0 Ss select 0xc4e3f6a4 nfsd 899 1 899 0 Ss select 0xc4e3f4e4 mountd 817 1 817 0 Ss select 0xc4bc4264 rpcbind 788 1 788 0 SLs pfault 0xc0f0ecdc syslogd 593 1 593 0 Ss select 0xc4c387a4 devd 44 0 0 0 SL flowclea 0xc0d95de4 [flowcleaner] 43 0 0 0 SL sdflush 0xc0f0e6e0 [softdepflush] 42 0 0 0 SL vlruwt 0xc4b3a2a4 [vnlru] 41 0 0 0 SL syncer 0xc0f02854 [syncer] 40 0 0 0 SL psleep 0xc0f02588 [bufdaemon] 39 0 0 0 SL pgzero 0xc0f0f314 [pagezero] 38 0 0 0 SL psleep 0xc0f0ef3c [vmdaemon] 9 0 0 0 SL wswbuf0 0xc0f0e814 [pagedaemon] 37 0 0 0 SL wmsg 0xc47dfd0c [usbus5] 36 0 0 0 SL wmsg 0xc47dfcdc [usbus5] 35 0 0 0 SL wmsg 0xc47dfcac [usbus5] 34 0 0 0 SL wmsg 0xc47dfc7c [usbus5] 33 0 0 0 SL wmsg 0xc47d9b5c [usbus4] 32 0 0 0 SL wmsg 0xc47d9b2c [usbus4] 31 0 0 0 SL wmsg 0xc47d9afc [usbus4] 30 0 0 0 SL wmsg 0xc47d9acc [usbus4] 29 0 0 0 SL wmsg 0xc47d0b5c [usbus3] 28 0 0 0 SL wmsg 0xc47d0b2c [usbus3] 27 0 0 0 SL wmsg 0xc47d0afc [usbus3] 26 0 0 0 SL wmsg 0xc47d0acc [usbus3] 25 0 0 0 SL wmsg 0xc47ccb5c [usbus2] 24 0 0 0 SL wmsg 0xc47ccb2c [usbus2] 23 0 0 0 SL wmsg 0xc47ccafc [usbus2] 22 0 0 0 SL wmsg 0xc47ccacc [usbus2] 21 0 0 0 SL wmsg 0xc47c6b5c [usbus1] 20 0 0 0 SL wmsg 0xc47c6b2c [usbus1] 19 0 0 0 SL wmsg 0xc47c6afc [usbus1] 18 0 0 0 SL wmsg 0xc47c6acc [usbus1] 17 0 0 0 SL wmsg 0xc47c1b5c [usbus0] 16 0 0 0 SL wmsg 0xc47c1b2c [usbus0] 15 0 0 0 SL wmsg 0xc47c1afc [usbus0] 14 0 0 0 SL wmsg 0xc47c1acc [usbus0] 8 0 0 0 SL waiting_ 0xc0f0473c [sctp_iterator] 7 0 0 0 SL - 0xc47cf43c [fdc0] 6 0 0 0 SL - 0xc47fe000 [fw0_probe] 5 0 0 0 SL ccb_scan 0xc0d62dd4 [xpt_thrd] 13 0 0 0 SL - 0xc0d95de4 [yarrow] 4 0 0 0 SL - 0xc0d93b64 [g_down] 3 0 0 0 RL CPU 2 [g_up] 2 0 0 0 SL - 0xc0d93b58 [g_event] 12 0 0 0 WL (threaded) intr 100042 I [irq12: psm0] 100041 I [irq1: atkbd0] 100039 I [swi0: uart] 100036 I [irq20: fwohci0] 100035 I [irq14: ata0] 100034 I [irq19: ehci0] 100033 I [irq18: ohci2 ohci4] 100032 I [irq17: ohci1 ohci3] 100031 I [irq16: hdac1 ohci0] 100030 I [irq22: atapci0] 100029 I [irq256: hdac0] 100028 I [irq9: acpi0] 100027 I [swi2: cambio] 100021 I [swi6: task queue] 100020 I [swi6: Giant taskq] 100018 I [swi5: +] 100012 I [swi1: net] 100011 I [swi4: clock] 100010 I [swi4: clock] 100009 I [swi4: clock] 100008 I [swi4: clock] 100007 I [swi3: vm] 11 0 0 0 RL (threaded) idle 100006 CanRun [idle: cpu0] 100005 Run CPU 1 [idle: cpu1] 100004 CanRun [idle: cpu2] 100003 CanRun [idle: cpu3] 1 0 1 0 SLs wait 0xc4577d34 [init] 10 0 0 0 SL audit_wo 0xc0f0e080 [audit] 0 0 0 0 SLs (threaded) kernel 100037 D - 0xc47d7200 [fw0_taskq] 100025 D - 0xc4732280 [acpi_task_2] 100024 D - 0xc4732280 [acpi_task_1] 100023 D - 0xc4732280 [acpi_task_0] 100022 D - 0xc47322c0 [kqueue taskq] 100019 D - 0xc4732400 [thread taskq] 100016 D - 0xc455fdc0 [firmware taskq] 100000 D vmwait 0xc0f0ecdc [swapper] db:1:ps> allt Tracing command dl pid 39615 tid 100371 td 0xc56c2900 sched_switch(c56c2900,0,104,18c,2bb95ae9,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,50,...) at mi_switch+0x200 sleepq_switch(c56c2900,0,c0c4b5a8,247,50,...) at sleepq_switch+0x15f sleepq_wait(c53d8cdc,50,c0c40670,4,0,...) at sleepq_wait+0x63 __lockmgr_args(c53d8cdc,80400,c53d8d44,0,0,...) at __lockmgr_args+0xa9f ffs_lock(f3d38b80,c4e1f598,0,80400,c53d8c84,...) at ffs_lock+0xa1 VOP_LOCK1_APV(c0d49e80,f3d38b80,48a,c0d62600,c53d8c84,...) at VOP_LOCK1_APV+0xa5 _vn_lock(c53d8c84,80400,c0c6f262,1ee,c54175d0,...) at _vn_lock+0x78 _vm_map_unlock(c531a1d0,1,c0c6f262,b69,1,...) at _vm_map_unlock+0x10f vm_map_remove(c531a1d0,0,bfc00000,0,c56b72a4,...) at vm_map_remove+0x7b vmspace_exit(c56c2900,0,c0c42ca9,12a,c0ed4238,...) at vmspace_exit+0xbf exit1(c56c2900,0,f3d38d2c,c0b7b894,c56c2900,...) at exit1+0x5cb sys_exit(c56c2900,f3d38cf8,4,f3d38d38,c0d2a698,...) at sys_exit+0x1d syscall(f3d38d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x2811c8f3, esp = 0xbfbfeacc, ebp = 0xbfbfead8 --- Tracing command awk pid 39589 tid 100602 td 0xc56ccb40 sched_switch(c56ccb40,0,104,18c,8747d52d,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,44,...) at mi_switch+0x200 sleepq_switch(c56ccb40,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(e44de5fc,44,c0c71d19,0,0,...) at sleepq_wait+0x63 _sleep(e44de5fc,c454277c,44,c0c71d19,0,...) at _sleep+0x35b bwait(e44de5fc,44,c0c71d19,309,c4c2cd24,...) at bwait+0x6f vnode_pager_generic_getpages(c4bc79bc,f4080ba8,6000,0,c2518020) at vnode_pager_generic_getpages+0x122c ffs_getpages(f4080aa8,c0c81890,c4bc79bc,c4bc79bc,c4bd19b0,...) at ffs_getpages+0x151 VOP_GETPAGES_APV(c0d49e80,f4080aa8,c0c719d6,28d,c0d62740,...) at VOP_GETPAGES_APV+0xd6 vnode_pager_getpages(c4bd19b0,f4080ba8,6,0,f4080c2c,...) at vnode_pager_getpages+0xb6 vm_fault_hold(8,0,f4080c98,c0b7b4e8,c4c17cb0,...) at vm_fault_hold+0xfbf vm_fault(c4c17cb0,2817a000,2,8,2817ab72,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c555a2a4,...) at trap_pfault+0x118 trap(f4080d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x28067aa6, esp = 0xbfbfe6b0, ebp = 0xbfbfe708 --- Tracing command sed pid 39588 tid 100817 td 0xc594b900 sched_switch(c594b900,0,104,18c,8748fd27,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,44,...) at mi_switch+0x200 sleepq_switch(c594b900,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c2518020,44,c0c6ed0b,0,0,...) at sleepq_wait+0x63 _sleep(c2518020,c4bd19b0,44,c0c6ed0b,0) at _sleep+0x35b vm_page_sleep(c2518020,c0c6ed0b,0,199,f440bbfc,...) at vm_page_sleep+0xc3 vm_fault_hold(8,0,f440bc98,c0b7b4e8,c56d9000,...) at vm_fault_hold+0x4a2 vm_fault(c56d9000,28149000,2,8,28149b72,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5a07000,...) at trap_pfault+0x118 trap(f440bd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x28050aa6, esp = 0xbfbfe680, ebp = 0xbfbfe6d8 --- Tracing command vmstat pid 39587 tid 100335 td 0xc5550000 sched_switch(c5550000,0,104,18c,8746d4bc,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,44,...) at mi_switch+0x200 sleepq_switch(c5550000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c2518020,44,c0c6ed0b,0,0,...) at sleepq_wait+0x63 _sleep(c2518020,c4bd19b0,44,c0c6ed0b,0) at _sleep+0x35b vm_page_sleep(c2518020,c0c6ed0b,0,199,f3c53bfc,...) at vm_page_sleep+0xc3 vm_fault_hold(8,0,f3c53c98,c0b7b4e8,c5674740,...) at vm_fault_hold+0x4a2 vm_fault(c5674740,28169000,2,8,28169b72,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c55617ec,...) at trap_pfault+0x118 trap(f3c53d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x2804faa6, esp = 0xbfbfe6c0, ebp = 0xbfbfe718 --- Tracing command sh pid 39561 tid 100689 td 0xc52b1d80 sched_switch(c52b1d80,0,104,18c,933cc272,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c52b1d80,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c53627c0,0,0,14b,f4185bfc,...) at vm_waitpfault+0x75 vm_fault_hold(0,0,f4185c98,c0b7b4e8,c5414740,...) at vm_fault_hold+0x628 vm_fault(c5414740,28091000,1,0,2809106c,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c58e62a4,...) at trap_pfault+0x118 trap(f4185d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x28068483, esp = 0xbfbfeb6c, ebp = 0xbfbfeba4 --- Tracing command uio pid 39456 tid 100344 td 0xc55a4000 kdb_enter(c0c4727c,c0c4727c,c0c6d00c,f3c77a00,0,...) at kdb_enter+0x3a panic(c0c6d00c,c0f0ede0,4,0,f3c77a18,...) at panic+0x136 ffs_read(f3c77ad0,c0c81a33,c4ea5000,f3c77ad0,c51969bc,...) at ffs_read+0xd9 VOP_READ_APV(c0d49e80,f3c77ad0,c0c556ab,27b,c4ea5000,...) at VOP_READ_APV+0xc5 vn_read_wired_chunk(c505db28,c4ea5000,c4f11400,0,0,...) at vn_read_wired_chunk+0xb1 do_vn_rw_chunked(0,0,c55a4000,f3c77b80,c08f9120,...) at do_vn_rw_chunked+0x19e vn_read(c505db28,c4ea5000,c4f11400,0,c55a4000,...) at vn_read+0x1b9 dofileread(c4ea5000,ffffffff,ffffffff,0,c505db28,...) at dofileread+0x96 kern_readv(c55a4000,3,c4ea5000,c4ea5000,28203f9c,...) at kern_readv+0x58 readv(c55a4000,f3c77cf8,c,f3c77d38,c0d2b1c0,...) at readv+0x46 syscall(f3c77d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (120, FreeBSD ELF32, readv), eip = 0x280fbccf, esp = 0xbfbfeb1c, ebp = 0xbfbfeb68 --- Tracing command swap pid 38842 tid 100217 td 0xc5433000 sched_switch(c5433000,0,207,187,55288619,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5443a90,...) at mi_switch+0x200 ast(f3a9ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38841 tid 100356 td 0xc554e000 sched_switch(c554e000,0,104,18c,7cdf6452,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c554e000,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1b018d4,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1b018d4,c53cc6c8,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c53cc6c8,f3cf9ba8,8,0,f3cf9c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3cf9c98,c0b7b4e8,c59ce3a0,...) at vm_fault_hold+0xfbf vm_fault(c59ce3a0,286ce000,2,8,286ce000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c554d548,...) at trap_pfault+0x118 trap(f3cf9d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38840 tid 100444 td 0xc53b4000 sched_switch(c53b4000,0,104,18c,8edee457,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c53b4000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c5318554,3d1,0,14b,f3e14bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3e14c98,c0b7b4e8,c53db0e8,...) at vm_fault_hold+0x628 vm_fault(c53db0e8,286d1000,2,8,286d1000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c53b6000,...) at trap_pfault+0x118 trap(f3e14d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38839 tid 100578 td 0xc56c6900 sched_switch(c56c6900,0,104,18c,820a6f0d,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c56c6900,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c23cbed4,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c23cbed4,c56e4c98,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c56e4c98,f3ff2ba8,8,0,f3ff2c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3ff2c98,c0b7b4e8,c5583000,...) at vm_fault_hold+0xfbf vm_fault(c5583000,2870f000,2,8,2870f000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c567f7ec,...) at trap_pfault+0x118 trap(f3ff2d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38838 tid 100467 td 0xc55d7d80 sched_switch(c55d7d80,0,104,18c,8a7b2e3d,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c55d7d80,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c27b67ec,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c27b67ec,c51ea7c0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c51ea7c0,f3e59ba8,8,0,f3e59c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3e59c98,c0b7b4e8,c55499f8,...) at vm_fault_hold+0xfbf vm_fault(c55499f8,28640000,2,8,28640000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c55dad34,...) at trap_pfault+0x118 trap(f3e59d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38837 tid 100840 td 0xc5a1f900 sched_switch(c5a1f900,0,104,18c,8af8671f,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c5a1f900,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1980434,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1980434,c54979b0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c54979b0,f4450ba8,8,0,f4450c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f4450c98,c0b7b4e8,c545c910,...) at vm_fault_hold+0xfbf vm_fault(c545c910,2879a000,2,8,2879a000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c59ff2a4,...) at trap_pfault+0x118 trap(f4450d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38836 tid 100791 td 0xc53366c0 sched_switch(c53366c0,0,104,18c,90ea9977,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c53366c0,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c57f3364,364,0,14b,f4318bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f4318c98,c0b7b4e8,c55b42b8,...) at vm_fault_hold+0x628 vm_fault(c55b42b8,28664000,2,8,28664000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5284d34,...) at trap_pfault+0x118 trap(f4318d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38835 tid 100830 td 0xc52a6000 sched_switch(c52a6000,0,104,18c,81796788,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c52a6000,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c24f0adc,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c24f0adc,c54dc64c,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c54dc64c,f4432ba8,8,0,f4432c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f4432c98,c0b7b4e8,c531abc8,...) at vm_fault_hold+0xfbf vm_fault(c531abc8,28724000,2,8,28724000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5a00d34,...) at trap_pfault+0x118 trap(f4432d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38834 tid 100288 td 0xc550e900 sched_switch(c550e900,0,207,187,a0a80860,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5502000,...) at mi_switch+0x200 ast(f3bacd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38833 tid 100594 td 0xc5348d80 sched_switch(c5348d80,0,207,187,ec746f53,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c555f7ec,...) at mi_switch+0x200 ast(f4068d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38832 tid 100524 td 0xc55d8d80 sched_switch(c55d8d80,0,104,18c,809708d2,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c55d8d80,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c2037e70,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c2037e70,c55bc364,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c55bc364,f3f1bba8,8,0,f3f1bc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3f1bc98,c0b7b4e8,c56d9e80,...) at vm_fault_hold+0xfbf vm_fault(c56d9e80,287f2000,2,8,287f2000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5625548,...) at trap_pfault+0x118 trap(f3f1bd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38831 tid 100268 td 0xc54d3b40 sched_switch(c54d3b40,0,207,187,5f00ee35,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54bda90,...) at mi_switch+0x200 ast(f3b66d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38830 tid 100440 td 0xc53b4900 sched_switch(c53b4900,0,104,18c,81ebd39a,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c53b4900,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1f75770,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1f75770,c558cba0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c558cba0,f3e08ba8,8,0,f3e08c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3e08c98,c0b7b4e8,c4f15d98,...) at vm_fault_hold+0xfbf vm_fault(c4f15d98,2869d000,2,8,2869d000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c53b6a90,...) at trap_pfault+0x118 trap(f3e08d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38829 tid 100376 td 0xc56c1d80 sched_switch(c56c1d80,0,104,18c,90db61fe,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c56c1d80,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c589ae88,362,0,14b,f3d47bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3d47c98,c0b7b4e8,c5634ae0,...) at vm_fault_hold+0x628 vm_fault(c5634ae0,28662000,2,8,28662000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c4e8ba90,...) at trap_pfault+0x118 trap(f3d47d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38828 tid 100625 td 0xc57d9900 sched_switch(c57d9900,0,207,187,8b5f48c4,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54f7548,...) at mi_switch+0x200 ast(f40c5d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38827 tid 100166 td 0xc5325240 sched_switch(c5325240,0,104,18c,81fad83a,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c5325240,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c282ec1c,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c282ec1c,c56e49b0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c56e49b0,f39c8ba8,8,0,f39c8c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f39c8c98,c0b7b4e8,c59c72b8,...) at vm_fault_hold+0xfbf vm_fault(c59c72b8,28678000,2,8,28678000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c53227ec,...) at trap_pfault+0x118 trap(f39c8d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38826 tid 100553 td 0xc5617d80 sched_switch(c5617d80,0,207,187,a4ad265,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c567e2a4,...) at mi_switch+0x200 ast(f3f8fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38825 tid 100386 td 0xc56be6c0 sched_switch(c56be6c0,0,207,187,c881064c,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4b44000,...) at mi_switch+0x200 ast(f3d65d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38824 tid 100632 td 0xc57d7900 sched_switch(c57d7900,0,104,18c,7804bef4,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c57d7900,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c270a9e8,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c270a9e8,c5495744,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c5495744,f40daba8,8,0,f40dac2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f40dac98,c0b7b4e8,c55b3828,...) at vm_fault_hold+0xfbf vm_fault(c55b3828,287e5000,2,8,287e5000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c54d62a4,...) at trap_pfault+0x118 trap(f40dad38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38823 tid 100381 td 0xc56c1240 sched_switch(c56c1240,0,104,18c,8ca62a81,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c56c1240,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c27bacfc,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c27bacfc,c53dde0c,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c53dde0c,f3d56ba8,8,0,f3d56c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3d56c98,c0b7b4e8,c53de488,...) at vm_fault_hold+0xfbf vm_fault(c53de488,286b0000,2,8,286b0000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c4b44d34,...) at trap_pfault+0x118 trap(f3d56d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38822 tid 100855 td 0xc5a166c0 sched_switch(c5a166c0,0,104,18c,7886ac5e,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c5a166c0,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c24d5eac,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c24d5eac,c57f383c,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c57f383c,f447dba8,8,0,f447dc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f447dc98,c0b7b4e8,c59ced98,...) at vm_fault_hold+0xfbf vm_fault(c59ced98,288b0000,2,8,288b0000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c59f8a90,...) at trap_pfault+0x118 trap(f447dd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38821 tid 100234 td 0xc54906c0 sched_switch(c54906c0,0,207,187,7672eaae,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c543bd34,...) at mi_switch+0x200 ast(f3aded38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38820 tid 100406 td 0xc5690900 sched_switch(c5690900,0,104,18c,8ff9aa76,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c5690900,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c58de7c0,345,0,14b,f3da1bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3da1c98,c0b7b4e8,c4f14570,...) at vm_fault_hold+0x628 vm_fault(c4f14570,28645000,2,8,28645000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c52bea90,...) at trap_pfault+0x118 trap(f3da1d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38819 tid 100202 td 0xc5436000 sched_switch(c5436000,0,104,18c,8fe7c8cb,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c5436000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c56a6d14,35e,0,14b,f3a70bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3a70c98,c0b7b4e8,c55e3000,...) at vm_fault_hold+0x628 vm_fault(c55e3000,2865e000,2,8,2865e000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c541e000,...) at trap_pfault+0x118 trap(f3a70d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38818 tid 100160 td 0xc4f80b40 sched_switch(c4f80b40,0,104,18c,8988866e,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c4f80b40,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c2845628,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c2845628,c540c07c,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c540c07c,f399fba8,8,0,f399fc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f399fc98,c0b7b4e8,c53da000,...) at vm_fault_hold+0xfbf vm_fault(c53da000,2870b000,2,8,2870b000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c4f7b2a4,...) at trap_pfault+0x118 trap(f399fd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38817 tid 100523 td 0xc5612000 sched_switch(c5612000,0,207,187,ea0366c7,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c56257ec,...) at mi_switch+0x200 ast(f3f17d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38816 tid 100403 td 0xc5691000 sched_switch(c5691000,0,207,187,f8945faf,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52c22a4,...) at mi_switch+0x200 ast(f3d98d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38815 tid 100083 td 0xc4c47900 sched_switch(c4c47900,0,207,187,6be5dd34,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4c44a90,...) at mi_switch+0x200 ast(f384ad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38814 tid 100163 td 0xc5325900 sched_switch(c5325900,0,104,18c,7ed94683,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c5325900,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c253d540,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c253d540,c58dd45c,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c58dd45c,f39bcba8,8,0,f39bcc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f39bcc98,c0b7b4e8,c55e3570,...) at vm_fault_hold+0xfbf vm_fault(c55e3570,28348000,2,8,28348000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5323000,...) at trap_pfault+0x118 trap(f39bcd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38813 tid 100439 td 0xc53b4b40 sched_switch(c53b4b40,0,207,187,e63e721b,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c53b6d34,...) at mi_switch+0x200 ast(f3e04d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38812 tid 100642 td 0xc5853b40 sched_switch(c5853b40,0,104,18c,8e687c85,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c5853b40,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c52ed8b8,432,0,14b,f40f8bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f40f8c98,c0b7b4e8,c54dabc8,...) at vm_fault_hold+0x628 vm_fault(c54dabc8,28732000,2,8,28732000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5897000,...) at trap_pfault+0x118 trap(f40f8d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38811 tid 100618 td 0xc57b7000 sched_switch(c57b7000,0,207,187,ca4d4e77,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54fb7ec,...) at mi_switch+0x200 ast(f40b0d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38810 tid 100408 td 0xc5690480 sched_switch(c5690480,0,207,187,d304ee1e,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52be548,...) at mi_switch+0x200 ast(f3da7d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38809 tid 100203 td 0xc5434d80 sched_switch(c5434d80,0,207,187,7669ce68,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c541dd34,...) at mi_switch+0x200 ast(f3a73d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38808 tid 100616 td 0xc57b7480 sched_switch(c57b7480,0,104,18c,8ac73950,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c57b7480,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c22bc1c0,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c22bc1c0,c58e9934,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c58e9934,f40aaba8,8,0,f40aac2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f40aac98,c0b7b4e8,c56349f8,...) at vm_fault_hold+0xfbf vm_fault(c56349f8,2874c000,2,8,2874c000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c54fbd34,...) at trap_pfault+0x118 trap(f40aad38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38807 tid 100627 td 0xc57d9480 sched_switch(c57d9480,0,104,18c,8c98714c,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c57d9480,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c238b1d4,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c238b1d4,c58ac7c0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c58ac7c0,f40cbba8,8,0,f40cbc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f40cbc98,c0b7b4e8,c4efa828,...) at vm_fault_hold+0xfbf vm_fault(c4efa828,28320000,2,8,28320000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c54f7000,...) at trap_pfault+0x118 trap(f40cbd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38806 tid 100856 td 0xc5a16480 sched_switch(c5a16480,0,207,187,8d95b4db,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c59f87ec,...) at mi_switch+0x200 ast(f4480d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38805 tid 100565 td 0xc56cb480 sched_switch(c56cb480,0,207,187,dbc39069,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c56ce7ec,...) at mi_switch+0x200 ast(f3fbfd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38804 tid 100191 td 0xc53fd480 sched_switch(c53fd480,0,104,18c,7f773cc0,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c53fd480,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c279737c,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c279737c,c541b4d8,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c541b4d8,f3a4bba8,8,0,f3a4bc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3a4bc98,c0b7b4e8,c5674d98,...) at vm_fault_hold+0xfbf vm_fault(c5674d98,28744000,2,8,28744000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c54057ec,...) at trap_pfault+0x118 trap(f3a4bd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38803 tid 100418 td 0xc568ed80 sched_switch(c568ed80,0,104,18c,95c661f0,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c568ed80,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c56804d8,34a,0,14b,f3dc5bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3dc5c98,c0b7b4e8,c5674658,...) at vm_fault_hold+0x628 vm_fault(c5674658,2864a000,2,8,2864a000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c536b000,...) at trap_pfault+0x118 trap(f3dc5d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38802 tid 100229 td 0xc5491240 sched_switch(c5491240,0,207,187,b386f111,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c543ca90,...) at mi_switch+0x200 ast(f3acad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38801 tid 100385 td 0xc56be900 sched_switch(c56be900,0,104,18c,89204aad,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c56be900,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c290a830,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c290a830,c589d9b0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c589d9b0,f3d62ba8,8,0,f3d62c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3d62c98,c0b7b4e8,c57e5ae0,...) at vm_fault_hold+0xfbf vm_fault(c57e5ae0,28450000,2,8,28450000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c4b442a4,...) at trap_pfault+0x118 trap(f3d62d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38800 tid 100486 td 0xc55cf240 sched_switch(c55cf240,0,207,187,80e8ec8a,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55e8000,...) at mi_switch+0x200 ast(f3e92d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38799 tid 100341 td 0xc5491b40 sched_switch(c5491b40,0,207,187,b5535f75,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54e4a90,...) at mi_switch+0x200 ast(f3c6bd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38798 tid 100242 td 0xc5464b40 sched_switch(c5464b40,0,207,187,4c759f42,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54a0a90,...) at mi_switch+0x200 ast(f3afed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38797 tid 100823 td 0xc4cccb40 sched_switch(c4cccb40,0,207,187,9416b5d8,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5a04000,...) at mi_switch+0x200 ast(f441dd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38796 tid 100477 td 0xc55d06c0 sched_switch(c55d06c0,0,104,18c,8fd9026c,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c55d06c0,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c567ad90,37d,0,14b,f3e77bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3e77c98,c0b7b4e8,c54130e8,...) at vm_fault_hold+0x628 vm_fault(c54130e8,2867d000,2,8,2867d000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c55d92a4,...) at trap_pfault+0x118 trap(f3e77d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38795 tid 100545 td 0xc5661000 sched_switch(c5661000,0,207,187,81b4f440,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c562a2a4,...) at mi_switch+0x200 ast(f3f6fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38794 tid 100766 td 0xc594c480 sched_switch(c594c480,0,207,187,fc5b7614,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58fe7ec,...) at mi_switch+0x200 ast(f428dd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38793 tid 100330 td 0xc5550b40 sched_switch(c5550b40,0,207,187,3f90b337,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5566548,...) at mi_switch+0x200 ast(f3c3fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38792 tid 100713 td 0xc58a3d80 sched_switch(c58a3d80,0,207,187,35aa885c,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588f000,...) at mi_switch+0x200 ast(f41d9d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38791 tid 100091 td 0xc4cb96c0 sched_switch(c4cb96c0,0,207,187,7b7ef1d4,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4cb07ec,...) at mi_switch+0x200 ast(f3875d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38790 tid 100228 td 0xc5491480 sched_switch(c5491480,0,104,18c,8326c4d5,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c5491480,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c24123c0,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c24123c0,c555cc98,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c555cc98,f3ac6ba8,8,0,f3ac6c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3ac6c98,c0b7b4e8,c55b32b8,...) at vm_fault_hold+0xfbf vm_fault(c55b32b8,287f2000,2,8,287f2000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c543cd34,...) at trap_pfault+0x118 trap(f3ac6d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38789 tid 100506 td 0xc56156c0 sched_switch(c56156c0,0,207,187,1acd4402,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c561a000,...) at mi_switch+0x200 ast(f3ed3d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38788 tid 100779 td 0xc58f3240 sched_switch(c58f3240,0,207,187,edd154de,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5260000,...) at mi_switch+0x200 ast(f42f4d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38787 tid 100496 td 0xc5616d80 sched_switch(c5616d80,0,207,187,cb968f6,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55e6548,...) at mi_switch+0x200 ast(f3eb0d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38786 tid 100407 td 0xc56906c0 sched_switch(c56906c0,0,207,187,4d4aa7bd,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52be7ec,...) at mi_switch+0x200 ast(f3da4d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38785 tid 100443 td 0xc53b4240 sched_switch(c53b4240,0,207,187,4706ebb3,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c53b62a4,...) at mi_switch+0x200 ast(f3e11d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38784 tid 100248 td 0xc5463d80 sched_switch(c5463d80,0,207,187,dd7b15ef,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c549ea90,...) at mi_switch+0x200 ast(f3b16d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38783 tid 100305 td 0xc550c240 sched_switch(c550c240,0,207,187,be0ad9b0,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55167ec,...) at mi_switch+0x200 ast(f3bdfd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38782 tid 100679 td 0xc52b3480 sched_switch(c52b3480,0,207,187,42c6c0fd,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58d47ec,...) at mi_switch+0x200 ast(f4167d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38781 tid 100532 td 0xc5662d80 sched_switch(c5662d80,0,104,18c,90fa1e67,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c5662d80,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c5680744,3d6,0,14b,f3f3bbfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3f3bc98,c0b7b4e8,c56753a0,...) at vm_fault_hold+0x628 vm_fault(c56753a0,286d6000,2,8,286d6000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c566a548,...) at trap_pfault+0x118 trap(f3f3bd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38780 tid 100445 td 0xc53b2d80 sched_switch(c53b2d80,0,207,187,a910c647,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c536bd34,...) at mi_switch+0x200 ast(f3e17d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38779 tid 100442 td 0xc53b4480 sched_switch(c53b4480,0,207,187,6a2291c3,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c53b6548,...) at mi_switch+0x200 ast(f3e0ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38778 tid 100194 td 0xc53fcd80 sched_switch(c53fcd80,0,207,187,1c998c6d,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5405000,...) at mi_switch+0x200 ast(f3a54d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38777 tid 100789 td 0xc5336b40 sched_switch(c5336b40,0,207,187,7498bf45,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52872a4,...) at mi_switch+0x200 ast(f4312d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38776 tid 100273 td 0xc54d3000 sched_switch(c54d3000,0,104,18c,8e77e0a7,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c54d3000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c56b61f0,3e5,0,14b,f3b7abfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3b7ac98,c0b7b4e8,c57f62b8,...) at vm_fault_hold+0x628 vm_fault(c57f62b8,286e5000,2,8,286e5000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c54a0d34,...) at trap_pfault+0x118 trap(f3b7ad38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38774 tid 100422 td 0xc568e480 sched_switch(c568e480,0,207,187,85f51e54,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52d6548,...) at mi_switch+0x200 ast(f3dd1d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38772 tid 100473 td 0xc55d7000 sched_switch(c55d7000,0,207,187,a6c3520f,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55d9d34,...) at mi_switch+0x200 ast(f3e6bd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38771 tid 100400 td 0xc56916c0 sched_switch(c56916c0,0,60b,187,968ef143,...) at sched_switch+0x437 mi_switch(60b,0,c0c48e8a,813,0,...) at mi_switch+0x200 sched_preempt(c56916c0,0,28201a08,bfbfe8f8,c0b5f11e,...) at sched_preempt+0xb5 ipi_bitmap_handler(3b,3b,3b,0,bfbfea60,...) at ipi_bitmap_handler+0x34 Xipi_intr_bitmap_handler() at Xipi_intr_bitmap_handler+0x2e --- interrupt, eip = 0x8049504, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38770 tid 100824 td 0xc4ccc900 sched_switch(c4ccc900,0,207,187,7f1ca521,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5a02d34,...) at mi_switch+0x200 ast(f4420d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38769 tid 100143 td 0xc4cb1b40 sched_switch(c4cb1b40,0,207,187,b73c3a66,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4caca90,...) at mi_switch+0x200 ast(f3962d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38768 tid 100269 td 0xc54d3900 sched_switch(c54d3900,0,207,187,402e6f4e,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54bd7ec,...) at mi_switch+0x200 ast(f3b6ad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38767 tid 100827 td 0xc4ccc240 sched_switch(c4ccc240,0,207,187,a0592853,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5a02548,...) at mi_switch+0x200 ast(f4429d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38766 tid 100142 td 0xc4cb1d80 sched_switch(c4cb1d80,0,207,187,180498e4,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4cacd34,...) at mi_switch+0x200 ast(f395ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38765 tid 100352 td 0xc548fb40 sched_switch(c548fb40,0,207,187,6a52fa2f,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c543b000,...) at mi_switch+0x200 ast(f3cc2d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38764 tid 100270 td 0xc54d36c0 sched_switch(c54d36c0,0,207,187,5f9eac8e,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54bd548,...) at mi_switch+0x200 ast(f3b6ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38763 tid 100393 td 0xc56bd6c0 sched_switch(c56bd6c0,0,207,187,6244b903,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4ed92a4,...) at mi_switch+0x200 ast(f3d7ad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38762 tid 100221 td 0xc53ff6c0 sched_switch(c53ff6c0,0,207,187,e1fe4215,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5443000,...) at mi_switch+0x200 ast(f3aaad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38761 tid 100441 td 0xc53b46c0 sched_switch(c53b46c0,0,104,18c,84af9d91,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c53b46c0,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1fc8b48,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1fc8b48,c58aad90,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c58aad90,f3e0bba8,8,0,f3e0bc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3e0bc98,c0b7b4e8,c4e8e9f8,...) at vm_fault_hold+0xfbf vm_fault(c4e8e9f8,286d4000,2,8,286d4000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c53b67ec,...) at trap_pfault+0x118 trap(f3e0bd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38760 tid 100188 td 0xc53fdb40 sched_switch(c53fdb40,0,104,18c,7433ec1b,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c53fdb40,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1fd4758,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1fd4758,c5401ba0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c5401ba0,f3a42ba8,8,0,f3a42c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3a42c98,c0b7b4e8,c4e92740,...) at vm_fault_hold+0xfbf vm_fault(c4e92740,286a1000,2,8,286a1000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5406000,...) at trap_pfault+0x118 trap(f3a42d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38759 tid 100349 td 0xc554eb40 sched_switch(c554eb40,0,207,187,c2804b08,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55612a4,...) at mi_switch+0x200 ast(f3c95d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38758 tid 100452 td 0xc53b1d80 sched_switch(c53b1d80,0,207,187,41f1b73b,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5546000,...) at mi_switch+0x200 ast(f3e2cd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38757 tid 100588 td 0xc52b6b40 sched_switch(c52b6b40,0,104,18c,8c36fbde,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c52b6b40,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1ee6c20,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1ee6c20,c58e8174,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c58e8174,f4024ba8,8,0,f4024c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f4024c98,c0b7b4e8,c5623bc8,...) at vm_fault_hold+0xfbf vm_fault(c5623bc8,2868a000,2,8,2868a000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c4ec92a4,...) at trap_pfault+0x118 trap(f4024d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38756 tid 100529 td 0xc5663480 sched_switch(c5663480,0,104,18c,8de0939a,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c5663480,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c58e9c98,369,0,14b,f3f2fbfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3f2fc98,c0b7b4e8,c5675e80,...) at vm_fault_hold+0x628 vm_fault(c5675e80,28669000,2,8,28669000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c56217ec,...) at trap_pfault+0x118 trap(f3f2fd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38755 tid 100708 td 0xc5905480 sched_switch(c5905480,0,207,187,5517c30b,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588f7ec,...) at mi_switch+0x200 ast(f41c6d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38754 tid 100605 td 0xc56cc480 sched_switch(c56cc480,0,207,187,3db3b5b5,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c553fa90,...) at mi_switch+0x200 ast(f4089d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38753 tid 100851 td 0xc5a1d000 sched_switch(c5a1d000,0,207,187,57c0d3a2,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c59fa548,...) at mi_switch+0x200 ast(f4471d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38752 tid 100437 td 0xc53b5000 sched_switch(c53b5000,0,104,18c,8e86c6fa,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c53b5000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c57e6d14,3ac,0,14b,f3dfebfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3dfec98,c0b7b4e8,c59c32b8,...) at vm_fault_hold+0x628 vm_fault(c59c32b8,286ac000,2,8,286ac000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c53e72a4,...) at trap_pfault+0x118 trap(f3dfed38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38751 tid 100348 td 0xc55a36c0 sched_switch(c55a36c0,0,104,18c,74c5d521,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c55a36c0,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c2161340,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c2161340,c58e807c,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c58e807c,f3c87ba8,8,0,f3c87c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3c87c98,c0b7b4e8,c457c0e8,...) at vm_fault_hold+0xfbf vm_fault(c457c0e8,28618000,2,8,28618000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c54bf7ec,...) at trap_pfault+0x118 trap(f3c87d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38750 tid 100547 td 0xc5660b40 sched_switch(c5660b40,0,207,187,605bef9f,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c567f2a4,...) at mi_switch+0x200 ast(f3f77d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38749 tid 100327 td 0xc5553240 sched_switch(c5553240,0,207,187,70fb0dc0,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55187ec,...) at mi_switch+0x200 ast(f3c33d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38748 tid 100416 td 0xc568f240 sched_switch(c568f240,0,207,187,49c5b6de,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52bd000,...) at mi_switch+0x200 ast(f3dbfd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38747 tid 100277 td 0xc5490000 sched_switch(c5490000,0,207,187,d77a5bea,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c543b548,...) at mi_switch+0x200 ast(f3b8ad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38746 tid 100567 td 0xc56cb000 sched_switch(c56cb000,0,207,187,5c00fe45,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c56ce2a4,...) at mi_switch+0x200 ast(f3fc7d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38745 tid 100639 td 0xc5857240 sched_switch(c5857240,0,207,187,ba6d2b4c,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c51cd000,...) at mi_switch+0x200 ast(f40efd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38744 tid 100785 td 0xc58f2480 sched_switch(c58f2480,0,104,18c,8e962f8b,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c58f2480,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c55aa744,4d8,0,14b,f4306bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f4306c98,c0b7b4e8,c457d740,...) at vm_fault_hold+0x628 vm_fault(c457d740,287d8000,2,8,287d8000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5287d34,...) at trap_pfault+0x118 trap(f4306d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38743 tid 100752 td 0xc4c66b40 sched_switch(c4c66b40,0,207,187,cd043185,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588ba90,...) at mi_switch+0x200 ast(f4263d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38742 tid 100516 td 0xc5613000 sched_switch(c5613000,0,207,187,acb83932,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5629a90,...) at mi_switch+0x200 ast(f3efbd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38741 tid 100390 td 0xc56bdd80 sched_switch(c56bdd80,0,207,187,a2420b72,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4ed9a90,...) at mi_switch+0x200 ast(f3d71d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38740 tid 100719 td 0xc5902240 sched_switch(c5902240,0,207,187,f0b4a085,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58d67ec,...) at mi_switch+0x200 ast(f41eed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38739 tid 100844 td 0xc5a1f000 sched_switch(c5a1f000,0,207,187,6cbae528,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c59fe7ec,...) at mi_switch+0x200 ast(f445cd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38738 tid 100287 td 0xc550eb40 sched_switch(c550eb40,0,207,187,518ad5eb,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55022a4,...) at mi_switch+0x200 ast(f3ba9d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38736 tid 100527 td 0xc5663900 sched_switch(c5663900,0,207,187,172f9160,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5621d34,...) at mi_switch+0x200 ast(f3f27d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38735 tid 100555 td 0xc5617900 sched_switch(c5617900,0,207,187,2b348536,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c567dd34,...) at mi_switch+0x200 ast(f3f97d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38734 tid 100724 td 0xc55a2480 sched_switch(c55a2480,0,207,187,83af9c17,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58fd2a4,...) at mi_switch+0x200 ast(f41ffd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38733 tid 100829 td 0xc594c240 sched_switch(c594c240,0,104,18c,821951fa,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c594c240,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c28b9614,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c28b9614,c540c8b8,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c540c8b8,f442fba8,8,0,f442fc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f442fc98,c0b7b4e8,c4e8e910,...) at vm_fault_hold+0xfbf vm_fault(c4e8e910,286dc000,2,8,286dc000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5a02000,...) at trap_pfault+0x118 trap(f442fd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38732 tid 100845 td 0xc5a1dd80 sched_switch(c5a1dd80,0,207,187,30a8516,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c59fe548,...) at mi_switch+0x200 ast(f445fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38731 tid 100361 td 0xc548f000 sched_switch(c548f000,0,207,187,616faddc,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c56b8d34,...) at mi_switch+0x200 ast(f3d1ad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38730 tid 100482 td 0xc55cfb40 sched_switch(c55cfb40,0,104,18c,8d9dcc26,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c55cfb40,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c56eba2c,46d,0,14b,f3e86bfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3e86c98,c0b7b4e8,c554a0e8,...) at vm_fault_hold+0x628 vm_fault(c554a0e8,2876d000,2,8,2876d000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c55e8a90,...) at trap_pfault+0x118 trap(f3e86d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38729 tid 100257 td 0xc5436900 sched_switch(c5436900,0,207,187,d8e6d0b,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54442a4,...) at mi_switch+0x200 ast(f3b3ad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38728 tid 100448 td 0xc53b26c0 sched_switch(c53b26c0,0,60b,187,96cf8ae9,...) at sched_switch+0x437 mi_switch(60b,0,c0c48e8a,813,1,...) at mi_switch+0x200 sched_preempt(c53b26c0,1,28201960,bfbfe8f8,c0b5f11e,...) at sched_preempt+0xb5 ipi_bitmap_handler(3b,3b,3b,0,bfbfea60,...) at ipi_bitmap_handler+0x34 Xipi_intr_bitmap_handler() at Xipi_intr_bitmap_handler+0x2e --- interrupt, eip = 0x8049504, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38727 tid 100484 td 0xc55cf6c0 sched_switch(c55cf6c0,0,207,187,8c38dbfa,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55e8548,...) at mi_switch+0x200 ast(f3e8cd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38726 tid 100367 td 0xc548c240 sched_switch(c548c240,0,207,187,784df133,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c56b7d34,...) at mi_switch+0x200 ast(f3d2cd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38725 tid 100490 td 0xc55ce900 sched_switch(c55ce900,0,207,187,76f1e3f5,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55e7548,...) at mi_switch+0x200 ast(f3e9ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38724 tid 100590 td 0xc53716c0 sched_switch(c53716c0,0,104,18c,8001d5db,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c53716c0,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1b423b4,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1b423b4,c55bca2c,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c55bca2c,f4030ba8,8,0,f4030c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f4030c98,c0b7b4e8,c5675658,...) at vm_fault_hold+0xfbf vm_fault(c5675658,2873d000,2,8,2873d000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c51ce548,...) at trap_pfault+0x118 trap(f4030d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38723 tid 100326 td 0xc5553480 sched_switch(c5553480,0,207,187,1f44bd32,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5518a90,...) at mi_switch+0x200 ast(f3c2fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38722 tid 100670 td 0xc52b6900 sched_switch(c52b6900,0,207,187,56ebc816,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58d6000,...) at mi_switch+0x200 ast(f414cd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38721 tid 100336 td 0xc554ed80 sched_switch(c554ed80,0,104,18c,7aca068d,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c554ed80,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c26bdda8,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c26bdda8,c54fc000,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c54fc000,f3c57ba8,8,0,f3c57c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3c57c98,c0b7b4e8,c5675828,...) at vm_fault_hold+0xfbf vm_fault(c5675828,28798000,2,8,28798000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5561548,...) at trap_pfault+0x118 trap(f3c57d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38720 tid 100548 td 0xc5660900 sched_switch(c5660900,0,207,187,3261a1ac,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c567f000,...) at mi_switch+0x200 ast(f3f7bd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38719 tid 100454 td 0xc53b1900 sched_switch(c53b1900,0,207,187,343eee44,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54e7a90,...) at mi_switch+0x200 ast(f3e32d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38718 tid 100580 td 0xc56c66c0 sched_switch(c56c66c0,0,207,187,4aa4a262,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c51cea90,...) at mi_switch+0x200 ast(f400cd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38717 tid 100089 td 0xc4cb9b40 sched_switch(c4cb9b40,0,207,187,2cf7abb6,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4cb0d34,...) at mi_switch+0x200 ast(f386dd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38716 tid 100745 td 0xc520a240 sched_switch(c520a240,0,207,187,3bc2bdc3,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588cd34,...) at mi_switch+0x200 ast(f424dd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38715 tid 100417 td 0xc568f000 sched_switch(c568f000,0,207,187,163a4fc7,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4ed9d34,...) at mi_switch+0x200 ast(f3dc2d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38714 tid 100283 td 0xc4f80900 sched_switch(c4f80900,0,207,187,9e8ce364,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5502d34,...) at mi_switch+0x200 ast(f3b9dd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38713 tid 100489 td 0xc55ceb40 sched_switch(c55ceb40,0,104,18c,8e59caf2,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c55ceb40,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c54fc5d0,39d,0,14b,f3e9bbfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3e9bc98,c0b7b4e8,c5622658,...) at vm_fault_hold+0x628 vm_fault(c5622658,2869d000,2,8,2869d000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c55e77ec,...) at trap_pfault+0x118 trap(f3e9bd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38712 tid 100201 td 0xc5436240 sched_switch(c5436240,0,207,187,271d730b,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c541e2a4,...) at mi_switch+0x200 ast(f3a6dd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38711 tid 100180 td 0xc53fed80 sched_switch(c53fed80,0,207,187,8243ef6b,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4c46d34,...) at mi_switch+0x200 ast(f3a2ad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38710 tid 100797 td 0xc5335900 sched_switch(c5335900,0,207,187,96af0250,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4eca2a4,...) at mi_switch+0x200 ast(f434bd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38709 tid 100394 td 0xc56bd480 sched_switch(c56bd480,0,207,187,aadd0fff,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4ed9000,...) at mi_switch+0x200 ast(f3d7dd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38708 tid 100709 td 0xc55a3480 sched_switch(c55a3480,0,207,187,313ed6b1,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58fe548,...) at mi_switch+0x200 ast(f41cad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38707 tid 100255 td 0xc5436d80 sched_switch(c5436d80,0,207,187,fb4f4918,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54447ec,...) at mi_switch+0x200 ast(f3b32d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38706 tid 100554 td 0xc5617b40 sched_switch(c5617b40,0,207,187,2358226,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c567e000,...) at mi_switch+0x200 ast(f3f93d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38705 tid 100778 td 0xc58f3480 sched_switch(c58f3480,0,207,187,e35b51ab,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52602a4,...) at mi_switch+0x200 ast(f42f1d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38704 tid 100292 td 0xc550e000 sched_switch(c550e000,0,207,187,377b8a1e,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54e6548,...) at mi_switch+0x200 ast(f3bb8d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38703 tid 100593 td 0xc5371000 sched_switch(c5371000,0,207,187,d59f620a,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c555fa90,...) at mi_switch+0x200 ast(f4065d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38702 tid 100123 td 0xc4f80240 sched_switch(c4f80240,0,207,187,20b07947,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4f7a548,...) at mi_switch+0x200 ast(f3924d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38701 tid 100591 td 0xc5371480 sched_switch(c5371480,0,207,187,79fa00a,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c51ce2a4,...) at mi_switch+0x200 ast(f4033d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38700 tid 100509 td 0xc5615000 sched_switch(c5615000,0,207,187,8d4809cd,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c56197ec,...) at mi_switch+0x200 ast(f3edfd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38699 tid 100638 td 0xc5857480 sched_switch(c5857480,0,104,18c,85196f09,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c5857480,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c282b6b8,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c282b6b8,c53cd000,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c53cd000,f40ecba8,8,0,f40ecc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f40ecc98,c0b7b4e8,c4efa910,...) at vm_fault_hold+0xfbf vm_fault(c4efa910,28619000,2,8,28619000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c51cd2a4,...) at trap_pfault+0x118 trap(f40ecd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38698 tid 100286 td 0xc550ed80 sched_switch(c550ed80,0,207,187,2fc750cc,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5502548,...) at mi_switch+0x200 ast(f3ba6d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38697 tid 100186 td 0xc53fe000 sched_switch(c53fe000,0,104,18c,8c8abfcd,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c53fe000,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1cefff0,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1cefff0,c5417aa8,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c5417aa8,f3a3cba8,8,0,f3a3cc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3a3cc98,c0b7b4e8,c59a72b8,...) at vm_fault_hold+0xfbf vm_fault(c59a72b8,28698000,2,8,28698000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5406548,...) at trap_pfault+0x118 trap(f3a3cd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38696 tid 100291 td 0xc550e240 sched_switch(c550e240,0,207,187,22888117,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54e67ec,...) at mi_switch+0x200 ast(f3bb5d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38695 tid 100738 td 0xc5343000 sched_switch(c5343000,0,207,187,82c41d54,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588dd34,...) at mi_switch+0x200 ast(f4231d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38694 tid 100106 td 0xc4e1bb40 sched_switch(c4e1bb40,0,207,187,f7bf53b5,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4e18a90,...) at mi_switch+0x200 ast(f38b2d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38693 tid 100207 td 0xc5434480 sched_switch(c5434480,0,207,187,21b37b46,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c541d2a4,...) at mi_switch+0x200 ast(f3a7fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38692 tid 100342 td 0xc5491900 sched_switch(c5491900,0,207,187,8cffd65c,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54e47ec,...) at mi_switch+0x200 ast(f3c6fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38691 tid 100533 td 0xc5662b40 sched_switch(c5662b40,0,104,18c,8a055376,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c5662b40,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c23ce2f4,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c23ce2f4,c56d62e8,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c56d62e8,f3f3fba8,8,0,f3f3fc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3f3fc98,c0b7b4e8,c557f740,...) at vm_fault_hold+0xfbf vm_fault(c557f740,2867d000,2,8,2867d000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c566a2a4,...) at trap_pfault+0x118 trap(f3f3fd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38690 tid 100576 td 0xc56c6d80 sched_switch(c56c6d80,0,104,18c,76a8478c,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c56c6d80,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c2287bf8,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c2287bf8,c56b6364,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c56b6364,f3feaba8,8,0,f3feac2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3feac98,c0b7b4e8,c56343a0,...) at vm_fault_hold+0xfbf vm_fault(c56343a0,28665000,2,8,28665000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c567fd34,...) at trap_pfault+0x118 trap(f3fead38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38689 tid 100834 td 0xc559e480 sched_switch(c559e480,0,207,187,a57318e0,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5a002a4,...) at mi_switch+0x200 ast(f443ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38688 tid 100211 td 0xc5433d80 sched_switch(c5433d80,0,207,187,afe942e9,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5407a90,...) at mi_switch+0x200 ast(f3a8cd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38687 tid 100309 td 0xc54d5900 sched_switch(c54d5900,0,207,187,dd15741a,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5504d34,...) at mi_switch+0x200 ast(f3bebd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38686 tid 100281 td 0xc4c4ad80 sched_switch(c4c4ad80,0,207,187,6a91f7c0,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55042a4,...) at mi_switch+0x200 ast(f3b97d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38685 tid 100162 td 0xc5325b40 sched_switch(c5325b40,0,207,187,6684e6aa,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c53232a4,...) at mi_switch+0x200 ast(f39b8d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38684 tid 100285 td 0xc4cb16c0 sched_switch(c4cb16c0,0,207,187,bfd7470f,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55027ec,...) at mi_switch+0x200 ast(f3ba3d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38683 tid 100755 td 0xc4c66480 sched_switch(c4c66480,0,207,187,5d32d4a,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588b2a4,...) at mi_switch+0x200 ast(f426cd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38682 tid 100334 td 0xc5550240 sched_switch(c5550240,0,207,187,14ceb38f,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5561a90,...) at mi_switch+0x200 ast(f3c4fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38681 tid 100339 td 0xc54d1000 sched_switch(c54d1000,0,104,18c,841e7cc8,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c54d1000,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c2571398,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c2571398,c4ea29b0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c4ea29b0,f3c63ba8,8,0,f3c63c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3c63c98,c0b7b4e8,c59c92b8,...) at vm_fault_hold+0xfbf vm_fault(c59c92b8,2866e000,2,8,2866e000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c54e5000,...) at trap_pfault+0x118 trap(f3c63d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38680 tid 100615 td 0xc57b76c0 sched_switch(c57b76c0,0,104,18c,85a986e5,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c57b76c0,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c24aa744,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c24aa744,c55e583c,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c55e583c,f40a7ba8,8,0,f40a7c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f40a7c98,c0b7b4e8,c59c9658,...) at vm_fault_hold+0xfbf vm_fault(c59c9658,2879f000,2,8,2879f000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c5527000,...) at trap_pfault+0x118 trap(f40a7d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38679 tid 100654 td 0xc58a3900 sched_switch(c58a3900,0,207,187,3a3d7f02,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5895000,...) at mi_switch+0x200 ast(f411cd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38678 tid 100746 td 0xc520a000 sched_switch(c520a000,0,207,187,29c8a2ac,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588ca90,...) at mi_switch+0x200 ast(f4251d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38677 tid 100111 td 0xc4c156c0 sched_switch(c4c156c0,0,207,187,601bd08d,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4c10a90,...) at mi_switch+0x200 ast(f38dad38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38676 tid 100359 td 0xc548f480 sched_switch(c548f480,0,207,187,5597ebac,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c56b92a4,...) at mi_switch+0x200 ast(f3d14d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38675 tid 100671 td 0xc52b66c0 sched_switch(c52b66c0,0,207,187,bb66756,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58d5d34,...) at mi_switch+0x200 ast(f414fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38674 tid 100833 td 0xc594cb40 sched_switch(c594cb40,0,207,187,773ec725,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5a00548,...) at mi_switch+0x200 ast(f443bd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38673 tid 100725 td 0xc58f8d80 sched_switch(c58f8d80,0,104,18c,88cb8aa8,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c58f8d80,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c23f9484,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c23f9484,c58a99b0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c58a99b0,f4203ba8,8,0,f4203c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f4203c98,c0b7b4e8,c55832b8,...) at vm_fault_hold+0xfbf vm_fault(c55832b8,284d9000,2,8,284d9000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c58d62a4,...) at trap_pfault+0x118 trap(f4203d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38672 tid 100319 td 0xc5554480 sched_switch(c5554480,0,207,187,1404216,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c554bd34,...) at mi_switch+0x200 ast(f3c13d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38671 tid 100726 td 0xc55a2240 sched_switch(c55a2240,0,207,187,4b21bcaf,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58fd000,...) at mi_switch+0x200 ast(f4206d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38670 tid 100324 td 0xc5553900 sched_switch(c5553900,0,207,187,385096fd,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c554b000,...) at mi_switch+0x200 ast(f3c27d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38669 tid 100705 td 0xc5905900 sched_switch(c5905900,0,60b,187,972806c4,...) at sched_switch+0x437 mi_switch(60b,0,c0c48e8a,813,2,...) at mi_switch+0x200 sched_preempt(c5905900,2,28201874,bfbfe8f8,c0b5f11e,...) at sched_preempt+0xb5 ipi_bitmap_handler(3b,3b,3b,0,bfbfea60,...) at ipi_bitmap_handler+0x34 Xipi_intr_bitmap_handler() at Xipi_intr_bitmap_handler+0x2e --- interrupt, eip = 0x8049504, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38668 tid 100405 td 0xc5690b40 sched_switch(c5690b40,0,207,187,59bb7501,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52bed34,...) at mi_switch+0x200 ast(f3d9ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38667 tid 100491 td 0xc55ce6c0 sched_switch(c55ce6c0,0,207,187,97be2689,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c55e72a4,...) at mi_switch+0x200 ast(f3ea1d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38666 tid 100414 td 0xc568f6c0 sched_switch(c568f6c0,0,207,187,409dd868,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52bd548,...) at mi_switch+0x200 ast(f3db9d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38665 tid 100410 td 0xc5690000 sched_switch(c5690000,0,207,187,81adee75,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c52be000,...) at mi_switch+0x200 ast(f3dadd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38664 tid 100192 td 0xc53fd240 sched_switch(c53fd240,0,207,187,44c16629,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5405548,...) at mi_switch+0x200 ast(f3a4ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38663 tid 100175 td 0xc5275d80 sched_switch(c5275d80,0,207,187,792bb4e5,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5321000,...) at mi_switch+0x200 ast(f39e4d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38662 tid 100121 td 0xc4c16240 sched_switch(c4c16240,0,207,187,3627aed8,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4f7aa90,...) at mi_switch+0x200 ast(f391ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38661 tid 100514 td 0xc5613480 sched_switch(c5613480,0,207,187,2ba3ccc5,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c562a000,...) at mi_switch+0x200 ast(f3ef3d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38660 tid 100520 td 0xc56126c0 sched_switch(c56126c0,0,207,187,8992d02e,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5629000,...) at mi_switch+0x200 ast(f3f0bd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38659 tid 100665 td 0xc58a0000 sched_switch(c58a0000,0,104,18c,8809a5c7,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c58a0000,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1a00030,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1a00030,c541ad90,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c541ad90,f413dba8,8,0,f413dc2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f413dc98,c0b7b4e8,c54d9910,...) at vm_fault_hold+0xfbf vm_fault(c54d9910,28598000,2,8,28598000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c58932a4,...) at trap_pfault+0x118 trap(f413dd38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38658 tid 100837 td 0xc58f8240 sched_switch(c58f8240,0,207,187,9aef302d,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c59ffa90,...) at mi_switch+0x200 ast(f4447d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38657 tid 100227 td 0xc53fc000 sched_switch(c53fc000,0,104,18c,79ad87af,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c53fc000,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1e56310,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1e56310,c585e1f0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c585e1f0,f3ac2ba8,8,0,f3ac2c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3ac2c98,c0b7b4e8,c57e5cb0,...) at vm_fault_hold+0xfbf vm_fault(c57e5cb0,2874e000,2,8,2874e000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c543d000,...) at trap_pfault+0x118 trap(f3ac2d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38656 tid 100711 td 0xc5905240 sched_switch(c5905240,0,207,187,8e25c7bf,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588f548,...) at mi_switch+0x200 ast(f41d3d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38655 tid 100716 td 0xc55a2b40 sched_switch(c55a2b40,0,207,187,15dbb4b6,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58fda90,...) at mi_switch+0x200 ast(f41e4d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38654 tid 100197 td 0xc53fc6c0 sched_switch(c53fc6c0,0,207,187,9079095d,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c53237ec,...) at mi_switch+0x200 ast(f3a60d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38653 tid 100456 td 0xc53b1480 sched_switch(c53b1480,0,207,187,254369a3,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54e7548,...) at mi_switch+0x200 ast(f3e38d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38652 tid 100733 td 0xc5343480 sched_switch(c5343480,0,207,187,4f378db6,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588e2a4,...) at mi_switch+0x200 ast(f421fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38651 tid 100685 td 0xc52b26c0 sched_switch(c52b26c0,0,207,187,c4e3552d,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58977ec,...) at mi_switch+0x200 ast(f4179d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38650 tid 100262 td 0xc54d4900 sched_switch(c54d4900,0,207,187,4a06fd81,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54bea90,...) at mi_switch+0x200 ast(f3b4ed38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38649 tid 100682 td 0xc52b2d80 sched_switch(c52b2d80,0,207,187,95e3380f,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c58d4000,...) at mi_switch+0x200 ast(f4170d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38648 tid 100499 td 0xc56166c0 sched_switch(c56166c0,0,207,187,6431a300,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c56212a4,...) at mi_switch+0x200 ast(f3eb9d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38647 tid 100640 td 0xc5857000 sched_switch(c5857000,0,207,187,2dccc029,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5897548,...) at mi_switch+0x200 ast(f40f2d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38646 tid 100807 td 0xc5333240 sched_switch(c5333240,0,207,187,10495bd5,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c4eae7ec,...) at mi_switch+0x200 ast(f4372d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38645 tid 100656 td 0xc58a3480 sched_switch(c58a3480,0,207,187,548ae3b8,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c5894a90,...) at mi_switch+0x200 ast(f4122d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38644 tid 100525 td 0xc55d8b40 sched_switch(c55d8b40,0,207,187,6eb58c58,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c56252a4,...) at mi_switch+0x200 ast(f3f1fd38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38643 tid 100177 td 0xc4c4a900 sched_switch(c4c4a900,0,104,18c,771c0011,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,40,...) at mi_switch+0x200 sleepq_switch(c4c4a900,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c1af11dc,40,c0c6e197,0,0,...) at sleepq_timedwait+0x6b _sleep(c1af11dc,c58dd3e0,40,c0c6e197,4e20,...) at _sleep+0x329 swap_pager_getpages(c58dd3e0,f3a21ba8,8,0,f3a21c2c,...) at swap_pager_getpages+0x44d vm_fault_hold(8,0,f3a21c98,c0b7b4e8,c56741d0,...) at vm_fault_hold+0xfbf vm_fault(c56741d0,284d8000,2,8,284d8000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c4cac548,...) at trap_pfault+0x118 trap(f3a21d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38642 tid 100762 td 0xc4c54480 sched_switch(c4c54480,0,207,187,212d9dc0,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c588a000,...) at mi_switch+0x200 ast(f4281d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38641 tid 100224 td 0xc5465b40 sched_switch(c5465b40,0,207,187,d1034050,...) at sched_switch+0x437 mi_switch(207,0,c0c4bd8a,d5,c54427ec,...) at mi_switch+0x200 ast(f3ab6d38) at ast+0x2a7 doreti_ast() at doreti_ast+0x17 Tracing command swap pid 38640 tid 100494 td 0xc55ce000 sched_switch(c55ce000,0,104,18c,8fca3a99,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c55ce000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c5540934,502,0,14b,f3eaabfc,...) at vm_waitpfault+0x75 vm_fault_hold(8,0,f3eaac98,c0b7b4e8,c4efa570,...) at vm_fault_hold+0x628 vm_fault(c4efa570,28802000,2,8,28802000,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c55e6a90,...) at trap_pfault+0x118 trap(f3eaad38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049501, esp = 0xbfbfe8c0, ebp = 0xbfbfe8f8 --- Tracing command swap pid 38639 tid 100556 td 0xc56176c0 sched_switch(c56176c0,0,104,18c,e30ffe3c,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c56176c0,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c567da90,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c567da90,c567db18,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c56176c0,96f0,f3f9bc74,0,0,...) at kern_wait+0xac6 wait4(c56176c0,f3f9bcf8,10,f3f9bd38,c0d2a728,...) at wait4+0x3b syscall(f3f9bd38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x280faf3b, esp = 0xbfbfe8fc, ebp = 0xbfbfe918 --- Tracing command dl pid 38636 tid 100458 td 0xc53b1000 sched_switch(c53b1000,0,104,18c,9118634f,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,4c,...) at mi_switch+0x200 sleepq_switch(c53b1000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(e45022ec,4c,c0c52348,0,0,...) at sleepq_wait+0x63 _sleep(e45022ec,c454204c,4c,c0c52348,0,...) at _sleep+0x35b bwait(e45022ec,4c,c0c52348,e45022ec,f3e3e6d4,...) at bwait+0x6f bufwait(e45022ec,e45022ec,ca,e45022ec,c5930ae0,...) at bufwait+0x48 bufwrite(e45022ec,0,c0c6cab9,726,0) at bufwrite+0x165 ffs_bufwrite(e45022ec,c598a500,100,4000,0,...) at ffs_bufwrite+0x288 ffs_update(c53d8c84,1,c0c6af97,122,f3e3e798,...) at ffs_update+0x2bc ffs_truncate(c53d8c84,8000,0,800,c51b6d00,...) at ffs_truncate+0xee0 ffs_write(f3e3eabc,c0c822fa,c53d8c84,0,c53d8c84,...) at ffs_write+0x7e6 VOP_WRITE_APV(c0d49e80,f3e3eabc,c0c556ab,2cd,0,...) at VOP_WRITE_APV+0x136 vn_write_wired_chunk(c53ece38,f3e3ec58,c51b6d00,0,1,...) at vn_write_wired_chunk+0x107 do_vn_rw_chunked(0,1,c53b1000,f3e3eb70,c08f8f40,...) at do_vn_rw_chunked+0x92 vn_write(c53ece38,f3e3ec58,c51b6d00,0,c53b1000,...) at vn_write+0x160 dofilewrite(f3e3ec58,ffffffff,ffffffff,0,c53ece38,...) at dofilewrite+0x95 kern_writev(c53b1000,4,f3e3ec58,f3e3ec78,1,...) at kern_writev+0x58 write(c53b1000,f3e3ecf8,c,f3e3ed38,c0d2a6e0,...) at write+0x4f syscall(f3e3ed38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (4, FreeBSD ELF32, write), eip = 0x28170883, esp = 0xbfbfeaac, ebp = 0xbfbfead8 --- Tracing command swap pid 38635 tid 100722 td 0xc58a3b40 sched_switch(c58a3b40,0,104,18c,8b047811,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c58a3b40,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(3e9,c08961f0,c58a3b40,0,100,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c0d95f84,5c,c0c48469,100,0,...) at sleepq_timedwait_sig+0x1a _sleep(c0d95f84,0,15c,c0c48469,3e9,...) at _sleep+0x30e kern_nanosleep(c58a3b40,f41f8c64,f41f8c6c,1,0,...) at kern_nanosleep+0xc1 nanosleep(c58a3b40,f41f8cf8,8,c0c4df43,c0d2bd00,...) at nanosleep+0x6f syscall(f41f8d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (240, FreeBSD ELF32, nanosleep), eip = 0x2816441f, esp = 0xbfbfe91c, ebp = 0xbfbfe948 --- Tracing command sh pid 35794 tid 100308 td 0xc54d5b40 sched_switch(c54d5b40,0,104,18c,da3725a0,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c54d5b40,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c5516000,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c5516000,c5516088,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c54d5b40,ffffffff,f3be8c74,2,0,...) at kern_wait+0xac6 wait4(c54d5b40,f3be8cf8,10,c0c4ddde,c0d2a728,...) at wait4+0x3b syscall(f3be8d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x28157f3b, esp = 0xbfbfe79c, ebp = 0xbfbfe7b8 --- Tracing command bash pid 29621 tid 100446 td 0xc53b2b40 sched_switch(c53b2b40,0,104,18c,3be190f2,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c53b2b40,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c536ba90,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c536ba90,c536bb18,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c53b2b40,ffffffff,f3e1ac74,6,0,...) at kern_wait+0xac6 wait4(c53b2b40,f3e1acf8,10,c0c4dcd9,c0d2a728,...) at wait4+0x3b syscall(f3e1ad38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x282a9f3b, esp = 0xbfbfe7ac, ebp = 0xbfbfe7c8 --- Tracing command sshd pid 29620 tid 100806 td 0xc5333480 Tracing command sshd pid 29584 tid 100384 td 0xc56beb40 Tracing command sh pid 1404 tid 100156 td 0xc5274480 sched_switch(c5274480,0,104,18c,12e2d0e8,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c5274480,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4f7bd34,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c4f7bd34,c4f7bdbc,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c5274480,ffffffff,f3993c74,2,0,...) at kern_wait+0xac6 wait4(c5274480,f3993cf8,10,c0c4ddde,c0d2a728,...) at wait4+0x3b syscall(f3993d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x28157f3b, esp = 0xbfbfe70c, ebp = 0xbfbfe728 --- Tracing command bash pid 1366 tid 100122 td 0xc4f80480 sched_switch(c4f80480,0,104,18c,cee365b3,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c4f80480,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4f7a7ec,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c4f7a7ec,c4f7a874,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c4f80480,ffffffff,f3921c74,6,0,...) at kern_wait+0xac6 wait4(c4f80480,f3921cf8,10,c0c4dcd9,c0d2a728,...) at wait4+0x3b syscall(f3921d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x282a9f3b, esp = 0xbfbfe7dc, ebp = 0xbfbfe7f8 --- Tracing command csh pid 1362 tid 100158 td 0xc5274000 sched_switch(c5274000,0,104,18c,e4a256d9,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,68,...) at mi_switch+0x200 sleepq_switch(c5274000,0,c0c4b5a8,189,68,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4f7b844,68,c0bf6e0c,100,0,...) at sleepq_wait_sig+0x17 _sleep(c4f7b844,c4f7b874,168,c0bf6e0c,0,...) at _sleep+0x344 kern_sigsuspend(c5274000,0,0,0,0,...) at kern_sigsuspend+0xe4 sigsuspend(c5274000,f3999cf8,4,c0c4dcd9,c0d2c678,...) at sigsuspend+0x4d syscall(f3999d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (341, FreeBSD ELF32, sigsuspend), eip = 0x281750fb, esp = 0xbfbfe5dc, ebp = 0xbfbfe648 --- Tracing command su pid 1361 tid 100157 td 0xc5274240 sched_switch(c5274240,0,104,18c,85c985cf,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c5274240,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4f7ba90,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c4f7ba90,c4f7bb18,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c5274240,552,f3996c74,2,0,...) at kern_wait+0xac6 wait4(c5274240,f3996cf8,10,f3996d38,c0d2a728,...) at wait4+0x3b syscall(f3996d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x28117f3b, esp = 0xbfbfe62c, ebp = 0xbfbfe648 --- Tracing command awk pid 1185 tid 100115 td 0xc4c12d80 Tracing command sh pid 1184 tid 100110 td 0xc4c15900 sched_switch(c4c15900,0,104,18c,7b04fbbc,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c4c15900,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4c10d34,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c4c10d34,c4c10dbc,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c4c15900,ffffffff,f38d6c74,2,0,...) at kern_wait+0xac6 wait4(c4c15900,f38d6cf8,10,c0c4ddde,c0d2a728,...) at wait4+0x3b syscall(f38d6d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x28157f3b, esp = 0xbfbfe91c, ebp = 0xbfbfe938 --- Tracing command top pid 1183 tid 100150 td 0xc5275240 sched_switch(c5275240,0,104,18c,374a7f1c,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c5275240,0,c0c4b5a8,189,0,...) at sleepq_switch+0x15f sleepq_catch_signals(f3981a50,c085072a,c4cb6cd0,0,c5275240,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c4cb6ce4,0,f3981a80,101,0,...) at sleepq_timedwait_sig+0x1a _cv_timedwait_sig(c4cb6ce4,c4cb6cd0,3e9,5c4,c4cabc78,...) at _cv_timedwait_sig+0x250 seltdwait(f3981c2c,f3981c34,c4cae600,c5275240,5b1b3837,...) at seltdwait+0x8a kern_select(c5275240,2,bfbfebec,0,0,f3981c70,1,0) at kern_select+0x4c4 select(c5275240,f3981cf8,14,c0c29c34,c0d2af38,...) at select+0x5e syscall(f3981d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (93, FreeBSD ELF32, select), eip = 0x281dc823, esp = 0xbfbfeb8c, ebp = 0xbfbfece8 --- Tracing command tail pid 1182 tid 100125 td 0xc4f7fd80 sched_switch(c4f7fd80,0,104,18c,4449ba11,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,58,...) at mi_switch+0x200 sleepq_switch(c4f7fd80,0,c0c4b5a8,189,58,...) at sleepq_switch+0x15f sleepq_catch_signals(3e9,c08961f0,c4f7fd80,0,100,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c4bcfe80,58,c0c42b50,100,0,...) at sleepq_timedwait_sig+0x1a _sleep(c4bcfe80,c4bcfe80,158,c0c42b50,3e9,...) at _sleep+0x30e kern_kevent(c4f7fd80,4,0,1,f392ac58,...) at kern_kevent+0x357 kevent(c4f7fd80,f392acf8,18,c0be289f,c0d2c888,...) at kevent+0x19b syscall(f392ad38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (363, FreeBSD ELF32, kevent), eip = 0x2815560b, esp = 0xbfbfeb6c, ebp = 0xbfbfec18 --- Tracing command sshd pid 1181 tid 100084 td 0xc4c476c0 sched_switch(c4c476c0,0,104,18c,37551cb9,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4c476c0,0,c0c4b5a8,189,0,...) at sleepq_switch+0x15f sleepq_catch_signals(c085072a,c4e3fe10,0,c0c45a20,c4c476c0,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4e3fe24,0,f384fa80,101,0,...) at sleepq_wait_sig+0x17 _cv_wait_sig(c4e3fe24,c4e3fe10,c0c4d849,5c4,c4f16bd0,...) at _cv_wait_sig+0x240 seltdwait(c4f16bd0,58,c51b6600,c4c476c0,c0c6369a,...) at seltdwait+0xa2 kern_select(c4c476c0,a,286030b8,286030dc,0,0,66,280f87f8) at kern_select+0x4c4 select(c4c476c0,f384fcf8,14,c0c29c34,c0d2af38,...) at select+0x5e syscall(f384fd38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (93, FreeBSD ELF32, select), eip = 0x283be823, esp = 0xbfbfde5c, ebp = 0xbfbfdea8 --- Tracing command sh pid 1180 tid 100149 td 0xc5275480 sched_switch(c5275480,0,104,18c,2f23dae4,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c5275480,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c5250000,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c5250000,c5250088,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c5275480,ffffffff,f397cc74,2,0,...) at kern_wait+0xac6 wait4(c5275480,f397ccf8,10,f397cd38,c0d2a728,...) at wait4+0x3b syscall(f397cd38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x28157f3b, esp = 0xbfbfeb5c, ebp = 0xbfbfeb78 --- Tracing command sshd pid 1179 tid 100086 td 0xc4c47240 Tracing command sshd pid 1178 tid 100148 td 0xc52756c0 Tracing command sshd pid 1174 tid 100080 td 0xc4c4a000 Tracing command sshd pid 1173 tid 100146 td 0xc4cb9d80 Tracing command sshd pid 1172 tid 100145 td 0xc4e1b000 Tracing command bash pid 1168 tid 100119 td 0xc4c166c0 sched_switch(c4c166c0,0,104,18c,97c021f2,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c4c166c0,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4f7b000,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c4f7b000,c4f7b088,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c4c166c0,ffffffff,f3918c74,6,0,...) at kern_wait+0xac6 wait4(c4c166c0,f3918cf8,10,c0c4dcd9,c0d2a728,...) at wait4+0x3b syscall(f3918d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x282a9f3b, esp = 0xbfbfe9dc, ebp = 0xbfbfe9f8 --- Tracing command sshd pid 1167 tid 100077 td 0xc4c4a480 Tracing command sshd pid 1165 tid 100097 td 0xc4e1d000 Tracing command getty pid 1159 tid 100100 td 0xc4e1c900 Tracing command getty pid 1158 tid 100099 td 0xc4e1cb40 Tracing command getty pid 1157 tid 100102 td 0xc4e1c480 Tracing command getty pid 1156 tid 100108 td 0xc4c15d80 Tracing command getty pid 1155 tid 100081 td 0xc4c47d80 Tracing command getty pid 1154 tid 100087 td 0xc4c47000 Tracing command getty pid 1153 tid 100109 td 0xc4c15b40 Tracing command getty pid 1152 tid 100104 td 0xc4e1c000 Tracing command getty pid 1151 tid 100113 td 0xc4c15240 Tracing command inetd pid 1125 tid 100141 td 0xc4cb9000 Tracing command watchdogd pid 1101 tid 100120 td 0xc4c16480 sched_switch(c4c16480,0,104,18c,eb10a3b9,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c4c16480,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4f7ad34,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c4f7ad34,c4f7adbc,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c4c16480,9a89,f391bc74,0,0,...) at kern_wait+0xac6 wait4(c4c16480,f391bcf8,10,f391bd38,c0d2a728,...) at wait4+0x3b syscall(f391bd38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x28111f3b, esp = 0xbfbfec6c, ebp = 0xbfbfed18 --- Tracing command cron pid 1092 tid 100079 td 0xc4c4a240 sched_switch(c4c4a240,0,104,18c,2dbc049c,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c4c4a240,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(cf09,c08961f0,c4c4a240,1,100,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c0d95f84,5c,c0c48469,100,0,...) at sleepq_timedwait_sig+0x1a _sleep(c0d95f84,0,15c,c0c48469,cf09,...) at _sleep+0x30e kern_nanosleep(c4c4a240,f3839c64,f3839c6c,35,0,...) at kern_nanosleep+0xc1 nanosleep(c4c4a240,f3839cf8,8,c0c4df43,c0d2bd00,...) at nanosleep+0x6f syscall(f3839d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (240, FreeBSD ELF32, nanosleep), eip = 0x2816e41f, esp = 0xbfbfec8c, ebp = 0xbfbfecb8 --- Tracing command sendmail pid 1086 tid 100133 td 0xc4e1db40 sched_switch(c4e1db40,0,104,18c,db80d55,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,68,...) at mi_switch+0x200 sleepq_switch(c4e1db40,0,c0c4b5a8,189,68,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4e1aae8,68,c0bf6e0c,100,0,...) at sleepq_wait_sig+0x17 _sleep(c4e1aae8,c4e1ab18,168,c0bf6e0c,0,...) at _sleep+0x344 kern_sigsuspend(c4e1db40,0,0,0,0,...) at kern_sigsuspend+0xe4 sigsuspend(c4e1db40,f3942cf8,4,c0c4dcd9,c0d2c678,...) at sigsuspend+0x4d syscall(f3942d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (341, FreeBSD ELF32, sigsuspend), eip = 0x283280fb, esp = 0xbfbfcf9c, ebp = 0xbfbfcfc8 --- Tracing command sendmail pid 1082 tid 100103 td 0xc4e1c240 sched_switch(c4e1c240,0,104,18c,c849294a,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4e1c240,0,c0c4b5a8,189,0,...) at sleepq_switch+0x15f sleepq_catch_signals(f38a9a50,c085072a,c4c38410,0,c4e1c240,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c4c38424,0,f38a9a80,101,0,...) at sleepq_timedwait_sig+0x1a _cv_timedwait_sig(c4c38424,c4c38410,1389,5c4,f38a9c34,...) at _cv_timedwait_sig+0x250 seltdwait(f38a9c2c,f38a9c34,0,31e,f38a9c48,...) at seltdwait+0x8a kern_select(c4e1c240,0,bfbfc520,0,0,f38a9c70,5,0) at kern_select+0x4c4 select(c4e1c240,f38a9cf8,14,c0c4dcd9,c0d2af38,...) at select+0x5e syscall(f38a9d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (93, FreeBSD ELF32, select), eip = 0x283c6823, esp = 0xbfbfc48c, ebp = 0xbfbfcfb8 --- Tracing command sshd pid 1075 tid 100105 td 0xc4e1bd80 Tracing command ntpd pid 1038 tid 100114 td 0xc4c15000 sched_switch(c4c15000,0,104,18c,309f3161,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4c15000,0,c0c4b5a8,189,0,...) at sleepq_switch+0x15f sleepq_catch_signals(c085072a,c4bc3250,0,c0c45a20,c4c15000,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4bc3264,0,f38e7a80,101,0,...) at sleepq_wait_sig+0x17 _cv_wait_sig(c4bc3264,c4bc3250,c0c4d849,5c4,c4c32348,...) at _cv_wait_sig+0x240 seltdwait(c4c32348,58,c4544300,c4c15000,0,...) at seltdwait+0xa2 kern_select(c4c15000,1b,bfbfed28,0,0,0,f38e7c98,246) at kern_select+0x4c4 select(c4c15000,f38e7cf8,14,c4c15000,c0d2af38,...) at select+0x5e syscall(f38e7d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (93, FreeBSD ELF32, select), eip = 0x28347823, esp = 0xbfbfecfc, ebp = 0xbfbfedc8 --- Tracing command rpc.lockd pid 917 tid 100107 td 0xc4e1b900 sched_switch(c4e1b900,0,104,18c,3262073d,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4e1b900,0,c0c4b5a8,189,0,...) at sleepq_switch+0x15f sleepq_catch_signals(f38b5a04,c085072a,c4f0e300,0,c4e1b900,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c4c37990,0,f38b5a34,101,0,...) at sleepq_timedwait_sig+0x1a _cv_timedwait_sig(c4c37990,c4f0e300,1388,3a5,c5070d00,...) at _cv_timedwait_sig+0x250 svc_run_internal(c4e1ba64,14,c0c695cc,c0c689e4,f38b5b8c,...) at svc_run_internal+0x356 svc_run(c4f0e300,0,4,c0a3e590,f38b5b8c,...) at svc_run+0x7f nlm_syscall(c4e1b900,f38b5cf8,10,c0c4e641,c0d2b4f0,...) at nlm_syscall+0x6a9 syscall(f38b5d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (154, FreeBSD ELF32, nlm_syscall), eip = 0x280f5d5b, esp = 0xbfbfed5c, ebp = 0xbfbfee28 --- Tracing command rpc.statd pid 911 tid 100117 td 0xc4c12900 Tracing command nfsd pid 902 tid 100140 td 0xc4e1d240 sched_switch(c4e1d240,0,104,18c,ffd4e072,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4e1d240,0,c0c4b5a8,189,0,...) at sleepq_switch+0x15f sleepq_catch_signals(f3957bf8,c085072a,c48f8c80,0,c4e1d240,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c4cb7a90,0,f3957c28,101,0,...) at sleepq_timedwait_sig+0x1a _cv_timedwait_sig(c4cb7a90,c48f8c80,1388,3a5,5a5a5a5a,...) at _cv_timedwait_sig+0x250 svc_run_internal(f3957d24,c0839958,c48f8c80,f3957d38,c0c42de9,...) at svc_run_internal+0x356 svc_thread_start(c48f8c80,f3957d38,c0c42de9,336,c4c117ec,...) at svc_thread_start+0x10 fork_exit(c0a4e770,c48f8c80,f3957d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0xc, esp = 0x33, ebp = 0 --- Tracing command nfsd pid 902 tid 100139 td 0xc4e1d480 sched_switch(c4e1d480,0,104,18c,ab1e9cec,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4e1d480,0,c0c4b5a8,189,0,...) at sleepq_switch+0x15f sleepq_catch_signals(f3954bf8,c085072a,c48f8c80,0,c4e1d480,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c4bc3450,0,f3954c28,101,0,...) at sleepq_timedwait_sig+0x1a _cv_timedwait_sig(c4bc3450,c48f8c80,1388,3a5,5a5a5a5a,...) at _cv_timedwait_sig+0x250 svc_run_internal(f3954d24,c0839958,c48f8c80,f3954d38,c0c42de9,...) at svc_run_internal+0x356 svc_thread_start(c48f8c80,f3954d38,c0c42de9,336,c4c117ec,...) at svc_thread_start+0x10 fork_exit(c0a4e770,c48f8c80,f3954d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0xc, esp = 0x33, ebp = 0 --- Tracing command nfsd pid 902 tid 100138 td 0xc4e1d6c0 sched_switch(c4e1d6c0,0,104,18c,fb38c2f3,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4e1d6c0,0,c0c4b5a8,189,0,...) at sleepq_switch+0x15f sleepq_catch_signals(f3951bf8,c085072a,c48f8c80,0,c4e1d6c0,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c4bc3410,0,f3951c28,101,0,...) at sleepq_timedwait_sig+0x1a _cv_timedwait_sig(c4bc3410,c48f8c80,1388,3a5,5a5a5a5a,...) at _cv_timedwait_sig+0x250 svc_run_internal(f3951d24,c0839958,c48f8c80,f3951d38,c0c42de9,...) at svc_run_internal+0x356 svc_thread_start(c48f8c80,f3951d38,c0c42de9,336,c4c117ec,...) at svc_thread_start+0x10 fork_exit(c0a4e770,c48f8c80,f3951d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0xc, esp = 0x33, ebp = 0 --- Tracing command nfsd pid 902 tid 100095 td 0xc4c16900 sched_switch(c4c16900,0,104,18c,3bc319e9,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4c16900,0,c0c4b5a8,189,0,...) at sleepq_switch+0x15f sleepq_catch_signals(f3887ae8,c085072a,c48f8c80,0,c4c16900,...) at sleepq_catch_signals+0xb6 sleepq_timedwait_sig(c4c38210,0,f3887b18,101,0,...) at sleepq_timedwait_sig+0x1a _cv_timedwait_sig(c4c38210,c48f8c80,1388,3a5,f3887b60,...) at _cv_timedwait_sig+0x250 svc_run_internal(c4c16a64,14,c0c695cc,c0c67ecb,0,...) at svc_run_internal+0x356 svc_run(c48f8c80,0,c0c681cf,1fa,0,...) at svc_run+0x7f nfssvc_nfsd(f3887c38,c083d0f5,c4544300,122,f3887c50,...) at nfssvc_nfsd+0xad nfssvc_nfsserver(c4c16900,f3887cf8,4,c4c16900,c4c117ec,...) at nfssvc_nfsserver+0x1d5 nfssvc(c4c16900,f3887cf8,8,f3887d38,c0d2b508,...) at nfssvc+0x77 syscall(f3887d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (155, FreeBSD ELF32, nfssvc), eip = 0x280d5d3b, esp = 0xbfbfe9bc, ebp = 0xbfbfeae8 --- Tracing command nfsd pid 901 tid 100135 td 0xc4e1b6c0 Tracing command mountd pid 899 tid 100129 td 0xc4f7f480 Tracing command rpcbind pid 817 tid 100112 td 0xc4c15480 Tracing command syslogd pid 788 tid 100101 td 0xc4e1c6c0 sched_switch(c4e1c6c0,0,104,18c,92a45a29,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,a0,...) at mi_switch+0x200 sleepq_switch(c4e1c6c0,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,a0,c0c707be,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,2a0,c0c707be,0,...) at _sleep+0x35b vm_waitpfault(c4e65b24,28,0,14b,f38a3bfc,...) at vm_waitpfault+0x75 vm_fault_hold(0,0,f38a3c98,c0b7b4e8,c4f14740,...) at vm_fault_hold+0x628 vm_fault(c4f14740,28228000,1,0,282280a0,...) at vm_fault+0x23 trap_pfault(5,0,c0c7f669,2eb,c4e197ec,...) at trap_pfault+0x118 trap(f38a3d38) at trap+0x2a9 calltrap() at calltrap+0x6 --- trap 0xc, eip = 0x8049d7e, esp = 0xbfbfd4b0, ebp = 0xbfbfd4c8 --- Tracing command devd pid 593 tid 100088 td 0xc4c16d80 Tracing command flowcleaner pid 44 tid 100075 td 0xc4b24480 sched_switch(c4b24480,0,104,18c,15dbe1cc,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b24480,0,c0c4b5a8,26a,2,...) at sleepq_switch+0x15f sleepq_timedwait(c0d95de4,0,c0c56047,2,0,...) at sleepq_timedwait+0x6b _sleep(c0d95de4,0,0,c0c56047,4e20,...) at _sleep+0x329 pause(c0c56047,4e20,c0c55f7c,41e,0,...) at pause+0x47 flowtable_cleaner(0,f163ed38,c0c42de9,336,c4b21d34,...) at flowtable_cleaner+0x160 fork_exit(c0901690,0,f163ed38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf163ed70, ebp = 0 --- Tracing command softdepflush pid 43 tid 100074 td 0xc4b246c0 sched_switch(c4b246c0,0,104,18c,60cbaa1f,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,44,...) at mi_switch+0x200 sleepq_switch(c4b246c0,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c0f0e6e0,44,c0c6c462,0,0,...) at sleepq_timedwait+0x6b _sleep(c0f0e6e0,c0f0e684,44,c0c6c462,3e8,...) at _sleep+0x329 softdep_flush(0,f163bd38,c0c42de9,336,c4b3a000,...) at softdep_flush+0x2b0 fork_exit(c0a7aa80,0,f163bd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf163bd70, ebp = 0 --- Tracing command vnlru pid 42 tid 100073 td 0xc4b24900 sched_switch(c4b24900,0,104,18c,32622bba,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,50,...) at mi_switch+0x200 sleepq_switch(c4b24900,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c4b3a2a4,50,c0c551c7,0,0,...) at sleepq_timedwait+0x6b _sleep(c4b3a2a4,c0f02814,250,c0c551c7,3e8,...) at _sleep+0x329 vnlru_proc(0,f1638d38,c0c42de9,336,c4b3a2a4,...) at vnlru_proc+0xe7 fork_exit(c08ecef0,0,f1638d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1638d70, ebp = 0 --- Tracing command syncer pid 41 tid 100072 td 0xc4b24b40 sched_switch(c4b24b40,0,104,18c,90460f96,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b24b40,0,c0c4b5a8,26a,c4b24b40,...) at sleepq_switch+0x15f sleepq_timedwait(c0f02854,0,f1635c88,1,0,...) at sleepq_timedwait+0x6b _cv_timedwait(c0f02854,c0f02840,3e8,6e0,4e20,...) at _cv_timedwait+0x250 sched_sync(0,f1635d38,c0c42de9,336,c4b3a548,...) at sched_sync+0x502 fork_exit(c08ec350,0,f1635d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1635d70, ebp = 0 --- Tracing command bufdaemon pid 40 tid 100071 td 0xc4b24d80 sched_switch(c4b24d80,0,104,18c,3261cbc7,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,44,...) at mi_switch+0x200 sleepq_switch(c4b24d80,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c0f02588,44,c0c5296b,0,0,...) at sleepq_timedwait+0x6b _sleep(c0f02588,c0f0258c,44,c0c5296b,3e8,...) at _sleep+0x329 buf_daemon(0,f1632d38,c0c42de9,336,c4b3a7ec,...) at buf_daemon+0x138 fork_exit(c08d5070,0,f1632d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1632d70, ebp = 0 --- Tracing command pagezero pid 39 tid 100070 td 0xc4b26000 sched_switch(c4b26000,0,104,18c,722193d3,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b26000,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c0f0f314,0,c0c71982,0,0,...) at sleepq_timedwait+0x6b _sleep(c0f0f314,c0f0eed0,0,c0c71982,493e0,...) at _sleep+0x329 vm_pagezero(0,f162fd38,c0c42de9,336,c4b3aa90,...) at vm_pagezero+0xdc fork_exit(c0ab7450,0,f162fd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf162fd70, ebp = 0 --- Tracing command vmdaemon pid 38 tid 100069 td 0xc4b26240 sched_switch(c4b26240,0,104,18c,f56d89a4,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,68,...) at mi_switch+0x200 sleepq_switch(c4b26240,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ef3c,68,c0c5296b,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ef3c,c0f0ef40,68,c0c5296b,0,...) at _sleep+0x35b vm_daemon(0,f162cd38,c0c42de9,336,c4b3ad34,...) at vm_daemon+0x59 fork_exit(c0ab18c0,0,f162cd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf162cd70, ebp = 0 --- Tracing command pagedaemon pid 9 tid 100068 td 0xc4b26480 sched_switch(c4b26480,0,104,18c,9726ca94,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,44,...) at mi_switch+0x200 sleepq_switch(c4b26480,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0e814,44,c0c70f62,0,0,...) at sleepq_wait+0x63 _sleep(c0f0e814,c0f0ef60,44,c0c70f62,0,...) at _sleep+0x35b getpbuf(c0f0e814,0,c0c6df51,49d,f1629a90,...) at getpbuf+0x68 swap_pager_putpages(c51ea7c0,f1629b94,10,0,f1629af0,...) at swap_pager_putpages+0x1f1 vm_pageout_flush(f1629b94,10,0,0,c089ebd7,...) at vm_pageout_flush+0x177 vm_pageout_clean(c256ce00,0,c0c70ada,302,1f4,...) at vm_pageout_clean+0x2f1 vm_pageout(0,f1629d38,c0c42de9,336,c4b3b000,...) at vm_pageout+0xd87 fork_exit(c0ab2770,0,f1629d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1629d70, ebp = 0 --- Tracing command usbus5 pid 37 tid 100067 td 0xc4b266c0 sched_switch(c4b266c0,0,104,18c,44fd0012,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b266c0,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47dfd0c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47dfd0c,c47dfdac,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15c6cf8,c079bb7b,c47dfd0c,...) at usb2_msleep+0x58 usb2_cv_wait(c47dfd0c,c47dfdac,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47dfd04,f15c6d38,c0c42de9,336,c4b3b2a4,...) at usb2_process+0x18b fork_exit(c079b9f0,c47dfd04,f15c6d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15c6d70, ebp = 0 --- Tracing command usbus5 pid 36 tid 100066 td 0xc4b26900 sched_switch(c4b26900,0,104,18c,fc90806,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b26900,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47dfcdc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47dfcdc,c47dfdac,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15c3cf8,c079bb7b,c47dfcdc,...) at usb2_msleep+0x58 usb2_cv_wait(c47dfcdc,c47dfdac,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47dfcd4,f15c3d38,c0c42de9,336,c4b3b548,...) at usb2_process+0x18b fork_exit(c079b9f0,c47dfcd4,f15c3d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15c3d70, ebp = 0 --- Tracing command usbus5 pid 35 tid 100065 td 0xc4b26b40 sched_switch(c4b26b40,0,104,18c,4496531a,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b26b40,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47dfcac,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47dfcac,c47dfdac,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15c0cf8,c079bb7b,c47dfcac,...) at usb2_msleep+0x58 usb2_cv_wait(c47dfcac,c47dfdac,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47dfca4,f15c0d38,c0c42de9,336,c4b20000,...) at usb2_process+0x18b fork_exit(c079b9f0,c47dfca4,f15c0d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15c0d70, ebp = 0 --- Tracing command usbus5 pid 34 tid 100064 td 0xc4b26d80 sched_switch(c4b26d80,0,104,18c,449643c6,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b26d80,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47dfc7c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47dfc7c,c47dfdac,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15bdcf8,c079bb7b,c47dfc7c,...) at usb2_msleep+0x58 usb2_cv_wait(c47dfc7c,c47dfdac,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47dfc74,f15bdd38,c0c42de9,336,c4b202a4,...) at usb2_process+0x18b fork_exit(c079b9f0,c47dfc74,f15bdd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15bdd70, ebp = 0 --- Tracing command usbus4 pid 33 tid 100063 td 0xc48ec240 sched_switch(c48ec240,0,104,18c,449634b0,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48ec240,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47d9b5c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47d9b5c,c47d9bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15bacf8,c079bb7b,c47d9b5c,...) at usb2_msleep+0x58 usb2_cv_wait(c47d9b5c,c47d9bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47d9b54,f15bad38,c0c42de9,336,c4b20548,...) at usb2_process+0x18b fork_exit(c079b9f0,c47d9b54,f15bad38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15bad70, ebp = 0 --- Tracing command usbus4 pid 32 tid 100062 td 0xc48ec480 sched_switch(c48ec480,0,104,18c,7bc495a,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48ec480,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47d9b2c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47d9b2c,c47d9bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15b7cf8,c079bb7b,c47d9b2c,...) at usb2_msleep+0x58 usb2_cv_wait(c47d9b2c,c47d9bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47d9b24,f15b7d38,c0c42de9,336,c4b207ec,...) at usb2_process+0x18b fork_exit(c079b9f0,c47d9b24,f15b7d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15b7d70, ebp = 0 --- Tracing command usbus4 pid 31 tid 100061 td 0xc48ec6c0 sched_switch(c48ec6c0,0,104,18c,4431d27f,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48ec6c0,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47d9afc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47d9afc,c47d9bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15b4cf8,c079bb7b,c47d9afc,...) at usb2_msleep+0x58 usb2_cv_wait(c47d9afc,c47d9bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47d9af4,f15b4d38,c0c42de9,336,c4b20a90,...) at usb2_process+0x18b fork_exit(c079b9f0,c47d9af4,f15b4d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15b4d70, ebp = 0 --- Tracing command usbus4 pid 30 tid 100060 td 0xc48ec900 sched_switch(c48ec900,0,104,18c,4431c361,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48ec900,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47d9acc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47d9acc,c47d9bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15b1cf8,c079bb7b,c47d9acc,...) at usb2_msleep+0x58 usb2_cv_wait(c47d9acc,c47d9bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47d9ac4,f15b1d38,c0c42de9,336,c4b20d34,...) at usb2_process+0x18b fork_exit(c079b9f0,c47d9ac4,f15b1d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15b1d70, ebp = 0 --- Tracing command usbus3 pid 29 tid 100059 td 0xc48ecb40 sched_switch(c48ecb40,0,104,18c,4431b49a,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48ecb40,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47d0b5c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47d0b5c,c47d0bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15aecf8,c079bb7b,c47d0b5c,...) at usb2_msleep+0x58 usb2_cv_wait(c47d0b5c,c47d0bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47d0b54,f15aed38,c0c42de9,336,c4b21000,...) at usb2_process+0x18b fork_exit(c079b9f0,c47d0b54,f15aed38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15aed70, ebp = 0 --- Tracing command usbus3 pid 28 tid 100058 td 0xc48ecd80 sched_switch(c48ecd80,0,104,18c,719b23b,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48ecd80,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47d0b2c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47d0b2c,c47d0bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15abcf8,c079bb7b,c47d0b2c,...) at usb2_msleep+0x58 usb2_cv_wait(c47d0b2c,c47d0bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47d0b24,f15abd38,c0c42de9,336,c4b212a4,...) at usb2_process+0x18b fork_exit(c079b9f0,c47d0b24,f15abd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15abd70, ebp = 0 --- Tracing command usbus3 pid 27 tid 100057 td 0xc4b1e000 sched_switch(c4b1e000,0,104,18c,43ccf367,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b1e000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47d0afc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47d0afc,c47d0bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15a8cf8,c079bb7b,c47d0afc,...) at usb2_msleep+0x58 usb2_cv_wait(c47d0afc,c47d0bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47d0af4,f15a8d38,c0c42de9,336,c4b21548,...) at usb2_process+0x18b fork_exit(c079b9f0,c47d0af4,f15a8d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15a8d70, ebp = 0 --- Tracing command usbus3 pid 26 tid 100056 td 0xc4b1e240 sched_switch(c4b1e240,0,104,18c,43cce3d8,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b1e240,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47d0acc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47d0acc,c47d0bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15a5cf8,c079bb7b,c47d0acc,...) at usb2_msleep+0x58 usb2_cv_wait(c47d0acc,c47d0bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47d0ac4,f15a5d38,c0c42de9,336,c4b217ec,...) at usb2_process+0x18b fork_exit(c079b9f0,c47d0ac4,f15a5d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15a5d70, ebp = 0 --- Tracing command usbus2 pid 25 tid 100055 td 0xc4b1e480 sched_switch(c4b1e480,0,104,18c,43ccd244,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b1e480,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47ccb5c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47ccb5c,c47ccbfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f15a2cf8,c079bb7b,c47ccb5c,...) at usb2_msleep+0x58 usb2_cv_wait(c47ccb5c,c47ccbfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47ccb54,f15a2d38,c0c42de9,336,c46a37ec,...) at usb2_process+0x18b fork_exit(c079b9f0,c47ccb54,f15a2d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf15a2d70, ebp = 0 --- Tracing command usbus2 pid 24 tid 100054 td 0xc4b1e6c0 sched_switch(c4b1e6c0,0,104,18c,718d263,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b1e6c0,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47ccb2c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47ccb2c,c47ccbfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f159fcf8,c079bb7b,c47ccb2c,...) at usb2_msleep+0x58 usb2_cv_wait(c47ccb2c,c47ccbfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47ccb24,f159fd38,c0c42de9,336,c46a3a90,...) at usb2_process+0x18b fork_exit(c079b9f0,c47ccb24,f159fd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf159fd70, ebp = 0 --- Tracing command usbus2 pid 23 tid 100053 td 0xc4b1e900 sched_switch(c4b1e900,0,104,18c,43688d93,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b1e900,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47ccafc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47ccafc,c47ccbfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f159ccf8,c079bb7b,c47ccafc,...) at usb2_msleep+0x58 usb2_cv_wait(c47ccafc,c47ccbfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47ccaf4,f159cd38,c0c42de9,336,c46a3d34,...) at usb2_process+0x18b fork_exit(c079b9f0,c47ccaf4,f159cd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf159cd70, ebp = 0 --- Tracing command usbus2 pid 22 tid 100052 td 0xc4b1eb40 sched_switch(c4b1eb40,0,104,18c,43687f77,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b1eb40,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47ccacc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47ccacc,c47ccbfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f1599cf8,c079bb7b,c47ccacc,...) at usb2_msleep+0x58 usb2_cv_wait(c47ccacc,c47ccbfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47ccac4,f1599d38,c0c42de9,336,c4b0c000,...) at usb2_process+0x18b fork_exit(c079b9f0,c47ccac4,f1599d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1599d70, ebp = 0 --- Tracing command usbus1 pid 21 tid 100051 td 0xc4b1ed80 sched_switch(c4b1ed80,0,104,18c,43686f55,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4b1ed80,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47c6b5c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47c6b5c,c47c6bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f1596cf8,c079bb7b,c47c6b5c,...) at usb2_msleep+0x58 usb2_cv_wait(c47c6b5c,c47c6bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47c6b54,f1596d38,c0c42de9,336,c4b0c2a4,...) at usb2_process+0x18b fork_exit(c079b9f0,c47c6b54,f1596d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1596d70, ebp = 0 --- Tracing command usbus1 pid 20 tid 100050 td 0xc47676c0 sched_switch(c47676c0,0,104,18c,717e804,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c47676c0,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47c6b2c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47c6b2c,c47c6bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f1593cf8,c079bb7b,c47c6b2c,...) at usb2_msleep+0x58 usb2_cv_wait(c47c6b2c,c47c6bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47c6b24,f1593d38,c0c42de9,336,c4b0c548,...) at usb2_process+0x18b fork_exit(c079b9f0,c47c6b24,f1593d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1593d70, ebp = 0 --- Tracing command usbus1 pid 19 tid 100049 td 0xc4767900 sched_switch(c4767900,0,104,18c,42fdeb25,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4767900,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47c6afc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47c6afc,c47c6bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f1590cf8,c079bb7b,c47c6afc,...) at usb2_msleep+0x58 usb2_cv_wait(c47c6afc,c47c6bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47c6af4,f1590d38,c0c42de9,336,c4b0c7ec,...) at usb2_process+0x18b fork_exit(c079b9f0,c47c6af4,f1590d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1590d70, ebp = 0 --- Tracing command usbus1 pid 18 tid 100048 td 0xc4767b40 sched_switch(c4767b40,0,104,18c,42fddc72,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4767b40,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47c6acc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47c6acc,c47c6bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f158dcf8,c079bb7b,c47c6acc,...) at usb2_msleep+0x58 usb2_cv_wait(c47c6acc,c47c6bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47c6ac4,f158dd38,c0c42de9,336,c4b0ca90,...) at usb2_process+0x18b fork_exit(c079b9f0,c47c6ac4,f158dd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf158dd70, ebp = 0 --- Tracing command usbus0 pid 17 tid 100047 td 0xc4767d80 sched_switch(c4767d80,0,104,18c,42fdcb77,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4767d80,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47c1b5c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47c1b5c,c47c1bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f158acf8,c079bb7b,c47c1b5c,...) at usb2_msleep+0x58 usb2_cv_wait(c47c1b5c,c47c1bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47c1b54,f158ad38,c0c42de9,336,c4b0cd34,...) at usb2_process+0x18b fork_exit(c079b9f0,c47c1b54,f158ad38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf158ad70, ebp = 0 --- Tracing command usbus0 pid 16 tid 100046 td 0xc48eb000 sched_switch(c48eb000,0,104,18c,86114fa,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48eb000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47c1b2c,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47c1b2c,c47c1bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f1587cf8,c079bb7b,c47c1b2c,...) at usb2_msleep+0x58 usb2_cv_wait(c47c1b2c,c47c1bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47c1b24,f1587d38,c0c42de9,336,c45782a4,...) at usb2_process+0x18b fork_exit(c079b9f0,c47c1b24,f1587d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1587d70, ebp = 0 --- Tracing command usbus0 pid 15 tid 100045 td 0xc48eb240 sched_switch(c48eb240,0,104,18c,45071c15,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48eb240,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47c1afc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47c1afc,c47c1bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f1584cf8,c079bb7b,c47c1afc,...) at usb2_msleep+0x58 usb2_cv_wait(c47c1afc,c47c1bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47c1af4,f1584d38,c0c42de9,336,c4578548,...) at usb2_process+0x18b fork_exit(c079b9f0,c47c1af4,f1584d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1584d70, ebp = 0 --- Tracing command usbus0 pid 14 tid 100044 td 0xc48eb480 sched_switch(c48eb480,0,104,18c,45070cb0,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48eb480,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47c1acc,0,c0c36b83,0,0,...) at sleepq_wait+0x63 _sleep(c47c1acc,c47c1bfc,0,c0c36b83,0,...) at _sleep+0x35b usb2_msleep(c0c36b83,0,f1581cf8,c079bb7b,c47c1acc,...) at usb2_msleep+0x58 usb2_cv_wait(c47c1acc,c47c1bfc,c0c36ae2,51,c0d99f00,...) at usb2_cv_wait+0x23 usb2_process(c47c1ac4,f1581d38,c0c42de9,336,c45787ec,...) at usb2_process+0x18b fork_exit(c079b9f0,c47c1ac4,f1581d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1581d70, ebp = 0 --- Tracing command sctp_iterator pid 8 tid 100043 td 0xc48eb6c0 sched_switch(c48eb6c0,0,104,18c,872966e,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c48eb6c0,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0473c,0,c0c5f040,0,0,...) at sleepq_wait+0x63 _sleep(c0f0473c,c0f04650,0,c0c5f040,0,...) at _sleep+0x35b sctp_iterator_thread(0,f157ed38,c0c42de9,336,c4578a90,...) at sctp_iterator_thread+0x60 fork_exit(c0968160,0,f157ed38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf157ed70, ebp = 0 --- Tracing command fdc0 pid 7 tid 100040 td 0xc48ebd80 sched_switch(c48ebd80,0,104,18c,3d70714c,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,4c,...) at mi_switch+0x200 sleepq_switch(c48ebd80,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c47cf43c,4c,c0c3d8a5,0,0,...) at sleepq_timedwait+0x6b _sleep(c47cf43c,c47cf4f0,4c,c0c3d8a5,3e8,...) at _sleep+0x329 fdc_thread(c47cf400,f1572d38,c0c42de9,336,c4578d34,...) at fdc_thread+0x2be fork_exit(c0b34930,c47cf400,f1572d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1572d70, ebp = 0 --- Tracing command fw0_probe pid 6 tid 100038 td 0xc474fd80 sched_switch(c474fd80,0,104,18c,6a3da0ef,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c474fd80,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c47fe000,5c,c0c3d8a5,100,0,...) at sleepq_wait_sig+0x17 _sleep(c47fe000,c4802488,15c,c0c3d8a5,0,...) at _sleep+0x344 fw_bus_probe_thread(c47fe000,f1562d38,c0c42de9,336,c46a3000,...) at fw_bus_probe_thread+0xa08 fork_exit(c063e3f0,c47fe000,f1562d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1562d70, ebp = 0 --- Tracing command xpt_thrd pid 5 tid 100026 td 0xc45bf900 sched_switch(c45bf900,0,104,18c,4501f43d,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,4c,...) at mi_switch+0x200 sleepq_switch(c45bf900,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0d62dd4,4c,c0bde578,0,0,...) at sleepq_wait+0x63 _sleep(c0d62dd4,c0d62dec,4c,c0bde578,0,...) at _sleep+0x35b xpt_scanner_thread(0,c420ed38,c0c42de9,336,c46a32a4,...) at xpt_scanner_thread+0x41 fork_exit(c047cfd0,0,c420ed38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc420ed70, ebp = 0 --- Tracing command yarrow pid 13 tid 100017 td 0xc457b240 sched_switch(c457b240,0,104,18c,91e2b862,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c457b240,0,c0c4b5a8,26a,2,...) at sleepq_switch+0x15f sleepq_timedwait(c0d95de4,0,c0c3d8a5,2,0,...) at sleepq_timedwait+0x6b _sleep(c0d95de4,0,0,c0c3d8a5,64,...) at _sleep+0x329 pause(c0c3d8a5,64,c0c24335,113,0,...) at pause+0x47 random_kthread(0,c41f3d38,c0c42de9,336,c46a3548,...) at random_kthread+0x1ef fork_exit(c0714ae0,0,c41f3d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41f3d70, ebp = 0 --- Tracing command g_down pid 4 tid 100015 td 0xc457b6c0 sched_switch(c457b6c0,0,104,18c,972f25a3,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,4c,...) at mi_switch+0x200 sleepq_switch(c457b6c0,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c0d93b64,4c,c0c3d8a5,0,0,...) at sleepq_timedwait+0x6b _sleep(c0d93b64,c0d93ac8,24c,c0c3d8a5,64,...) at _sleep+0x329 g_io_schedule_down(c457b6c0,0,c0c3ef6d,74,0,...) at g_io_schedule_down+0x6b g_down_procbody(0,c41edd38,c0c42de9,336,c4577000,...) at g_down_procbody+0x8d fork_exit(c0802430,0,c41edd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41edd70, ebp = 0 --- Tracing command g_up pid 3 tid 100014 td 0xc457b900 cpustop_handler(4,c41eab6c,c0b7bb9d,c0c48582,fe,...) at cpustop_handler+0x32 ipi_nmi_handler(c0c48582,fe,2,c45772a4,c45772a4,...) at ipi_nmi_handler+0x2f trap(c41eab78) at trap+0x2d calltrap() at calltrap+0x6 --- trap 0x13, eip = 0xc08510c9, esp = 0xc41eabb8, ebp = 0xc41eabe0 --- _thread_lock_flags(c55a36c0,0,c0c4b5a8,320,0,...) at _thread_lock_flags+0x9 sleepq_broadcast(c2161340,0,0,0,c2161340,...) at sleepq_broadcast+0xe2 wakeup(c2161340,4,c0c70452,1b8) at wakeup+0x37 vm_page_flash(c2161340,0,c0c6df51,547,0,...) at vm_page_flash+0x44 swp_pager_async_iodone(e44ddc54,c4542344,c4e45b40,c0a95f80,c41eac98,...) at swp_pager_async_iodone+0x1a2 bufdone(e44ddc54,c4542344,c41eacbc,c08d0485,c4e45b40,...) at bufdone+0x53 swapgeom_done(c4e45b40,0,c0c52040,c15,c4e45b40,...) at swapgeom_done+0x37 biodone(c4e45b40,c0d93ae8,24c,c0c3d8a5,64,...) at biodone+0xa5 g_io_schedule_up(c457b900,0,c0c3ef6d,5d,0,...) at g_io_schedule_up+0xc7 g_up_procbody(0,c41ead38,c0c42de9,336,c45772a4,...) at g_up_procbody+0x8d fork_exit(c08024c0,0,c41ead38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41ead70, ebp = 0 --- Tracing command g_event pid 2 tid 100013 td 0xc457bb40 sched_switch(c457bb40,0,104,18c,8d0e12b8,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,4c,...) at mi_switch+0x200 sleepq_switch(c457bb40,0,c0c4b5a8,26a,0,...) at sleepq_switch+0x15f sleepq_timedwait(c0d93b58,4c,c0c3d8a5,0,0,...) at sleepq_timedwait+0x6b _sleep(c0d93b58,0,4c,c0c3d8a5,64,...) at _sleep+0x329 g_event_procbody(0,c41e7d38,c0c42de9,336,c4577548,...) at g_event_procbody+0xcb fork_exit(c0802550,0,c41e7d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41e7d70, ebp = 0 --- Tracing command intr pid 12 tid 100042 td 0xc48eb900 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100041 td 0xc48ebb40 sched_switch(c48ebb40,0,109,18c,44fd2695,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c4575170,...) at mi_switch+0x200 ithread_loop(c48ed3c0,f1575d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c48ed3c0,f1575d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1575d70, ebp = 0 --- Tracing command intr pid 12 tid 100039 td 0xc48ec000 sched_switch(c48ec000,0,109,18c,865ea12a,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c47f9770,...) at mi_switch+0x200 ithread_loop(c48e17f0,f1565d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c48e17f0,f1565d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1565d70, ebp = 0 --- Tracing command intr pid 12 tid 100036 td 0xc4765240 sched_switch(c4765240,0,109,18c,429ae80c,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45be1f0,...) at mi_switch+0x200 ithread_loop(c47fa9a0,f1559d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c47fa9a0,f1559d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1559d70, ebp = 0 --- Tracing command intr pid 12 tid 100035 td 0xc4765480 sched_switch(c4765480,0,109,18c,50c08af7,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45be4f0,...) at mi_switch+0x200 ithread_loop(c47fa210,f1551d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c47fa210,f1551d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1551d70, ebp = 0 --- Tracing command intr pid 12 tid 100034 td 0xc47656c0 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100033 td 0xc4765900 sched_switch(c4765900,0,109,18c,717346b1,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45be2f0,...) at mi_switch+0x200 ithread_loop(c47a74d0,f153fd38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c47a74d0,f153fd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf153fd70, ebp = 0 --- Tracing command intr pid 12 tid 100032 td 0xc4765b40 sched_switch(c4765b40,0,109,18c,70ee8eea,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45be370,...) at mi_switch+0x200 ithread_loop(c47a7700,f153bd38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c47a7700,f153bd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf153bd70, ebp = 0 --- Tracing command intr pid 12 tid 100031 td 0xc4765d80 sched_switch(c4765d80,0,109,18c,28c91b19,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45be3f0,...) at mi_switch+0x200 ithread_loop(c47a7390,f1537d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c47a7390,f1537d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf1537d70, ebp = 0 --- Tracing command intr pid 12 tid 100030 td 0xc4767000 sched_switch(c4767000,0,109,18c,97404f13,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45be0f0,...) at mi_switch+0x200 ithread_loop(c478c4f0,c434dd38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c478c4f0,c434dd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc434dd70, ebp = 0 --- Tracing command intr pid 12 tid 100029 td 0xc4767240 sched_switch(c4767240,0,109,18c,5d2800bf,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c477a670,...) at mi_switch+0x200 ithread_loop(c478b6c0,c4247d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c478b6c0,c4247d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc4247d70, ebp = 0 --- Tracing command intr pid 12 tid 100028 td 0xc4767480 sched_switch(c4767480,0,109,18c,44fe18c5,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c4574c70,...) at mi_switch+0x200 ithread_loop(c474e490,c423ad38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c474e490,c423ad38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc423ad70, ebp = 0 --- Tracing command intr pid 12 tid 100027 td 0xc45bf6c0 sched_switch(c45bf6c0,0,109,18c,6d652009,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c474d570,...) at mi_switch+0x200 ithread_loop(c474c920,c4211d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c474c920,c4211d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc4211d70, ebp = 0 --- Tracing command intr pid 12 tid 100021 td 0xc474f480 sched_switch(c474f480,0,109,18c,dfe7b873,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c474d6f0,...) at mi_switch+0x200 ithread_loop(c474c9b0,c41ffd38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c474c9b0,c41ffd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41ffd70, ebp = 0 --- Tracing command intr pid 12 tid 100020 td 0xc474f6c0 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100018 td 0xc474fb40 sched_switch(c474fb40,0,109,18c,420128f7,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c474d7f0,...) at mi_switch+0x200 ithread_loop(c474c9e0,c41f6d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c474c9e0,c41f6d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41f6d70, ebp = 0 --- Tracing command intr pid 12 tid 100012 td 0xc457bd80 sched_switch(c457bd80,0,109,18c,5053b599,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45bdc70,...) at mi_switch+0x200 ithread_loop(c4576260,c41e4d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c4576260,c41e4d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41e4d70, ebp = 0 --- Tracing command intr pid 12 tid 100011 td 0xc45bf000 sched_switch(c45bf000,0,109,18c,de4aebfc,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45bdcf0,...) at mi_switch+0x200 ithread_loop(c4576270,c41e1d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c4576270,c41e1d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41e1d70, ebp = 0 --- Tracing command intr pid 12 tid 100010 td 0xc45bf240 sched_switch(c45bf240,0,109,18c,36611289,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45bdd70,...) at mi_switch+0x200 ithread_loop(c4576280,c41ded38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c4576280,c41ded38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41ded70, ebp = 0 --- Tracing command intr pid 12 tid 100009 td 0xc45bf480 sched_switch(c45bf480,0,109,18c,91e1ff77,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45bddf0,...) at mi_switch+0x200 ithread_loop(c4576290,c41dbd38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c4576290,c41dbd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41dbd70, ebp = 0 --- Tracing command intr pid 12 tid 100008 td 0xc4579000 sched_switch(c4579000,0,109,18c,95b012e1,...) at sched_switch+0x437 mi_switch(109,0,c0c43068,4d7,c45bde70,...) at mi_switch+0x200 ithread_loop(c45762a0,c41d8d38,c0c42de9,336,c45777ec,...) at ithread_loop+0x1f6 fork_exit(c083c770,c45762a0,c41d8d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41d8d70, ebp = 0 --- Tracing command intr pid 12 tid 100007 td 0xc4579240 fork_trampoline() at fork_trampoline Tracing command idle pid 11 tid 100006 td 0xc4579480 sched_switch(c4579480,0,108,187,a37eb46f,...) at sched_switch+0x437 mi_switch(108,0,c0c48e8a,3ad,c4579480,...) at mi_switch+0x200 sched_idletd(0,c41d1d38,c0c42de9,336,c4577a90,...) at sched_idletd+0x16c fork_exit(c08822c0,0,c41d1d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41d1d70, ebp = 0 --- Tracing command idle pid 11 tid 100005 td 0xc45796c0 cpustop_handler(2,c41cec40,c0b7bb9d,63,3f8,...) at cpustop_handler+0x32 ipi_nmi_handler(63,3f8,c47f2500,8a,c4577a90,...) at ipi_nmi_handler+0x2f trap(c41cec4c) at trap+0x2d calltrap() at calltrap+0x6 --- trap 0x13, eip = 0xc0868637, esp = 0xc41cec8c, ebp = 0xc41cecb4 --- mi_switch(108,0,c0c48e8a,3ad,c45796c0,...) at mi_switch+0x1b7 sched_idletd(0,c41ced38,c0c42de9,336,c4577a90,...) at sched_idletd+0x16c fork_exit(c08822c0,0,c41ced38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41ced70, ebp = 0 --- Tracing command idle pid 11 tid 100004 td 0xc4579900 sched_switch(c4579900,0,60c,187,a347a0e1,...) at sched_switch+0x437 mi_switch(60c,0,c0c48e8a,813,2,...) at mi_switch+0x200 sched_preempt(c4579900,2,1f4,c41cbc70,c0b5f11e,...) at sched_preempt+0x9f ipi_bitmap_handler(8,28,28,c48fa618,c48fa600,...) at ipi_bitmap_handler+0x34 Xipi_intr_bitmap_handler() at Xipi_intr_bitmap_handler+0x2e --- interrupt, eip = 0xc0b533d5, esp = 0xc41cbc70, ebp = 0xc41cbc70 --- acpi_cpu_c1(0,ffffffff,c41cbcd8,2,c0882211,...) at acpi_cpu_c1+0x5 acpi_cpu_idle(c41cbcb4,c0b6a34b,1,c41cbcf8,c08824de,...) at acpi_cpu_idle+0x11c cpu_idle_acpi(1,c41cbcf8,c08824de,1,c41cbcd8,...) at cpu_idle_acpi+0x1b cpu_idle(1,c41cbcd8,c0c48e8a,3af,c4579900,...) at cpu_idle+0x1b sched_idletd(0,c41cbd38,c0c42de9,336,c4577a90,...) at sched_idletd+0x21e fork_exit(c08822c0,0,c41cbd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41cbd70, ebp = 0 --- Tracing command idle pid 11 tid 100003 td 0xc4579b40 cpustop_handler(8,c41c8bc0,c0b7bb9d,c4579b40,c0d813c0,...) at cpustop_handler+0x32 ipi_nmi_handler(c4579b40,c0d813c0,c4579b40,c41c8b4c,c4577a90,...) at ipi_nmi_handler+0x2f trap(c41c8bcc) at trap+0x2d calltrap() at calltrap+0x6 --- trap 0x13, eip = 0xc0880911, esp = 0xc41c8c0c, ebp = 0xc41c8c20 --- tdq_choose(c0d9b280,4,c0c48e8a,8ba,3,...) at tdq_choose+0x21 sched_choose(c41c8c84,c08817fa,c0d9b280,14,c0c48e8a,...) at sched_choose+0x4b choosethread(c0d9b280,14,c0c48e8a,72b,c0d9b280,...) at choosethread+0x8 sched_switch(c4579b40,0,108,187,975962da,...) at sched_switch+0x3ea mi_switch(108,0,c0c48e8a,3ad,c4579b40,...) at mi_switch+0x200 sched_idletd(0,c41c8d38,c0c42de9,336,c4577a90,...) at sched_idletd+0x16c fork_exit(c08822c0,0,c41c8d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41c8d70, ebp = 0 --- Tracing command init pid 1 tid 100002 td 0xc4579d80 sched_switch(c4579d80,0,104,18c,decfb2bc,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,5c,...) at mi_switch+0x200 sleepq_switch(c4579d80,0,c0c4b5a8,189,5c,...) at sleepq_switch+0x15f sleepq_catch_signals(c0c4b5a8,159,0,100,100,...) at sleepq_catch_signals+0xb6 sleepq_wait_sig(c4577d34,5c,c0c4ddff,100,0,...) at sleepq_wait_sig+0x17 _sleep(c4577d34,c4577dbc,15c,c0c4ddff,0,...) at _sleep+0x344 kern_wait(c4579d80,ffffffff,c41c4c74,0,0,...) at kern_wait+0xac6 wait4(c4579d80,c41c4cf8,10,c0c4dc1a,c0d2a728,...) at wait4+0x3b syscall(c41c4d38) at syscall+0x2b4 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (7, FreeBSD ELF32, wait4), eip = 0x8054c7f, esp = 0xbfbfe90c, ebp = 0xbfbfe928 --- Tracing command audit pid 10 tid 100001 td 0xc457b000 sched_switch(c457b000,0,104,18c,44ffaed9,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c457b000,0,c0c4b5a8,247,c457b000,...) at sleepq_switch+0x15f sleepq_wait(c0f0e080,0,c41c1c9c,1,0,...) at sleepq_wait+0x63 _cv_wait(c0f0e080,c0f0e064,c0c6a378,194,0,...) at _cv_wait+0x240 audit_worker(0,c41c1d38,c0c42de9,336,c4578000,...) at audit_worker+0x84 fork_exit(c0a5e1a0,0,c41c1d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41c1d70, ebp = 0 --- Tracing command kernel pid 0 tid 100037 td 0xc4765000 sched_switch(c4765000,0,104,18c,8e48d3eb,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c4765000,0,c0c4b5a8,247,c4765000,...) at sleepq_switch+0x15f sleepq_wait(c47d7200,0,c0c47e06,c0c3d8a5,0,...) at sleepq_wait+0x63 msleep_spin(c47d7200,c47d721c,c0c3d8a5,0,c0c45a20,...) at msleep_spin+0x21d taskqueue_thread_loop(c480249c,f155fd38,c0c42de9,336,c0d93c20,...) at taskqueue_thread_loop+0x8e fork_exit(c0898a20,c480249c,f155fd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xf155fd70, ebp = 0 --- Tracing command kernel pid 0 tid 100025 td 0xc45bfb40 sched_switch(c45bfb40,0,104,18c,4576ac1c,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c45bfb40,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c4732280,0,c0c3d8a5,0,0,...) at sleepq_wait+0x63 _sleep(c4732280,c473229c,0,c0c3d8a5,0,...) at _sleep+0x35b taskqueue_thread_loop(c0d65a84,c420bd38,c0c42de9,336,c0d93c20,...) at taskqueue_thread_loop+0xb4 fork_exit(c0898a20,c0d65a84,c420bd38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc420bd70, ebp = 0 --- Tracing command kernel pid 0 tid 100024 td 0xc45bfd80 sched_switch(c45bfd80,0,104,18c,45769d27,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c45bfd80,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c4732280,0,c0c3d8a5,0,0,...) at sleepq_wait+0x63 _sleep(c4732280,c473229c,0,c0c3d8a5,0,...) at _sleep+0x35b taskqueue_thread_loop(c0d65a84,c4208d38,c0c42de9,336,c0d93c20,...) at taskqueue_thread_loop+0xb4 fork_exit(c0898a20,c0d65a84,c4208d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc4208d70, ebp = 0 --- Tracing command kernel pid 0 tid 100023 td 0xc474f000 sched_switch(c474f000,0,104,18c,457688df,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c474f000,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c4732280,0,c0c3d8a5,0,0,...) at sleepq_wait+0x63 _sleep(c4732280,c473229c,0,c0c3d8a5,0,...) at _sleep+0x35b taskqueue_thread_loop(c0d65a84,c4205d38,c0c42de9,336,c0d93c20,...) at taskqueue_thread_loop+0xb4 fork_exit(c0898a20,c0d65a84,c4205d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc4205d70, ebp = 0 --- Tracing command kernel pid 0 tid 100022 td 0xc474f240 sched_switch(c474f240,0,104,18c,45708aad,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c474f240,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c47322c0,0,c0c3d8a5,0,0,...) at sleepq_wait+0x63 _sleep(c47322c0,c47322dc,0,c0c3d8a5,0,...) at _sleep+0x35b taskqueue_thread_loop(c0d944e4,c4202d38,c0c42de9,336,c0d93c20,...) at taskqueue_thread_loop+0xb4 fork_exit(c0898a20,c0d944e4,c4202d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc4202d70, ebp = 0 --- Tracing command kernel pid 0 tid 100019 td 0xc474f900 sched_switch(c474f900,0,104,18c,8b8ceaa,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c474f900,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c4732400,0,c0c3d8a5,0,0,...) at sleepq_wait+0x63 _sleep(c4732400,c473241c,0,c0c3d8a5,0,...) at _sleep+0x35b taskqueue_thread_loop(c0da88e8,c41f9d38,c0c42de9,336,c0d93c20,...) at taskqueue_thread_loop+0xb4 fork_exit(c0898a20,c0da88e8,c41f9d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41f9d70, ebp = 0 --- Tracing command kernel pid 0 tid 100016 td 0xc457b480 sched_switch(c457b480,0,104,18c,72f397f8,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,0,...) at mi_switch+0x200 sleepq_switch(c457b480,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c455fdc0,0,c0c3d8a5,0,0,...) at sleepq_wait+0x63 _sleep(c455fdc0,c455fddc,0,c0c3d8a5,0,...) at _sleep+0x35b taskqueue_thread_loop(c0da7420,c41f0d38,c0c42de9,336,c0d93c20,...) at taskqueue_thread_loop+0xb4 fork_exit(c0898a20,c0da7420,c41f0d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xc41f0d70, ebp = 0 --- Tracing command kernel pid 0 tid 100000 td 0xc0d93ed0 sched_switch(c0d93ed0,0,104,18c,5e6981b5,...) at sched_switch+0x437 mi_switch(104,0,c0c4b5a8,1d2,44,...) at mi_switch+0x200 sleepq_switch(c0d93ed0,0,c0c4b5a8,247,0,...) at sleepq_switch+0x15f sleepq_wait(c0f0ecdc,44,c0c707cc,0,0,...) at sleepq_wait+0x63 _sleep(c0f0ecdc,c0f0eed0,244,c0c707cc,0,...) at _sleep+0x35b vm_wait(c4e19874,0,c0c6edf5,2ec,2710,...) at vm_wait+0xbe scheduler(0,141ec00,141ec00,141e000,1425000,...) at scheduler+0x69 mi_startup() at mi_startup+0x96 begin() at begin+0x2c db:1:allt> call doadump Dumping 1023 MB (2 chunks) chunk 0: 1MB (159 pages) ... ok chunk 1: 1023MB (261888 pages) 1008 992 976 960 944 928 912 896 880 864 848 832 816 800 784 768 752 736 720 704 688 672 656 640 624 608 592 576 560 544 528 512 496 480 464 448 432 416 400 384 368 352 336 320 304 288 272 256 240 224 208 192 176 160 144 128 112 96 80 64 48 32 16 ... ok Dump complete = 0xf db:1:doadump> reset (kgdb) bt #0 doadump () at pcpu.h:246 #1 0xc04bf7e9 in db_fncall (dummy1=0xc088dfda, dummy2=0x0, dummy3=0xffffffff, dummy4=0xf3c77600 "\024vÇó\001") at ../../../ddb/db_command.c:548 #2 0xc04bfc1f in db_command (last_cmdp=0xc0d63d5c, cmd_table=0x0, dopager=0x0) at ../../../ddb/db_command.c:445 #3 0xc04bfcd4 in db_command_script (command=0xc0d64ce8 "call doadump") at ../../../ddb/db_command.c:516 #4 0xc04c3dd0 in db_script_exec (scriptname=0xc0d645c0 "doadump", warnifnotfound=Variable "warnifnotfound" is not available. ) at ../../../ddb/db_script.c:302 #5 0xc04c3e61 in db_run_cmd (addr=0x0, have_addr=0x0, count=0x0, modif=0xf3c77738 "LwÇó") at ../../../ddb/db_script.c:375 #6 0xc04bfc1f in db_command (last_cmdp=0xc0d63d5c, cmd_table=0x0, dopager=0x0) at ../../../ddb/db_command.c:445 #7 0xc04bfcd4 in db_command_script (command=0xc0d64c20 "run pho") at ../../../ddb/db_command.c:516 #8 0xc04c3dd0 in db_script_exec (scriptname=0xf3c77844 "kdb.enter.panic", warnifnotfound=Variable "warnifnotfound" is not available. ) at ../../../ddb/db_script.c:302 #9 0xc04c3eb7 in db_script_kdbenter (eventname=0xc0c4727c "panic") at ../../../ddb/db_script.c:324 #10 0xc04c1b98 in db_trap (type=0x3, code=0x0) at ../../../ddb/db_main.c:228 #11 0xc088de56 in kdb_trap (type=0x3, code=0x0, tf=0xf3c77980) at ../../../kern/subr_kdb.c:534 #12 0xc0b7c15b in trap (frame=0xf3c77980) at ../../../i386/i386/trap.c:685 #13 0xc0b5ea2b in calltrap () at ../../../i386/i386/exception.s:165 #14 0xc088dfda in kdb_enter (why=0xc0c4727c "panic", msg=0xc0c4727c "panic") at cpufunc.h:71 #15 0xc08600a6 in panic (fmt=0xc0c6d00c "ffs_read: uio->uio_offset < 0") at ../../../kern/kern_shutdown.c:559 #16 0xc0a83c19 in ffs_read (ap=0xf3c77ad0) at ../../../ufs/ffs/ffs_vnops.c:463 #17 0xc0b87895 in VOP_READ_APV (vop=0xc0d49e80, a=0xf3c77ad0) at vnode_if.c:824 #18 0xc08f91d1 in vn_read_wired_chunk (fp=0xc505db28, uio=0xc4ea5000, active_cred=0xc4f11400, flags=0x0, ioflag=0x0, td=0xc55a4000) at vnode_if.h:355 #19 0xc08f6a7e in do_vn_rw_chunked (fp=0xc505db28, uio=0xc4ea5000, active_cred=0xc4f11400, flags=0x0, ioflag=0x0, td=0xc55a4000, m_hold=0xf3c77b80, vn_chunk_func=0xc08f9120 ) at ../../../kern/vfs_vnops.c:579 #20 0xc08f70a9 in vn_read (fp=0xc505db28, uio=0xc4ea5000, active_cred=0xc4f11400, flags=0x0, td=0xc55a4000) at ../../../kern/vfs_vnops.c:688 #21 0xc08a2356 in dofileread (td=0xc55a4000, fd=0x3, fp=0xc505db28, auio=0xc4ea5000, offset=0xffffffffffffffff, flags=0x0) at file.h:227 #22 0xc08a2688 in kern_readv (td=0xc55a4000, fd=0x3, auio=0xc4ea5000) at ../../../kern/sys_generic.c:236 #23 0xc08a2726 in readv (td=0xc55a4000, uap=0xf3c77cf8) at ../../../kern/sys_generic.c:222 #24 0xc0b7b894 in syscall (frame=0xf3c77d38) at ../../../i386/i386/trap.c:1073 #25 0xc0b5ea90 in Xint0x80_syscall () at ../../../i386/i386/exception.s:261 #26 0x00000033 in ?? () Previous frame inner to this frame (corrupt stack?) (kgdb) f 16 #16 0xc0a83c19 in ffs_read (ap=0xf3c77ad0) at ../../../ufs/ffs/ffs_vnops.c:463 463 KASSERT(uio->uio_offset >= 0, ("ffs_read: uio->uio_offset < 0")); (kgdb) p *uio $1 = {uio_iov = 0xc4ea5020, uio_iovcnt = 0x3e8, uio_offset = 0xfffffffffffffc00, uio_resid = 0xc000, uio_segflg = UIO_USERSPACE, uio_rw = UIO_READ, uio_td = 0xc55a4000} (kgdb) git diff master..HEAD diff --git a/sys/conf/files b/sys/conf/files index 0d3339e..66a8894 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -1931,6 +1931,7 @@ kern/kern_poll.c optional device_polling kern/kern_priv.c standard kern/kern_proc.c standard kern/kern_prot.c standard +kern/kern_rangelock.c standard kern/kern_resource.c standard kern/kern_rmlock.c standard kern/kern_rwlock.c standard diff --git a/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c b/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c index 76237fb..0d0ef86 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c +++ b/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c @@ -91,7 +91,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include static int (*pru_sosend)(struct socket *so, struct sockaddr *addr, diff --git a/sys/dev/cxgb/ulp/tom/cxgb_ddp.c b/sys/dev/cxgb/ulp/tom/cxgb_ddp.c index a54598c..1c3953d 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_ddp.c +++ b/sys/dev/cxgb/ulp/tom/cxgb_ddp.c @@ -90,7 +90,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #define MAX_SCHEDULE_TIMEOUT 300 diff --git a/sys/dev/cxgb/ulp/tom/cxgb_vm.c b/sys/dev/cxgb/ulp/tom/cxgb_vm.c deleted file mode 100644 index e7a3893..0000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_vm.c +++ /dev/null @@ -1,166 +0,0 @@ -/************************************************************************** - -Copyright (c) 2007-2008, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -***************************************************************************/ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -/* - * This routine takes a user's map, array of pages, number of pages, and flags - * and then does the following: - * - validate that the user has access to those pages (flags indicates read - * or write) - if not fail - * - validate that count is enough to hold range number of pages - if not fail - * - fault in any non-resident pages - * - if the user is doing a read force a write fault for any COWed pages - * - if the user is doing a read mark all pages as dirty - * - hold all pages - */ -int -vm_fault_hold_user_pages(vm_map_t map, vm_offset_t addr, vm_page_t *mp, - int count, vm_prot_t prot) -{ - vm_offset_t end, va; - int faults, rv; - pmap_t pmap; - vm_page_t m, *pages; - - pmap = vm_map_pmap(map); - pages = mp; - addr &= ~PAGE_MASK; - /* - * Check that virtual address range is legal - * This check is somewhat bogus as on some architectures kernel - * and user do not share VA - however, it appears that all FreeBSD - * architectures define it - */ - end = addr + (count * PAGE_SIZE); - if (end > VM_MAXUSER_ADDRESS) { - log(LOG_WARNING, "bad address passed to vm_fault_hold_user_pages"); - return (EFAULT); - } - - /* - * First optimistically assume that all pages are resident - * (and R/W if for write) if so just mark pages as held (and - * dirty if for write) and return - */ - vm_page_lock_queues(); - for (pages = mp, faults = 0, va = addr; va < end; - va += PAGE_SIZE, pages++) { - /* - * page queue mutex is recursable so this is OK - * it would be really nice if we had an unlocked - * version of this so we were only acquiring the - * pmap lock 1 time as opposed to potentially - * many dozens of times - */ - *pages = m = pmap_extract_and_hold(pmap, va, prot); - if (m == NULL) { - faults++; - continue; - } - /* - * Preemptively mark dirty - the pages - * will never have the modified bit set if - * they are only changed via DMA - */ - if (prot & VM_PROT_WRITE) - vm_page_dirty(m); - - } - vm_page_unlock_queues(); - - if (faults == 0) - return (0); - - /* - * Pages either have insufficient permissions or are not present - * trigger a fault where neccessary - * - */ - rv = 0; - for (pages = mp, va = addr; va < end; va += PAGE_SIZE, pages++) { - /* - * Account for a very narrow race where the page may be - * taken away from us before it is held - */ - while (*pages == NULL) { - rv = vm_fault(map, va, prot, - (prot & VM_PROT_WRITE) ? VM_FAULT_DIRTY : VM_FAULT_NORMAL); - if (rv) - goto error; - *pages = pmap_extract_and_hold(pmap, va, prot); - } - } - return (0); -error: - log(LOG_WARNING, - "vm_fault bad return rv=%d va=0x%zx\n", rv, va); - vm_page_lock_queues(); - for (pages = mp, va = addr; va < end; va += PAGE_SIZE, pages++) - if (*pages) { - vm_page_unhold(*pages); - *pages = NULL; - } - vm_page_unlock_queues(); - return (EFAULT); -} - -void -vm_fault_unhold_pages(vm_page_t *mp, int count) -{ - - KASSERT(count >= 0, ("negative count %d", count)); - vm_page_lock_queues(); - while (count--) { - vm_page_unhold(*mp); - mp++; - } - vm_page_unlock_queues(); -} diff --git a/sys/dev/cxgb/ulp/tom/cxgb_vm.h b/sys/dev/cxgb/ulp/tom/cxgb_vm.h deleted file mode 100644 index 7532e20..0000000 --- a/sys/dev/cxgb/ulp/tom/cxgb_vm.h +++ /dev/null @@ -1,39 +0,0 @@ -/************************************************************************** - -Copyright (c) 2007-2008, Chelsio Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Neither the name of the Chelsio Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - - -$FreeBSD$ - -***************************************************************************/ -#ifndef CXGB_VM_H_ -#define CXGB_VM_H_ - -int vm_fault_hold_user_pages(vm_map_t map, vm_offset_t addr, - vm_page_t *mp, int count, vm_prot_t prot); -void vm_fault_unhold_pages(vm_page_t *mp, int count); - -#endif diff --git a/sys/kern/kern_rangelock.c b/sys/kern/kern_rangelock.c new file mode 100644 index 0000000..7a45c13 --- /dev/null +++ b/sys/kern/kern_rangelock.c @@ -0,0 +1,151 @@ +/*- + * Copyright (c) 2009 Konstantin Belousov + * All rights reserved. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include + +void +rangelock_init(struct rangelock *lock) +{ + + TAILQ_INIT(&lock->rl_waiters); + lock->rl_currdep = NULL; +} + +void +rangelock_destroy(struct rangelock *lock) +{ + + KASSERT(TAILQ_EMPTY(&lock->rl_waiters), ("Dangling waiters")); +} + +static int +rangelock_incompatible(const struct rl_q_entry *e1, const struct rl_q_entry *e2) +{ + + if ((e1->rl_q_flags & RL_LOCK_TYPE_MASK) == RL_LOCK_READ && + (e2->rl_q_flags & RL_LOCK_TYPE_MASK) == RL_LOCK_READ) + return (0); +#define IN_RANGE(a, e) (a <= e->rl_q_start && a < e->rl_q_end) + if (IN_RANGE(e1->rl_q_start, e2) || IN_RANGE(e2->rl_q_start, e1) || + IN_RANGE(e1->rl_q_end, e2) || IN_RANGE(e2->rl_q_end, e1)) + return (1); +#undef IN_RANGE + return (0); +} + +static void +rangelock_calc_block(struct rangelock *lock) +{ + struct rl_q_entry *entry, *entry1, *whead; + + if (lock->rl_currdep == TAILQ_FIRST(&lock->rl_waiters) && + lock->rl_currdep != NULL) + lock->rl_currdep = TAILQ_NEXT(lock->rl_currdep, rl_q_link); + for (entry = lock->rl_currdep; entry; + entry = TAILQ_NEXT(entry, rl_q_link)) { + TAILQ_FOREACH(entry1, &lock->rl_waiters, rl_q_link) { + if (rangelock_incompatible(entry, entry1)) + goto out; + if (entry1 == entry) + break; + } + } +out: + lock->rl_currdep = entry; + TAILQ_FOREACH(whead, &lock->rl_waiters, rl_q_link) { + if (whead == lock->rl_currdep) + break; + if (!(whead->rl_q_flags & RL_LOCK_GRANTED)) { + whead->rl_q_flags |= RL_LOCK_GRANTED; + wakeup(whead); + } + } +} + +static void +rangelock_unlock_vp_locked(struct vnode *vp, struct rl_q_entry *entry) +{ + + ASSERT_VI_LOCKED(vp, "rangelock"); + KASSERT(entry != vp->v_rl.rl_currdep, ("stuck currdep")); + TAILQ_REMOVE(&vp->v_rl.rl_waiters, entry, rl_q_link); + rangelock_calc_block(&vp->v_rl); + VI_UNLOCK(vp); +} + +void +rangelock_unlock(struct vnode *vp, void *cookie) +{ + struct rl_q_entry *entry; + + entry = cookie; + VI_LOCK(vp); + rangelock_unlock_vp_locked(vp, entry); +} + +void * +rangelock_unlock_range(struct vnode *vp, void *cookie, off_t base, size_t len) +{ + struct rl_q_entry *entry; + + entry = cookie; + VI_LOCK(vp); + KASSERT(entry->rl_q_flags & RL_LOCK_GRANTED, ("XXX")); + KASSERT(entry->rl_q_start == base, ("XXX")); + KASSERT(entry->rl_q_end >= base + len, ("XXX")); + if (entry->rl_q_end == base + len) { + rangelock_unlock_vp_locked(vp, cookie); + return (NULL); + } + entry->rl_q_end = base + len; + rangelock_calc_block(&vp->v_rl); + VI_UNLOCK(vp); + return (cookie); +} + +static void * +rangelock_enqueue(struct vnode *vp, struct rl_q_entry *entry) +{ + + VI_LOCK(vp); + TAILQ_INSERT_TAIL(&vp->v_rl.rl_waiters, entry, rl_q_link); + if (vp->v_rl.rl_currdep == NULL) + vp->v_rl.rl_currdep = entry; + rangelock_calc_block(&vp->v_rl); + while (!(entry->rl_q_flags & RL_LOCK_GRANTED)) + msleep(entry, &vp->v_interlock, 0, "range", 0); + VI_UNLOCK(vp); + return (entry); +} + +void * +rangelock_rlock(struct vnode *vp, struct rl_q_entry *entry, off_t base, + size_t len) +{ + + entry->rl_q_flags = RL_LOCK_READ; + entry->rl_q_start = base; + entry->rl_q_end = base + len; + return (rangelock_enqueue(vp, entry)); +} + +void * +rangelock_wlock(struct vnode *vp, struct rl_q_entry *entry, off_t base, + size_t len) +{ + + entry->rl_q_flags = RL_LOCK_WRITE; + entry->rl_q_start = base; + entry->rl_q_end = base + len; + return (rangelock_enqueue(vp, entry)); +} diff --git a/sys/kern/kern_subr.c b/sys/kern/kern_subr.c index ce1afd2..d535407 100644 --- a/sys/kern/kern_subr.c +++ b/sys/kern/kern_subr.c @@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #ifdef ZERO_COPY_SOCKETS #include #include @@ -168,6 +169,12 @@ uiomove(void *cp, int n, struct uio *uio) error = copyout(cp, iov->iov_base, cnt); else error = copyin(iov->iov_base, cp, cnt); + if (error == EFAULT && td->td_faultaddr != 0 && + (td->td_pflags & TDP_VMUIODEADLK)) { + error = ERESTART; + fwduio(uio, td->td_faultaddr - (uintptr_t) + uio->uio_iov->iov_base); + } if (error) goto out; break; @@ -181,10 +188,7 @@ uiomove(void *cp, int n, struct uio *uio) case UIO_NOCOPY: break; } - iov->iov_base = (char *)iov->iov_base + cnt; - iov->iov_len -= cnt; - uio->uio_resid -= cnt; - uio->uio_offset += cnt; + fwduio(uio, cnt); cp = (char *)cp + cnt; n -= cnt; } @@ -569,3 +573,13 @@ cloneuio(struct uio *uiop) bcopy(uiop->uio_iov, uio->uio_iov, iovlen); return (uio); } + +void +fwduio(struct uio *uio, int cnt) +{ + + uio->uio_iov->iov_base = (char *)uio->uio_iov->iov_base + cnt; + uio->uio_iov->iov_len -= cnt; + uio->uio_resid -= cnt; + uio->uio_offset += cnt; +} diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 8c26b13..e3867d6 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -871,6 +871,7 @@ vdestroy(struct vnode *vp) /* XXX Elsewhere we can detect an already freed vnode via NULL v_op. */ vp->v_op = NULL; #endif + rangelock_destroy(&vp->v_rl); lockdestroy(vp->v_vnlock); mtx_destroy(&vp->v_interlock); mtx_destroy(BO_MTX(bo)); @@ -1025,6 +1026,7 @@ alloc: if ((mp->mnt_kern_flag & MNTK_NOKNOTE) != 0) vp->v_vflag |= VV_NOKNOTE; } + rangelock_init(&vp->v_rl); *vpp = vp; return (0); diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 3cc6f22..99bb68d 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -60,8 +60,12 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include +#include + #include static fo_rdwr_t vn_read; @@ -363,14 +367,55 @@ vn_rdwr(rw, vp, base, len, offset, segflg, ioflg, active_cred, file_cred, int *aresid; struct thread *td; { - struct uio auio; - struct iovec aiov; + struct uio auio, auio_clone; + struct iovec aiov, aiov_clone; struct mount *mp; struct ucred *cred; - int error; + vm_page_t *m_hold; + struct rl_q_entry rl_entry; + void *rl_cookie; + int wired_pages, error; VFS_ASSERT_GIANT(vp->v_mount); + auio.uio_iov = &aiov; + auio.uio_iovcnt = 1; + aiov.iov_base = base; + aiov.iov_len = len; + auio.uio_resid = len; + auio.uio_offset = offset; + auio.uio_segflg = segflg; + auio.uio_rw = rw; + auio.uio_td = td; + error = 0; + + if ((ioflg & IO_NODELOCKED) == 0) { + if (rw == UIO_READ) + rl_cookie = rangelock_rlock(vp, &rl_entry, + offset, len); + else + rl_cookie = rangelock_wlock(vp, &rl_entry, + offset, len); + } else + rl_cookie = NULL; + + m_hold = NULL; + if (segflg == UIO_USERSPACE) { + m_hold = malloc(sizeof(vm_page_t) * (btoc(len) + 1), M_IOV, + M_WAITOK); + aiov_clone = aiov; + auio_clone = auio; + auio_clone.uio_iov = &aiov_clone; + error = vm_wireuio(&auio, m_hold, + round_page((vm_offset_t)base + len) - + trunc_page((vm_offset_t)base), + &wired_pages); + if (error) { + free(m_hold, M_IOV); + return (error); + } + } + if ((ioflg & IO_NODELOCKED) == 0) { mp = NULL; if (rw == UIO_WRITE) { @@ -384,16 +429,6 @@ vn_rdwr(rw, vp, base, len, offset, segflg, ioflg, active_cred, file_cred, } ASSERT_VOP_LOCKED(vp, "IO_NODELOCKED with no vp lock held"); - auio.uio_iov = &aiov; - auio.uio_iovcnt = 1; - aiov.iov_base = base; - aiov.iov_len = len; - auio.uio_resid = len; - auio.uio_offset = offset; - auio.uio_segflg = segflg; - auio.uio_rw = rw; - auio.uio_td = td; - error = 0; #ifdef MAC if ((ioflg & IO_NOMACCHECK) == 0) { if (rw == UIO_READ) @@ -424,6 +459,12 @@ vn_rdwr(rw, vp, base, len, offset, segflg, ioflg, active_cred, file_cred, vn_finished_write(mp); VOP_UNLOCK(vp, 0); } + if (segflg == UIO_USERSPACE) { + vm_unwireuio(&auio_clone, m_hold, wired_pages); + free(m_hold, M_IOV); + } + if (rl_cookie != NULL) + rangelock_unlock(vp, rl_cookie); return (error); } @@ -485,68 +526,210 @@ vn_rdwr_inchunks(rw, vp, base, len, offset, segflg, ioflg, active_cred, return (error); } +static int uio_hold_pages = 12; +SYSCTL_INT(_vfs, OID_AUTO, uio_hold_pages, CTLFLAG_RW, &uio_hold_pages, 0, + "The max amount of held pages for one i/o chunk"); +static int uio_short = 128; +SYSCTL_INT(_vfs, OID_AUTO, uio_short, CTLFLAG_RW, &uio_short, 0, + "The length of the short i/o"); + +typedef int (*vn_chunk_func_t)(struct file *, struct uio *, struct ucred *, + int, int, struct thread *); + +static int +do_vn_rw_chunked(struct file *fp, struct uio *uio, struct ucred *active_cred, + int flags, int ioflag, struct thread *td, vm_page_t *m_hold, + vn_chunk_func_t vn_chunk_func) +{ + struct uio *uio_clone, auio; + struct iovec aiov; + int error, wire_bytes, io_chunk, total_cnt, cnt; + int first_chunk, wired_pages; + + if (uio->uio_segflg != UIO_USERSPACE || fp->f_vnode->v_type != VREG) + return (vn_chunk_func(fp, uio, active_cred, flags, ioflag, td)); + + KASSERT(!(td->td_pflags & TDP_VMUIODEADLK), + ("Nested TDP_VMUIODEADLK")); + td->td_pflags |= TDP_VMUIODEADLK; + error = vn_chunk_func(fp, uio, active_cred, flags, ioflag, td); + td->td_pflags &= ~TDP_VMUIODEADLK; + if (error != ERESTART || td->td_faultaddr == 0) + return (error); + + first_chunk = 1; + while (uio->uio_resid > 0) { + io_chunk = min(uio_hold_pages * PAGE_SIZE, uio->uio_resid); /* XXXKIB */ + wire_bytes = round_page(io_chunk); + error = vm_wireuio(uio, m_hold, wire_bytes, &wired_pages); + if (error != 0) { + if (!first_chunk) + error = 0; + break; + } + if (uio->uio_iov->iov_len == 1) { + aiov = *uio->uio_iov; + auio = *uio; + auio.uio_iov = &aiov; + uio_clone = &auio; + } else + uio_clone = cloneuio(uio); + total_cnt = uio->uio_resid; + uio->uio_resid = io_chunk; + error = vn_chunk_func(fp, uio, active_cred, flags, ioflag, td); + vm_unwireuio(uio_clone, m_hold, wired_pages); + if (uio_clone->uio_iov->iov_len != 1) + free(uio_clone, M_IOV); + cnt = io_chunk - uio->uio_resid; + uio->uio_resid = total_cnt - cnt; + if (error != 0) { + if (!first_chunk) + error = 0; + break; + } + if (cnt == 0) + break; + first_chunk = 0; + } + return (error); +} + +static struct mtx * +vn_lock_foffset(struct file *fp) +{ + struct mtx *mtxp; + + mtxp = mtx_pool_find(mtxpool_sleep, fp); + mtx_lock(mtxp); + while (fp->f_vnread_flags & FOFFSET_LOCKED) { + fp->f_vnread_flags |= FOFFSET_LOCK_WAITING; + msleep(&fp->f_vnread_flags, mtxp, PUSER -1, + "vnread offlock", 0); + } + fp->f_vnread_flags |= FOFFSET_LOCKED; + mtx_unlock(mtxp); + return (mtxp); +} + +static void +vn_unlock_foffset(struct file *fp, struct mtx *mtxp) +{ + + mtx_lock(mtxp); + if (fp->f_vnread_flags & FOFFSET_LOCK_WAITING) + wakeup(&fp->f_vnread_flags); + fp->f_vnread_flags = 0; + mtx_unlock(mtxp); +} + +static inline int +vn_read_wired_chunk(struct file *fp, struct uio *uio, struct ucred *active_cred, + int flags, int ioflag, struct thread *td) +{ + struct vnode *vp; + int error, vfslocked; + + vp = fp->f_vnode; + + vfslocked = VFS_LOCK_GIANT(vp->v_mount); + vn_lock(vp, LK_SHARED | LK_RETRY); + + ioflag |= sequential_heuristic(uio, fp); + +#ifdef MAC + error = mac_vnode_check_read(active_cred, fp->f_cred, vp); + if (error == 0) +#endif + error = VOP_READ(vp, uio, ioflag, fp->f_cred); + fp->f_nextoff = uio->uio_offset; + VOP_UNLOCK(vp, 0); + VFS_UNLOCK_GIANT(vfslocked); + return (error); +} + /* * File table vnode read routine. */ static int -vn_read(fp, uio, active_cred, flags, td) - struct file *fp; - struct uio *uio; - struct ucred *active_cred; - struct thread *td; - int flags; +vn_read(struct file *fp, struct uio *uio, struct ucred *active_cred, int flags, + struct thread *td) { struct vnode *vp; - int error, ioflag; + vm_page_t m_hold[uio_hold_pages]; struct mtx *mtxp; - int vfslocked; + struct rl_q_entry rl_entry; + void *rl_cookie; + int ioflag; + int error; KASSERT(uio->uio_td == td, ("uio_td %p is not td %p", uio->uio_td, td)); - mtxp = NULL; - vp = fp->f_vnode; ioflag = 0; if (fp->f_flag & FNONBLOCK) ioflag |= IO_NDELAY; if (fp->f_flag & O_DIRECT) ioflag |= IO_DIRECT; - vfslocked = VFS_LOCK_GIANT(vp->v_mount); + vp = fp->f_vnode; + /* * According to McKusick the vn lock was protecting f_offset here. * It is now protected by the FOFFSET_LOCKED flag. */ if ((flags & FOF_OFFSET) == 0) { - mtxp = mtx_pool_find(mtxpool_sleep, fp); - mtx_lock(mtxp); - while(fp->f_vnread_flags & FOFFSET_LOCKED) { - fp->f_vnread_flags |= FOFFSET_LOCK_WAITING; - msleep(&fp->f_vnread_flags, mtxp, PUSER -1, - "vnread offlock", 0); - } - fp->f_vnread_flags |= FOFFSET_LOCKED; - mtx_unlock(mtxp); - vn_lock(vp, LK_SHARED | LK_RETRY); + mtxp = vn_lock_foffset(fp); uio->uio_offset = fp->f_offset; } else - vn_lock(vp, LK_SHARED | LK_RETRY); + mtxp = NULL; /* gcc */ + if (vp->v_type == VREG) + rl_cookie = rangelock_rlock(vp, &rl_entry, uio->uio_offset, + uio->uio_resid); + else + rl_cookie = NULL; + error = do_vn_rw_chunked(fp, uio, active_cred, flags, ioflag, td, + m_hold, vn_read_wired_chunk); + if (rl_cookie != NULL) + rangelock_unlock(vp, rl_cookie); + if ((flags & FOF_OFFSET) == 0) { + fp->f_offset = uio->uio_offset; + vn_unlock_foffset(fp, mtxp); + } + return (error); +} - ioflag |= sequential_heuristic(uio, fp); +static inline int +vn_write_wired_chunk(struct file *fp, struct uio *uio, + struct ucred *active_cred, int flags, int ioflag, struct thread *td) +{ + struct mount *mp; + struct vnode *vp; + int error, vfslocked; + mp = NULL; + vp = fp->f_vnode; + vfslocked = VFS_LOCK_GIANT(vp->v_mount); + if (vp->v_type == VREG) + bwillwrite(); + if (vp->v_type != VCHR) { + error = vn_start_write(vp, &mp, V_WAIT | PCATCH); + if (error != 0) + goto unlock; + } + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); + if ((flags & FOF_OFFSET) == 0) + uio->uio_offset = fp->f_offset; + ioflag |= sequential_heuristic(uio, fp); #ifdef MAC - error = mac_vnode_check_read(active_cred, fp->f_cred, vp); + error = mac_vnode_check_write(active_cred, fp->f_cred, vp); if (error == 0) #endif - error = VOP_READ(vp, uio, ioflag, fp->f_cred); - if ((flags & FOF_OFFSET) == 0) { + error = VOP_WRITE(vp, uio, ioflag, fp->f_cred); + if ((flags & FOF_OFFSET) == 0) fp->f_offset = uio->uio_offset; - mtx_lock(mtxp); - if (fp->f_vnread_flags & FOFFSET_LOCK_WAITING) - wakeup(&fp->f_vnread_flags); - fp->f_vnread_flags = 0; - mtx_unlock(mtxp); - } fp->f_nextoff = uio->uio_offset; VOP_UNLOCK(vp, 0); + if (vp->v_type != VCHR) + vn_finished_write(mp); +unlock: VFS_UNLOCK_GIANT(vfslocked); return (error); } @@ -555,24 +738,18 @@ vn_read(fp, uio, active_cred, flags, td) * File table vnode write routine. */ static int -vn_write(fp, uio, active_cred, flags, td) - struct file *fp; - struct uio *uio; - struct ucred *active_cred; - struct thread *td; - int flags; +vn_write(struct file *fp, struct uio *uio, struct ucred *active_cred, int flags, + struct thread *td) { struct vnode *vp; - struct mount *mp; - int error, ioflag; - int vfslocked; + vm_page_t m_hold[uio_hold_pages]; + struct rl_q_entry rl_entry; + void *rl_cookie; + int ioflag, error; KASSERT(uio->uio_td == td, ("uio_td %p is not td %p", uio->uio_td, td)); vp = fp->f_vnode; - vfslocked = VFS_LOCK_GIANT(vp->v_mount); - if (vp->v_type == VREG) - bwillwrite(); ioflag = IO_UNIT; if (vp->v_type == VREG && (fp->f_flag & O_APPEND)) ioflag |= IO_APPEND; @@ -583,27 +760,23 @@ vn_write(fp, uio, active_cred, flags, td) if ((fp->f_flag & O_FSYNC) || (vp->v_mount && (vp->v_mount->mnt_flag & MNT_SYNCHRONOUS))) ioflag |= IO_SYNC; - mp = NULL; - if (vp->v_type != VCHR && - (error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) - goto unlock; - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); - if ((flags & FOF_OFFSET) == 0) - uio->uio_offset = fp->f_offset; - ioflag |= sequential_heuristic(uio, fp); -#ifdef MAC - error = mac_vnode_check_write(active_cred, fp->f_cred, vp); - if (error == 0) -#endif - error = VOP_WRITE(vp, uio, ioflag, fp->f_cred); - if ((flags & FOF_OFFSET) == 0) - fp->f_offset = uio->uio_offset; - fp->f_nextoff = uio->uio_offset; - VOP_UNLOCK(vp, 0); - if (vp->v_type != VCHR) - vn_finished_write(mp); -unlock: - VFS_UNLOCK_GIANT(vfslocked); + if (vp->v_type == VREG) { + if ((ioflag & IO_APPEND) || !(flags & FOF_OFFSET)) + /* + * For appenders, punt and lock the whole + * range. It also protects f_offset. + */ + rl_cookie = rangelock_wlock(vp, &rl_entry, + 0, (size_t)-1); + else + rl_cookie = rangelock_wlock(vp, &rl_entry, + uio->uio_offset, uio->uio_resid); + } else + rl_cookie = NULL; + error = do_vn_rw_chunked(fp, uio, active_cred, flags, ioflag, td, + m_hold, vn_write_wired_chunk); + if (rl_cookie != NULL) + rangelock_unlock(vp, rl_cookie); return (error); } diff --git a/sys/modules/cxgb/tom/Makefile b/sys/modules/cxgb/tom/Makefile index 2b8750a..d2566fd 100644 --- a/sys/modules/cxgb/tom/Makefile +++ b/sys/modules/cxgb/tom/Makefile @@ -5,7 +5,7 @@ CXGB = ${.CURDIR}/../../../dev/cxgb KMOD= tom SRCS= cxgb_tom.c cxgb_cpl_io.c cxgb_listen.c cxgb_tom_sysctl.c cxgb_cpl_socket.c -SRCS+= cxgb_ddp.c cxgb_vm.c cxgb_l2t.c cxgb_tcp_offload.c +SRCS+= cxgb_ddp.c cxgb_l2t.c cxgb_tcp_offload.c SRCS+= opt_compat.h opt_inet.h opt_inet6.h opt_ipsec.h opt_mac.h SRCS+= opt_tcpdebug.h opt_ddb.h opt_sched.h opt_global.h opt_ktr.h SRCS+= device_if.h bus_if.h pci_if.h diff --git a/sys/sys/proc.h b/sys/sys/proc.h index dd3e0b2..a549e70 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -234,6 +234,7 @@ struct thread { struct file *td_fpop; /* (k) file referencing cdev under op */ int td_dbgflags; /* (c) Userland debugger flags */ struct osd td_osd; /* (k) Object specific data. */ + vm_offset_t td_faultaddr; /* (k) fault address for TDP_VMUIODEADLK */ #define td_endzero td_base_pri /* Copied during fork1() or thread_sched_upcall(). */ @@ -351,7 +352,7 @@ do { \ #define TDP_COWINPROGRESS 0x00000010 /* Snapshot copy-on-write in progress. */ #define TDP_ALTSTACK 0x00000020 /* Have alternate signal stack. */ #define TDP_DEADLKTREAT 0x00000040 /* Lock aquisition - deadlock treatment. */ -#define TDP_UNUSED80 0x00000080 /* available. */ +#define TDP_VMUIODEADLK 0x00000080 /* Non-blocking vm_fault required. */ #define TDP_NOSLEEPING 0x00000100 /* Thread is not allowed to sleep on a sq. */ #define TDP_OWEUPC 0x00000200 /* Call addupc() at next AST. */ #define TDP_ITHREAD 0x00000400 /* Thread is an interrupt thread. */ diff --git a/sys/sys/rangelock.h b/sys/sys/rangelock.h new file mode 100644 index 0000000..4a5ac1e --- /dev/null +++ b/sys/sys/rangelock.h @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2009 Konstantin Belousov + * All rights reserved. + * + * $FreeBSD$ + */ + +#ifndef _SYS_RANGELOCK_H +#define _SYS_RANGELOCK_H + +#include +#include +#include +#include +#include + +#ifdef _KERNEL + +struct vnode; + +struct rl_q_entry +{ + TAILQ_ENTRY(rl_q_entry) rl_q_link; + size_t rl_q_start, rl_q_end; + int rl_q_flags; +}; + +#define RL_LOCK_READ 0x0001 +#define RL_LOCK_WRITE 0x0002 +#define RL_LOCK_TYPE_MASK 0x0003 +#define RL_LOCK_GRANTED 0x0004 + +struct rangelock +{ + TAILQ_HEAD(, rl_q_entry) rl_waiters; + struct rl_q_entry *rl_currdep; +}; + +void rangelock_init(struct rangelock *lock); +void rangelock_destroy(struct rangelock *lock); +void rangelock_unlock(struct vnode *vp, void *cookie); +void *rangelock_unlock_range(struct vnode *vp, void *cookie, off_t base, + size_t len); +void *rangelock_rlock(struct vnode *vp, struct rl_q_entry *entry, + off_t base, size_t len); +void *rangelock_wlock(struct vnode *vp, struct rl_q_entry *entry, + off_t base, size_t len); +#endif + +#endif diff --git a/sys/sys/uio.h b/sys/sys/uio.h index 871f93a..fe1f23b 100644 --- a/sys/sys/uio.h +++ b/sys/sys/uio.h @@ -100,6 +100,7 @@ int uiomove_frombuf(void *buf, int buflen, struct uio *uio); int uiomove_fromphys(struct vm_page *ma[], vm_offset_t offset, int n, struct uio *uio); int uiomoveco(void *cp, int n, struct uio *uio, int disposable); +void fwduio(struct uio *uip, int cnt); #else /* !_KERNEL */ diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index 0a3d1dc..af760a5 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -168,7 +169,8 @@ struct vnode { */ struct vpollinfo *v_pollinfo; /* G Poll events, p for *v_pi */ struct label *v_label; /* MAC label for vnode */ - struct lockf *v_lockf; /* Byte-level lock list */ + struct lockf *v_lockf; /* Byte-level adv lock list */ + struct rangelock v_rl; /* Byte-range lock */ }; #endif /* defined(_KERNEL) || defined(_KVM_VNODE) */ diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index 1abb994..2db5a25 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -632,8 +632,8 @@ ffs_write(ap) struct buf *bp; struct thread *td; ufs_lbn_t lbn; - off_t osize; - int seqcount; + off_t osize, s_size; + int seqcount, s_resid; int blkoffset, error, flags, ioflag, resid, size, xfersize; vp = ap->a_vp; @@ -707,6 +707,7 @@ ffs_write(ap) lbn = lblkno(fs, uio->uio_offset); blkoffset = blkoff(fs, uio->uio_offset); xfersize = fs->fs_bsize - blkoffset; + s_size = ip->i_size; if (uio->uio_resid < xfersize) xfersize = uio->uio_resid; if (uio->uio_offset + xfersize > ip->i_size) @@ -734,8 +735,10 @@ ffs_write(ap) * the prior contents of the pages exposed to a userland * mmap(). XXX deal with uiomove() errors a better way. */ - if ((bp->b_flags & B_CACHE) == 0 && fs->fs_bsize <= xfersize) + if ((bp->b_flags & B_CACHE) == 0 /*&& fs->fs_bsize <= xfersize*/) { vfs_bio_clrbuf(bp); + flags |= BA_CLRBUF; + } if (ioflag & IO_DIRECT) bp->b_flags |= B_DIRECT; if ((ioflag & (IO_SYNC|IO_INVAL)) == (IO_SYNC|IO_INVAL)) @@ -750,6 +753,7 @@ ffs_write(ap) if (size < xfersize) xfersize = size; + s_resid = uio->uio_resid; error = uiomove((char *)bp->b_data + blkoffset, (int)xfersize, uio); if ((ioflag & (IO_VMIO|IO_DIRECT)) && @@ -757,6 +761,39 @@ ffs_write(ap) bp->b_flags |= B_RELBUF; } + if (error == ERESTART && !(flags & BA_CLRBUF)) { + /* + * When uiomove() failed due to vm_fault + * cowardly refused to process a dangerous + * page-in, and the previous content of the + * buffer is garbage, e.g. because supposed + * transfer length was big enough to cover the + * whole buffer, discard it. + */ + if (LIST_EMPTY(&bp->b_dep)) { + bp->b_flags |= B_RELBUF | B_NOCACHE | B_INVAL; + brelse(bp); + } else { + /* + * But cannot discard the buffer with + * dependencies. Since the buffer is + * newly allocated, fill it with + * zeros. If the buffer extended the + * file, truncate. + */ + vfs_bio_clrbuf(bp); + if (ioflag & IO_SYNC) + bwrite(bp); + else + bawrite(bp); + ffs_truncate(vp, s_size, + IO_NORMAL | (ioflag & IO_SYNC), ap->a_cred, + uio->uio_td); + } + fwduio(uio, uio->uio_resid - s_resid); + break; + } + /* * If IO_SYNC each buffer is written synchronously. Otherwise * if we have a severe page deficiency write the buffer @@ -806,8 +843,7 @@ ffs_write(ap) (void)ffs_truncate(vp, osize, IO_NORMAL | (ioflag & IO_SYNC), ap->a_cred, uio->uio_td); - uio->uio_offset -= resid - uio->uio_resid; - uio->uio_resid = resid; + fwduio(uio, uio->uio_resid - resid); } } else if (resid > uio->uio_resid && (ioflag & IO_SYNC)) error = ffs_update(vp, 1); diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h index 475a20e..f2b4d16 100644 --- a/sys/vm/vm_extern.h +++ b/sys/vm/vm_extern.h @@ -34,11 +34,13 @@ #define _VM_EXTERN_H_ struct buf; +struct iovec; struct proc; struct vmspace; struct vmtotal; struct mount; struct vnode; +struct uio; #ifdef _KERNEL @@ -56,6 +58,9 @@ void swapout_procs(int); int useracc(void *, int, int); int vm_fault(vm_map_t, vm_offset_t, vm_prot_t, int); void vm_fault_copy_entry(vm_map_t, vm_map_t, vm_map_entry_t, vm_map_entry_t); +int vm_fault_hold_user_pages(vm_map_t map, vm_offset_t addr, + vm_page_t *mp, int count, vm_prot_t prot); +void vm_fault_unhold_pages(vm_page_t *mp, int count); void vm_fault_unwire(vm_map_t, vm_offset_t, vm_offset_t, boolean_t); int vm_fault_wire(vm_map_t, vm_offset_t, vm_offset_t, boolean_t, boolean_t); int vm_forkproc(struct thread *, struct proc *, struct thread *, struct vmspace *, int); @@ -84,5 +89,9 @@ int vm_thread_new(struct thread *td, int pages); int vm_thread_new_altkstack(struct thread *td, int pages); void vm_thread_swapin(struct thread *td); void vm_thread_swapout(struct thread *td); +int vm_wireuio(struct uio *uiop, struct vm_page *m_hold[], int wire_bytes, + int *wired_pages); +void vm_unwireuio(struct uio *, struct vm_page *m_hold[], int wired_pages); + #endif /* _KERNEL */ #endif /* !_VM_EXTERN_H_ */ diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 3a21616..a58460c 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -1,4 +1,31 @@ + /*- + +Copyright (c) 2007-2008, Chelsio Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Neither the name of the Chelsio Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * Copyright (c) 1994 John S. Dyson @@ -206,9 +233,9 @@ unlock_and_deallocate(struct faultstate *fs) * The map in question must be referenced, and remains so. * Caller may hold no locks. */ -int -vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, - int fault_flags) +static int +vm_fault_hold(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, + int fault_flags, struct vm_page **m_hold) { vm_prot_t prot; int is_first_object_locked, result; @@ -220,8 +247,15 @@ vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, int faultcount, ahead, behind; struct faultstate fs; struct vnode *vp; + struct thread *td; int locked, error; + td = curthread; + if (td->td_pflags & TDP_VMUIODEADLK) { + td->td_faultaddr = vaddr; + return (KERN_VMUIODEADLOCK); + } + hardfault = 0; growstack = TRUE; PCPU_INC(cnt.v_vm_faults); @@ -949,6 +983,10 @@ vnode_locked: } else { vm_page_activate(fs.m); } + if (m_hold != NULL) { + *m_hold = fs.m; + vm_page_hold(fs.m); + } vm_page_unlock_queues(); vm_page_wakeup(fs.m); @@ -964,6 +1002,14 @@ vnode_locked: return (KERN_SUCCESS); } +int +vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, + int fault_flags) +{ + + return (vm_fault_hold(map, vaddr, fault_type, fault_flags, NULL)); +} + /* * vm_fault_prefault provides a quick way of clustering * pagefaults into a processes address space. It is a "cousin" @@ -1360,3 +1406,108 @@ vm_fault_additional_pages(m, rbehind, rahead, marray, reqpage) /* return number of pages */ return i; } + +/* + * This routine takes a user's map, array of pages, number of pages, and flags + * and then does the following: + * - validate that the user has access to those pages (flags indicates read + * or write) - if not fail + * - validate that count is enough to hold range number of pages - if not fail + * - fault in any non-resident pages + * - if the user is doing a read force a write fault for any COWed pages + * - if the user is doing a read mark all pages as dirty + * - hold all pages + */ +int +vm_fault_hold_user_pages(vm_map_t map, vm_offset_t addr, vm_page_t *mp, + int count, vm_prot_t prot) +{ + vm_offset_t end, va; + int faults, rv; + pmap_t pmap; + vm_page_t m, *pages; + + pmap = vm_map_pmap(map); + pages = mp; + addr &= ~PAGE_MASK; + + /* + * Check that virtual address range is legal. + * This check is somewhat bogus as on some architectures kernel + * and user do not share VA - however, it appears that all FreeBSD + * architectures define it + */ + end = addr + (count * PAGE_SIZE); + if (end > VM_MAXUSER_ADDRESS) + return (EFAULT); + + /* + * First optimistically assume that all pages are resident + * (and R/W if for write) if so just mark pages as held (and + * dirty if for write) and return. + */ + vm_page_lock_queues(); + for (pages = mp, faults = 0, va = addr; va < end; + va += PAGE_SIZE, pages++) { + /* + * Page queue mutex is recursable so this is OK. + * It would be really nice if we had an unlocked + * version of this so we were only acquiring the + * pmap lock 1 time as opposed to potentially + * many dozens of times. + */ + *pages = m = pmap_extract_and_hold(pmap, va, prot); + if (m == NULL) { + faults++; + continue; + } + + /* + * Preemptively mark dirty - the pages will never have + * the modified bit set if they are only changed via + * DMA. + */ + if (prot & VM_PROT_WRITE) + vm_page_dirty(m); + } + vm_page_unlock_queues(); + + if (faults == 0) + return (0); + + /* + * Pages either have insufficient permissions or are not present + * trigger a fault where neccessary. + */ + rv = 0; + for (pages = mp, va = addr; va < end; va += PAGE_SIZE, pages++) { + rv = vm_fault_hold(map, va, prot, (prot & VM_PROT_WRITE) ? + VM_FAULT_DIRTY : VM_FAULT_NORMAL, pages); + if (rv) + goto error; + } + return (0); + +error: + vm_page_lock_queues(); + for (pages = mp, va = addr; va < end; va += PAGE_SIZE, pages++) + if (*pages) { + vm_page_unhold(*pages); + *pages = NULL; + } + vm_page_unlock_queues(); + return (EFAULT); +} + +void +vm_fault_unhold_pages(vm_page_t *mp, int count) +{ + + KASSERT(count >= 0, ("negative count %d", count)); + vm_page_lock_queues(); + while (count--) { + vm_page_unhold(*mp); + mp++; + } + vm_page_unlock_queues(); +} diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index 96fe61b..20dd38f 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -356,7 +356,7 @@ retry: vm_page_unlock_queues(); } VM_OBJECT_UNLOCK(kmem_object); - vm_map_delete(map, addr, addr + size); + vm_map_delete(map, addr, addr + size, FALSE); vm_map_unlock(map); return (0); } @@ -380,11 +380,6 @@ retry: panic("kmem_malloc: entry not found or misaligned"); entry->wired_count = 1; - /* - * At this point, the kmem_object must be unlocked because - * vm_map_simplify_entry() calls vm_object_deallocate(), which - * locks the kmem_object. - */ vm_map_simplify_entry(map, entry); /* @@ -458,7 +453,8 @@ kmem_free_wakeup(map, addr, size) { vm_map_lock(map); - (void) vm_map_delete(map, trunc_page(addr), round_page(addr + size)); + (void) vm_map_delete(map, trunc_page(addr), round_page(addr + size), + FALSE); if (map->needs_wakeup) { map->needs_wakeup = FALSE; vm_map_wakeup(map); diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 32fdfde..3f19a49 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -454,26 +454,50 @@ _vm_map_lock(vm_map_t map, const char *file, int line) } void -_vm_map_unlock(vm_map_t map, const char *file, int line) +_vm_map_unlock(vm_map_t map, boolean_t process_freelist, const char *file, + int line) { vm_map_entry_t free_entry, entry; vm_object_t object; + struct vnode *vp; + struct mount *mp; - free_entry = map->deferred_freelist; - map->deferred_freelist = NULL; + free_entry = NULL; /* to please gcc */ + if (process_freelist) { + free_entry = map->deferred_freelist; + map->deferred_freelist = NULL; + } if (map->system_map) _mtx_unlock_flags(&map->system_mtx, 0, file, line); else _sx_xunlock(&map->lock, file, line); + if (!process_freelist) + return; + while (free_entry != NULL) { entry = free_entry; free_entry = free_entry->next; + KASSERT((entry->eflags & MAP_ENTRY_LINKED) == 0 && + (entry->eflags & MAP_ENTRY_UNLINKED) != 0 && + (entry->eflags & MAP_ENTRY_ON_FREELIST) != 0, + ("vm_map_unlock: eflags %p", entry)); + if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { object = entry->object.vm_object; + mp = NULL; + if (entry->eflags & MAP_ENTRY_VN_WRITECNT) { + vp = object->handle; + vn_start_write(vp, &mp, V_WAIT); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); + vp->v_writecount--; + VOP_UNLOCK(vp, 0); + } vm_object_deallocate(object); + if (mp != NULL) + vn_finished_write(mp); } vm_map_entry_dispose(map, entry); @@ -630,7 +654,7 @@ vm_map_unlock_and_wait(vm_map_t map, int timo) { mtx_lock(&map_sleep_mtx); - vm_map_unlock(map); + _vm_map_unlock(map, FALSE, LOCK_FILE, LOCK_LINE); return (msleep(&map->root, &map_sleep_mtx, PDROP | PVM, "vmmaps", timo)); } @@ -692,6 +716,9 @@ _vm_map_init(vm_map_t map, vm_offset_t min, vm_offset_t max) { map->header.next = map->header.prev = &map->header; +#ifdef INVARIANTS + map->header.eflags = MAP_ENTRY_LINKED; +#endif map->needs_wakeup = FALSE; map->system_map = 0; map->min_offset = min; @@ -742,6 +769,135 @@ vm_map_entry_create(vm_map_t map) } /* + * vm_map_entry_inc_vn_wcnt: [ internal use only ] + * + * Increments v_writecount for the vnode that backs writeable + * mapping by the entry. To satisfy lock order between map lock + * and vnode lock, map lock might be dropped. In this case, the + * entry is marked as in transition to prevent entry removal. + + * The increment is postponed for the map entry that is in + * transition, when the transition was not set by the caller. In + * this case, MAP_ENTRY_VN_WRITECNT flag is transfered to + * MAP_ENTRY_DEFER_WRITECNT, and the owner of the transition + * state should call this function before lifting the + * MAP_ENTRY_IN_TRANSITION flag. + * + * When called from vm_map_clip_start of vm_map_entry_clip_end + * and going to drop the map lock, protect both the entry and the + * second part of the clipped region, that is passed in the + * neighbour parameter. + */ +static void +vm_map_entry_inc_vn_wcnt(vm_map_t map, vm_map_entry_t entry, + vm_map_entry_t neighbour, boolean_t transition_owner) +{ + struct vnode *vp; + vm_offset_t start, end, n_start, n_end; + boolean_t clear_transition, need_wakeup; + int last_timestamp; + + VM_MAP_ASSERT_LOCKED(map); + KASSERT((entry->eflags & MAP_ENTRY_LINKED) != 0 && + (entry->eflags & MAP_ENTRY_UNLINKED) == 0 && + (entry->eflags & MAP_ENTRY_ON_FREELIST) == 0, + ("vm_map_entry_inc_vn_wcnt: eflags1 %p", entry)); + KASSERT(neighbour == NULL || entry->eflags == neighbour->eflags, + ("vm_map_entry_inc_vn_wcnt: wrong neighbour")); + + if ((entry->eflags & (MAP_ENTRY_VN_WRITECNT | + MAP_ENTRY_DEFER_WRITECNT)) == 0) + return; + KASSERT((entry->eflags & MAP_ENTRY_VN_WRITECNT) == 0 || + (entry->eflags & MAP_ENTRY_DEFER_WRITECNT) == 0, + ("vm_map_entry_inc_vn_wcnt: both %p", entry)); + KASSERT(!transition_owner || + (entry->eflags & MAP_ENTRY_IN_TRANSITION) != 0, + ("transition_owner but no transition %p", entry)); + if (!transition_owner && + (entry->eflags & MAP_ENTRY_IN_TRANSITION) != 0) { + if ((entry->eflags & MAP_ENTRY_VN_WRITECNT) != 0) { + entry->eflags &= ~MAP_ENTRY_VN_WRITECNT; + entry->eflags |= MAP_ENTRY_DEFER_WRITECNT; + } + return; + } + if ((entry->eflags & MAP_ENTRY_IN_TRANSITION) != 0) { + KASSERT(transition_owner, ("not transition owner %p", entry)); + clear_transition = FALSE; + } else { + clear_transition = TRUE; + entry->eflags |= MAP_ENTRY_IN_TRANSITION; + if (neighbour != NULL) + neighbour->eflags |= MAP_ENTRY_IN_TRANSITION; + } + start = entry->start; + end = entry->end; + if (neighbour != NULL) { + n_start = neighbour->start; + n_end = neighbour->end; + } else + n_start = n_end = 0; + vp = entry->object.vm_object->handle; + vhold(vp); + if (vn_lock(vp, LK_EXCLUSIVE | LK_NOWAIT) == 0) + goto incr; + last_timestamp = map->timestamp; + vm_map_unlock(map); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); + vm_map_lock(map); + if (last_timestamp + 1 != map->timestamp) { + if (!vm_map_lookup_entry(map, start, &entry)) + panic("vm_map_entry_inc_vn_wcnt: lost entry"); + if (clear_transition && neighbour != NULL && + !vm_map_lookup_entry(map, n_start, &neighbour)) + panic("vm_map_entry_inc_vn_wcnt: lost neighbour entry"); + } +incr: + for (need_wakeup = FALSE; entry != &map->header && entry->start < end; + entry = entry->next) { + /* + * Only clipping is allowed for an entry marked as in + * transition. Make a single pass to increment + * v_writecount for all clip splinters and fix their + * flags accordingly. + */ + KASSERT(entry->object.vm_object != NULL && + entry->object.vm_object->type == OBJT_VNODE && + entry->object.vm_object->handle == (void *)vp, + ("vm_map_entry_inc_vn_wcnt: not a clip")); + KASSERT((entry->eflags & MAP_ENTRY_LINKED) != 0 && + (entry->eflags & MAP_ENTRY_UNLINKED) == 0 && + (entry->eflags & MAP_ENTRY_ON_FREELIST) == 0, + ("vm_map_entry_inc_vn_wcnt: eflags2 %p", entry)); + vp->v_writecount += 1; + entry->eflags &= ~MAP_ENTRY_DEFER_WRITECNT; + entry->eflags |= MAP_ENTRY_VN_WRITECNT; + if (clear_transition) { + if (entry->eflags & MAP_ENTRY_NEEDS_WAKEUP) { + entry->eflags &= ~MAP_ENTRY_NEEDS_WAKEUP; + need_wakeup = TRUE; + } + entry->eflags &= ~MAP_ENTRY_IN_TRANSITION; + } + } + VOP_UNLOCK(vp, 0); + vdrop(vp); + if (clear_transition && neighbour != NULL) { + for (; neighbour != &map->header && neighbour->start < n_end; + neighbour = neighbour->next) { + if (neighbour->eflags & MAP_ENTRY_NEEDS_WAKEUP) { + neighbour->eflags &= ~MAP_ENTRY_NEEDS_WAKEUP; + need_wakeup = TRUE; + } + neighbour->eflags &= ~MAP_ENTRY_IN_TRANSITION; + } + } + if (need_wakeup) + vm_map_wakeup(map); +} + +/* * vm_map_entry_set_behavior: * * Set the expected access behavior, either normal, random, or @@ -919,6 +1075,9 @@ vm_map_entry_link(vm_map_t map, entry->next->start) - entry->end; vm_map_entry_set_max_free(entry); map->root = entry; +#ifdef INVARIANTS + entry->eflags |= MAP_ENTRY_LINKED; +#endif } static void @@ -928,6 +1087,11 @@ vm_map_entry_unlink(vm_map_t map, vm_map_entry_t next, prev, root; VM_MAP_ASSERT_LOCKED(map); + KASSERT((entry->eflags & MAP_ENTRY_LINKED) != 0 && + (entry->eflags & MAP_ENTRY_UNLINKED) == 0 && + (entry->eflags & MAP_ENTRY_ON_FREELIST) == 0, + ("vm_map_entry_unlink: eflags %p", entry)); + if (entry != map->root) vm_map_entry_splay(entry->start, map->root); if (entry->left == NULL) @@ -948,6 +1112,10 @@ vm_map_entry_unlink(vm_map_t map, map->nentries--; CTR3(KTR_VM, "vm_map_entry_unlink: map %p, nentries %d, entry %p", map, map->nentries, entry); +#ifdef INVARIANTS + entry->eflags &= ~MAP_ENTRY_LINKED; + entry->eflags |= MAP_ENTRY_UNLINKED; +#endif } /* @@ -1005,6 +1173,10 @@ vm_map_lookup_entry( *entry = &map->header; else if (address >= cur->start && cur->end > address) { *entry = cur; + KASSERT(((*entry)->eflags & MAP_ENTRY_LINKED) != 0 && + ((*entry)->eflags & MAP_ENTRY_UNLINKED) == 0 && + ((*entry)->eflags & MAP_ENTRY_ON_FREELIST) == 0, + ("vm_map_lookup_entry: eflags %p", *entry)); return (TRUE); } else if ((locked = vm_map_locked(map)) || sx_try_upgrade(&map->lock)) { @@ -1025,6 +1197,10 @@ vm_map_lookup_entry( */ if (address >= cur->start) { *entry = cur; + KASSERT(((*entry)->eflags & MAP_ENTRY_LINKED) != 0 && + ((*entry)->eflags & MAP_ENTRY_UNLINKED) == 0 && + ((*entry)->eflags & MAP_ENTRY_ON_FREELIST) == 0, + ("vm_map_lookup_entry: eflags %p", *entry)); if (cur->end > address) return (TRUE); } else @@ -1043,6 +1219,10 @@ vm_map_lookup_entry( cur = cur->left; } else if (cur->end > address) { *entry = cur; + KASSERT(((*entry)->eflags & MAP_ENTRY_LINKED) != 0 && + ((*entry)->eflags & MAP_ENTRY_UNLINKED) == 0 && + ((*entry)->eflags & MAP_ENTRY_ON_FREELIST) == 0, + ("vm_map_lookup_entry: eflags %p", *entry)); return (TRUE); } else { if (cur->right == NULL) { @@ -1052,6 +1232,10 @@ vm_map_lookup_entry( cur = cur->right; } } + KASSERT(((*entry)->eflags & MAP_ENTRY_LINKED) != 0 && + ((*entry)->eflags & MAP_ENTRY_UNLINKED) == 0 && + ((*entry)->eflags & MAP_ENTRY_ON_FREELIST) == 0, + ("vm_map_lookup_entry: eflags %p", *entry)); return (FALSE); } @@ -1076,6 +1260,7 @@ vm_map_insert(vm_map_t map, vm_object_t object, vm_ooffset_t offset, vm_map_entry_t prev_entry; vm_map_entry_t temp_entry; vm_eflags_t protoeflags; + struct vnode *vp; VM_MAP_ASSERT_LOCKED(map); @@ -1189,12 +1374,21 @@ vm_map_insert(vm_map_t map, vm_object_t object, vm_ooffset_t offset, new_entry->protection = prot; new_entry->max_protection = max; new_entry->wired_count = 0; + new_entry->pin_count = 0; /* * Insert the new entry into the list */ vm_map_entry_link(map, prev_entry, new_entry); map->size += new_entry->end - new_entry->start; + if (object != NULL && object->type == OBJT_VNODE && + (new_entry->max_protection & VM_PROT_WRITE) != 0 && + (cow & MAP_COPY_ON_WRITE) == 0) { + vp = object->handle; + ASSERT_VOP_ELOCKED(vp, "vm_map_insert inc v_writecount"); + vp->v_writecount++; + new_entry->eflags |= MAP_ENTRY_VN_WRITECNT; + } #if 0 /* @@ -1321,7 +1515,7 @@ vm_map_fixed(vm_map_t map, vm_object_t object, vm_ooffset_t offset, end = start + length; vm_map_lock(map); VM_MAP_RANGE_CHECK(map, start, end); - (void) vm_map_delete(map, start, end); + (void) vm_map_delete(map, start, end, TRUE); result = vm_map_insert(map, object, offset, start, end, prot, max, cow); vm_map_unlock(map); @@ -1384,6 +1578,11 @@ vm_map_simplify_entry(vm_map_t map, vm_map_entry_t entry) vm_map_entry_t next, prev; vm_size_t prevsize, esize; + KASSERT((entry->eflags & MAP_ENTRY_LINKED) != 0 && + (entry->eflags & MAP_ENTRY_UNLINKED) == 0 && + (entry->eflags & MAP_ENTRY_ON_FREELIST) == 0, + ("vm_map_simplify_entry: eflags %p", entry)); + if (entry->eflags & (MAP_ENTRY_IN_TRANSITION | MAP_ENTRY_IS_SUB_MAP)) return; @@ -1398,25 +1597,19 @@ vm_map_simplify_entry(vm_map_t map, vm_map_entry_t entry) (prev->protection == entry->protection) && (prev->max_protection == entry->max_protection) && (prev->inheritance == entry->inheritance) && - (prev->wired_count == entry->wired_count)) { + (prev->wired_count == entry->wired_count) && + (prev->pin_count == entry->pin_count)) { vm_map_entry_unlink(map, prev); entry->start = prev->start; entry->offset = prev->offset; if (entry->prev != &map->header) vm_map_entry_resize_free(map, entry->prev); - /* - * If the backing object is a vnode object, - * vm_object_deallocate() calls vrele(). - * However, vrele() does not lock the vnode - * because the vnode has additional - * references. Thus, the map lock can be kept - * without causing a lock-order reversal with - * the vnode lock. - */ - if (prev->object.vm_object) - vm_object_deallocate(prev->object.vm_object); - vm_map_entry_dispose(map, prev); + prev->next = map->deferred_freelist; + map->deferred_freelist = prev; +#ifdef INVARIANTS + prev->eflags |= MAP_ENTRY_ON_FREELIST; +#endif } } @@ -1431,17 +1624,17 @@ vm_map_simplify_entry(vm_map_t map, vm_map_entry_t entry) (next->protection == entry->protection) && (next->max_protection == entry->max_protection) && (next->inheritance == entry->inheritance) && - (next->wired_count == entry->wired_count)) { + (next->wired_count == entry->wired_count) && + (next->pin_count == entry->pin_count)) { vm_map_entry_unlink(map, next); entry->end = next->end; vm_map_entry_resize_free(map, entry); - /* - * See comment above. - */ - if (next->object.vm_object) - vm_object_deallocate(next->object.vm_object); - vm_map_entry_dispose(map, next); + next->next = map->deferred_freelist; + map->deferred_freelist = next; +#ifdef INVARIANTS + next->eflags |= MAP_ENTRY_ON_FREELIST; +#endif } } } @@ -1452,10 +1645,10 @@ vm_map_simplify_entry(vm_map_t map, vm_map_entry_t entry) * the specified address; if necessary, * it splits the entry into two. */ -#define vm_map_clip_start(map, entry, startaddr) \ +#define vm_map_clip_start(map, entry, startaddr) \ { \ - if (startaddr > entry->start) \ - _vm_map_clip_start(map, entry, startaddr); \ + if (startaddr > (*entry)->start) \ + _vm_map_clip_start(map, entry, startaddr); \ } /* @@ -1463,10 +1656,14 @@ vm_map_simplify_entry(vm_map_t map, vm_map_entry_t entry) * the entry must be split. */ static void -_vm_map_clip_start(vm_map_t map, vm_map_entry_t entry, vm_offset_t start) +_vm_map_clip_start(vm_map_t map, vm_map_entry_t *pentry, vm_offset_t start) { - vm_map_entry_t new_entry; + vm_map_entry_t entry, new_entry; + int last_timestamp; + entry = *pentry; + KASSERT((entry->eflags & MAP_ENTRY_IS_HOLDER) == 0, + ("Holder %p in vm_map_clip_start", entry)); VM_MAP_ASSERT_LOCKED(map); /* @@ -1486,7 +1683,7 @@ _vm_map_clip_start(vm_map_t map, vm_map_entry_t entry, vm_offset_t start) if (entry->object.vm_object == NULL && !map->system_map) { vm_object_t object; object = vm_object_allocate(OBJT_DEFAULT, - atop(entry->end - entry->start)); + atop(entry->end - entry->start)); entry->object.vm_object = object; entry->offset = 0; } @@ -1502,6 +1699,13 @@ _vm_map_clip_start(vm_map_t map, vm_map_entry_t entry, vm_offset_t start) if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { vm_object_reference(new_entry->object.vm_object); + last_timestamp = map->timestamp; + vm_map_entry_inc_vn_wcnt(map, new_entry, entry, FALSE); + if (last_timestamp != map->timestamp && + last_timestamp + 1 != map->timestamp) { + if (!vm_map_lookup_entry(map, start, pentry)) + panic("vm_map_clip_start: lost entry"); + } } } @@ -1514,7 +1718,7 @@ _vm_map_clip_start(vm_map_t map, vm_map_entry_t entry, vm_offset_t start) */ #define vm_map_clip_end(map, entry, endaddr) \ { \ - if ((endaddr) < (entry->end)) \ + if ((endaddr) < ((*entry)->end)) \ _vm_map_clip_end((map), (entry), (endaddr)); \ } @@ -1523,9 +1727,20 @@ _vm_map_clip_start(vm_map_t map, vm_map_entry_t entry, vm_offset_t start) * the entry must be split. */ static void -_vm_map_clip_end(vm_map_t map, vm_map_entry_t entry, vm_offset_t end) +_vm_map_clip_end(vm_map_t map, vm_map_entry_t *pentry, vm_offset_t end) { - vm_map_entry_t new_entry; + vm_map_entry_t entry, new_entry; + int last_timestamp; + vm_offset_t entry_start; + + entry = *pentry; + KASSERT((entry->eflags & MAP_ENTRY_IS_HOLDER) == 0, + ("Holder %p in vm_map_clip_end", entry)); + KASSERT((entry->eflags & MAP_ENTRY_LINKED) != 0 && + (entry->eflags & MAP_ENTRY_UNLINKED) == 0 && + (entry->eflags & MAP_ENTRY_ON_FREELIST) == 0, + ("vm_map_clip_end: eflags %p", entry)); + VM_MAP_ASSERT_LOCKED(map); @@ -1557,6 +1772,14 @@ _vm_map_clip_end(vm_map_t map, vm_map_entry_t entry, vm_offset_t end) if ((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0) { vm_object_reference(new_entry->object.vm_object); + entry_start = entry->start; + last_timestamp = map->timestamp; + vm_map_entry_inc_vn_wcnt(map, new_entry, entry, FALSE); + if (last_timestamp != map->timestamp && + last_timestamp + 1 != map->timestamp) { + if (!vm_map_lookup_entry(map, entry_start, pentry)) + panic("vm_map_clip_end: lost entry"); + } } } @@ -1593,11 +1816,11 @@ vm_map_submap( VM_MAP_RANGE_CHECK(map, start, end); if (vm_map_lookup_entry(map, start, &entry)) { - vm_map_clip_start(map, entry, start); + vm_map_clip_start(map, &entry, start); } else entry = entry->next; - vm_map_clip_end(map, entry, end); + vm_map_clip_end(map, &entry, end); if ((entry->start == start) && (entry->end == end) && ((entry->eflags & MAP_ENTRY_COW) == 0) && @@ -1732,7 +1955,10 @@ vm_map_protect(vm_map_t map, vm_offset_t start, vm_offset_t end, VM_MAP_RANGE_CHECK(map, start, end); if (vm_map_lookup_entry(map, start, &entry)) { - vm_map_clip_start(map, entry, start); + if (entry->eflags & MAP_ENTRY_IS_HOLDER) + entry = entry->next; + else + vm_map_clip_start(map, &entry, start); } else { entry = entry->next; } @@ -1746,7 +1972,8 @@ vm_map_protect(vm_map_t map, vm_offset_t start, vm_offset_t end, vm_map_unlock(map); return (KERN_INVALID_ARGUMENT); } - if ((new_prot & current->max_protection) != new_prot) { + if (!(current->eflags & MAP_ENTRY_IS_HOLDER) && + (new_prot & current->max_protection) != new_prot) { vm_map_unlock(map); return (KERN_PROTECTION_FAILURE); } @@ -1761,7 +1988,12 @@ vm_map_protect(vm_map_t map, vm_offset_t start, vm_offset_t end, while ((current != &map->header) && (current->start < end)) { vm_prot_t old_prot; - vm_map_clip_end(map, current, end); + if (current->eflags & MAP_ENTRY_IS_HOLDER) { + current = current->next; + continue; + } + + vm_map_clip_end(map, ¤t, end); old_prot = current->protection; if (set_max) @@ -1840,8 +2072,12 @@ vm_map_madvise( VM_MAP_RANGE_CHECK(map, start, end); if (vm_map_lookup_entry(map, start, &entry)) { - if (modify_map) - vm_map_clip_start(map, entry, start); + if (modify_map) { + if (entry->eflags & MAP_ENTRY_IS_HOLDER) + entry = entry->next; + else + vm_map_clip_start(map, &entry, start); + } } else { entry = entry->next; } @@ -1857,10 +2093,11 @@ vm_map_madvise( (current != &map->header) && (current->start < end); current = current->next ) { - if (current->eflags & MAP_ENTRY_IS_SUB_MAP) + if ((current->eflags & (MAP_ENTRY_IS_SUB_MAP | + MAP_ENTRY_IS_HOLDER))) continue; - vm_map_clip_end(map, current, end); + vm_map_clip_end(map, ¤t, end); switch (behav) { case MADV_NORMAL: @@ -1907,7 +2144,8 @@ vm_map_madvise( ) { vm_offset_t useStart; - if (current->eflags & MAP_ENTRY_IS_SUB_MAP) + if ((current->eflags & (MAP_ENTRY_IS_SUB_MAP | + MAP_ENTRY_IS_HOLDER))) continue; pindex = OFF_TO_IDX(current->offset); @@ -1969,15 +2207,18 @@ vm_map_inherit(vm_map_t map, vm_offset_t start, vm_offset_t end, } vm_map_lock(map); VM_MAP_RANGE_CHECK(map, start, end); - if (vm_map_lookup_entry(map, start, &temp_entry)) { + if (vm_map_lookup_entry(map, start, &temp_entry) && + (temp_entry->eflags & MAP_ENTRY_IS_HOLDER) == 0) { entry = temp_entry; - vm_map_clip_start(map, entry, start); + vm_map_clip_start(map, &entry, start); } else entry = temp_entry->next; while ((entry != &map->header) && (entry->start < end)) { - vm_map_clip_end(map, entry, end); - entry->inheritance = new_inheritance; - vm_map_simplify_entry(map, entry); + if (!(entry->eflags & MAP_ENTRY_IS_HOLDER)) { + vm_map_clip_end(map, &entry, end); + entry->inheritance = new_inheritance; + vm_map_simplify_entry(map, entry); + } entry = entry->next; } vm_map_unlock(map); @@ -2059,8 +2300,8 @@ vm_map_unwire(vm_map_t map, vm_offset_t start, vm_offset_t end, last_timestamp = map->timestamp; continue; } - vm_map_clip_start(map, entry, start); - vm_map_clip_end(map, entry, end); + vm_map_clip_start(map, &entry, start); + vm_map_clip_end(map, &entry, end); /* * Mark the entry in case the map lock is released. (See * above.) @@ -2100,6 +2341,10 @@ done: } entry = first_entry; while (entry != &map->header && entry->start < end) { + if ((entry->eflags & MAP_ENTRY_IS_HOLDER) != 0) { + entry = entry->next; + continue; + } if (rv == KERN_SUCCESS && (!user_unwire || (entry->eflags & MAP_ENTRY_USER_WIRED))) { if (user_unwire) @@ -2116,6 +2361,8 @@ done: } KASSERT(entry->eflags & MAP_ENTRY_IN_TRANSITION, ("vm_map_unwire: in-transition flag missing")); + if (entry->eflags & MAP_ENTRY_DEFER_WRITECNT) + vm_map_entry_inc_vn_wcnt(map, entry, NULL, TRUE); entry->eflags &= ~MAP_ENTRY_IN_TRANSITION; if (entry->eflags & MAP_ENTRY_NEEDS_WAKEUP) { entry->eflags &= ~MAP_ENTRY_NEEDS_WAKEUP; @@ -2205,8 +2452,8 @@ vm_map_wire(vm_map_t map, vm_offset_t start, vm_offset_t end, last_timestamp = map->timestamp; continue; } - vm_map_clip_start(map, entry, start); - vm_map_clip_end(map, entry, end); + vm_map_clip_start(map, &entry, start); + vm_map_clip_end(map, &entry, end); /* * Mark the entry in case the map lock is released. (See * above.) @@ -2305,6 +2552,10 @@ done: } entry = first_entry; while (entry != &map->header && entry->start < end) { + if ((entry->eflags & MAP_ENTRY_IS_HOLDER) != 0) { + entry = entry->next; + continue; + } if ((entry->eflags & MAP_ENTRY_WIRE_SKIPPED) != 0) goto next_entry_done; if (rv == KERN_SUCCESS) { @@ -2332,6 +2583,8 @@ done: next_entry_done: KASSERT(entry->eflags & MAP_ENTRY_IN_TRANSITION, ("vm_map_wire: in-transition flag missing")); + if (entry->eflags & MAP_ENTRY_DEFER_WRITECNT) + vm_map_entry_inc_vn_wcnt(map, entry, NULL, TRUE); entry->eflags &= ~(MAP_ENTRY_IN_TRANSITION|MAP_ENTRY_WIRE_SKIPPED); if (entry->eflags & MAP_ENTRY_NEEDS_WAKEUP) { entry->eflags &= ~MAP_ENTRY_NEEDS_WAKEUP; @@ -2506,21 +2759,30 @@ vm_map_entry_delete(vm_map_t map, vm_map_entry_t entry) * map. */ int -vm_map_delete(vm_map_t map, vm_offset_t start, vm_offset_t end) +vm_map_delete(vm_map_t map, vm_offset_t start, vm_offset_t end, + boolean_t fixed) { - vm_map_entry_t entry; - vm_map_entry_t first_entry; + vm_map_entry_t entry, first_entry, tmp_entry, holder_entry; + unsigned int last_timestamp; + vm_offset_t saved_start; VM_MAP_ASSERT_LOCKED(map); /* * Find the start of the region, and clip it */ +reclip_start: if (!vm_map_lookup_entry(map, start, &first_entry)) entry = first_entry->next; else { entry = first_entry; - vm_map_clip_start(map, entry, start); + if (entry->eflags & MAP_ENTRY_IS_HOLDER) { + entry->eflags |= MAP_ENTRY_NEEDS_WAKEUP; + (void) vm_map_unlock_and_wait(map, 0); + vm_map_lock(map); + goto reclip_start; + } + vm_map_clip_start(map, &entry, start); } /* @@ -2529,6 +2791,7 @@ vm_map_delete(vm_map_t map, vm_offset_t start, vm_offset_t end) while ((entry != &map->header) && (entry->start < end)) { vm_map_entry_t next; + saved_start = entry->start; /* * Wait for wiring or unwiring of an entry to complete. * Also wait for any system wirings to disappear on @@ -2536,16 +2799,54 @@ vm_map_delete(vm_map_t map, vm_offset_t start, vm_offset_t end) */ if ((entry->eflags & MAP_ENTRY_IN_TRANSITION) != 0 || (vm_map_pmap(map) != kernel_pmap && - vm_map_entry_system_wired_count(entry) != 0)) { - unsigned int last_timestamp; - vm_offset_t saved_start; - vm_map_entry_t tmp_entry; - - saved_start = entry->start; + vm_map_entry_system_wired_count(entry) != 0) || + entry->pin_count != 0) { entry->eflags |= MAP_ENTRY_NEEDS_WAKEUP; last_timestamp = map->timestamp; + + if (start < saved_start && fixed) { + /* + * Create the transient entry that + * holds already freed address space. + */ + holder_entry = vm_map_entry_create(map); + holder_entry->start = start; + holder_entry->end = saved_start; + holder_entry->object.vm_object = NULL; + holder_entry->offset = 0; + holder_entry->eflags = MAP_ENTRY_IN_TRANSITION | + MAP_ENTRY_IS_HOLDER; + holder_entry->protection = VM_PROT_NONE; + holder_entry->max_protection = VM_PROT_NONE; + holder_entry->inheritance = VM_INHERIT_NONE; + holder_entry->wired_count = 0; + holder_entry->pin_count = 0; + vm_map_entry_link(map, entry->prev, holder_entry); + } (void) vm_map_unlock_and_wait(map, 0); vm_map_lock(map); + + if (start < saved_start && fixed) { + + /* + * Holder entry may be clipped, but + * not removed. + */ + if (!vm_map_lookup_entry(map, start, &holder_entry)) + panic("vm_map_delete: lost holder"); + while (holder_entry->start < saved_start) { + tmp_entry = holder_entry->next; + KASSERT(holder_entry->eflags & MAP_ENTRY_IS_HOLDER, + ("vm_map_delete: not holder %p", holder_entry)); + if (holder_entry->eflags & MAP_ENTRY_NEEDS_WAKEUP) + vm_map_wakeup(map); + if (holder_entry->object.vm_object != NULL) + vm_object_deallocate(holder_entry->object.vm_object); + vm_map_entry_unlink(map, holder_entry); + vm_map_entry_dispose(map, holder_entry); + holder_entry = tmp_entry; + } + } if (last_timestamp + 1 != map->timestamp) { /* * Look again for the entry because the map was @@ -2558,13 +2859,13 @@ vm_map_delete(vm_map_t map, vm_offset_t start, vm_offset_t end) entry = tmp_entry->next; else { entry = tmp_entry; - vm_map_clip_start(map, entry, + vm_map_clip_start(map, &entry, saved_start); } } continue; } - vm_map_clip_end(map, entry, end); + vm_map_clip_end(map, &entry, end); next = entry->next; @@ -2584,10 +2885,21 @@ vm_map_delete(vm_map_t map, vm_offset_t start, vm_offset_t end) * page frames may be reallocated, and any modify bits * will be set in the wrong object!) */ + last_timestamp = map->timestamp; vm_map_entry_delete(map, entry); entry->next = map->deferred_freelist; map->deferred_freelist = entry; - entry = next; +#ifdef INVARIANTS + entry->eflags |= MAP_ENTRY_ON_FREELIST; +#endif + if (last_timestamp + 1 == map->timestamp) + entry = next; + else if (!vm_map_lookup_entry(map, saved_start, &tmp_entry)) + entry = tmp_entry->next; + else { + entry = tmp_entry; + vm_map_clip_start(map, &entry, saved_start); + } } return (KERN_SUCCESS); } @@ -2605,7 +2917,7 @@ vm_map_remove(vm_map_t map, vm_offset_t start, vm_offset_t end) vm_map_lock(map); VM_MAP_RANGE_CHECK(map, start, end); - result = vm_map_delete(map, start, end); + result = vm_map_delete(map, start, end, FALSE); vm_map_unlock(map); return (result); } @@ -2847,6 +3159,7 @@ vmspace_fork(struct vmspace *vm1) new_entry->eflags &= ~(MAP_ENTRY_USER_WIRED | MAP_ENTRY_IN_TRANSITION); new_entry->wired_count = 0; + new_entry->pin_count = 0; /* * Insert the entry into the new map -- we know we're @@ -2874,6 +3187,7 @@ vmspace_fork(struct vmspace *vm1) new_entry->eflags &= ~(MAP_ENTRY_USER_WIRED | MAP_ENTRY_IN_TRANSITION); new_entry->wired_count = 0; + new_entry->pin_count = 0; new_entry->object.vm_object = NULL; vm_map_entry_link(new_map, new_map->header.prev, new_entry); @@ -2884,11 +3198,22 @@ vmspace_fork(struct vmspace *vm1) } old_entry = old_entry->next; } + unlock_and_return: vm_map_unlock(old_map); - if (vm2 != NULL) + if (vm2 != NULL) { + for (new_entry = new_map->header.next; + new_entry != &new_map->header; new_entry = new_entry->next) { + if ((new_entry->eflags & MAP_ENTRY_DEFER_WRITECNT) != 0) { + new_entry->eflags &= ~MAP_ENTRY_DEFER_WRITECNT; + new_entry->eflags |= MAP_ENTRY_VN_WRITECNT; + } + if ((new_entry->eflags & MAP_ENTRY_VN_WRITECNT) != 0) + vm_map_entry_inc_vn_wcnt(new_map, new_entry, + NULL, FALSE); + } vm_map_unlock(new_map); - + } return (vm2); } @@ -2973,8 +3298,13 @@ vm_map_stack(vm_map_t map, vm_offset_t addrbos, vm_size_t max_ssize, /* Now set the avail_ssize amount. */ if (rv == KERN_SUCCESS) { - if (prev_entry != &map->header) - vm_map_clip_end(map, prev_entry, bot); + if (prev_entry != &map->header) { + if (prev_entry->eflags & MAP_ENTRY_IS_HOLDER) { + vm_map_unlock(map); + return (KERN_NO_SPACE); + } + vm_map_clip_end(map, &prev_entry, bot); + } new_entry = prev_entry->next; if (new_entry->end != top || new_entry->start != bot) panic("Bad entry start/end for new stack entry"); @@ -3144,8 +3474,16 @@ Retry: /* Adjust the available stack space by the amount we grew. */ if (rv == KERN_SUCCESS) { - if (prev_entry != &map->header) - vm_map_clip_end(map, prev_entry, addr); + if (prev_entry != &map->header) { + if ((prev_entry->eflags & MAP_ENTRY_IS_HOLDER) && + (addr < prev_entry->end)) { + vm_map_delete(map, addr, + stack_entry->start, FALSE); + vm_map_unlock(map); + return (KERN_NO_SPACE); + } + vm_map_clip_end(map, &prev_entry, addr); + } new_entry = prev_entry->next; KASSERT(new_entry == stack_entry->prev, ("foo")); KASSERT(new_entry->end == stack_entry->start, ("foo")); @@ -3179,6 +3517,13 @@ Retry: stack_entry->offset, (vm_size_t)(stack_entry->end - stack_entry->start), (vm_size_t)grow_amount)) { + if (next_entry != &map->header && + (next_entry->eflags & MAP_ENTRY_IS_HOLDER) && + (addr > next_entry->start)) { + vm_map_unlock(map); + return (KERN_NO_SPACE); + } + map->size += (addr - stack_entry->end); /* Update the current entry. */ stack_entry->end = addr; @@ -3187,7 +3532,7 @@ Retry: rv = KERN_SUCCESS; if (next_entry != &map->header) - vm_map_clip_start(map, next_entry, addr); + vm_map_clip_start(map, &next_entry, addr); } else rv = KERN_FAILURE; } @@ -3527,6 +3872,167 @@ vm_map_lookup_done(vm_map_t map, vm_map_entry_t entry) vm_map_unlock_read(map); } +static boolean_t +vm_map_unpin_entries(vm_map_t map, struct uio *uiop, int pinned_entries) +{ + vm_offset_t start; + struct iovec *iov; + vm_map_entry_t entry; + int i, acc, wire; + boolean_t need_wakeup; + + iov = uiop->uio_iov; + need_wakeup = FALSE; + + for (i = 0, acc = 0; acc < pinned_entries; iov++, i++) { + KASSERT(i < uiop->uio_iovcnt, ("wireio: iovcnt overflow %d %d %d", + i, uiop->uio_iovcnt, pinned_entries)); + wire = round_page(iov->iov_len); + if (acc + wire > pinned_entries) + wire = pinned_entries - acc; + start = trunc_page((vm_offset_t)iov->iov_base); + for (;;) { + if (!vm_map_lookup_entry(map, start, &entry)) { +#ifdef INVARIANTS + panic("vm_unwireuio: hole"); +#endif + } + KASSERT(entry->pin_count > 0, ("pin_count %p", entry)); + if (--entry->pin_count == 0 && + (entry->eflags & MAP_ENTRY_NEEDS_WAKEUP)) { + entry->eflags &= ~MAP_ENTRY_NEEDS_WAKEUP; + need_wakeup = TRUE; + } + if (entry->end >= start + wire) { + acc += wire; + break; + } else { + acc += entry->end - start; + wire -= entry->end - start; + start = entry->end; + } + } + } + return (need_wakeup); +} + +/* + * vm_wireuio + * + * Given userspace struct uio, we set up vm state such that after the + * successfull return there will be no page faults during uiomove with + * this uio until vm_unwireuio is called. At most wire_bytes bytes of + * the user address space are held. + * + * Function performs this by first pinning all map entries that will + * be referenced. This guarantees that our ranges of user address + * space cannot be remmapped during the operation. Then, all accessed + * pages are faulted in and held. + */ +int +vm_wireuio(struct uio *uiop, struct vm_page *m_hold[], int wire_bytes, + int *wired_pages) +{ + vm_map_t map; + vm_offset_t start, start1; + struct iovec *iov; + vm_map_entry_t entry; + struct vm_page **m_hold1; + int i, acc, wire, wire_pages, pinned_entries, rv, prot; + int error; + boolean_t need_wakeup; + + KASSERT(round_page(wire_bytes) == wire_bytes, + ("wireuio: wire_bytes is not page-size aligned")); + KASSERT(uiop->uio_segflg == UIO_USERSPACE, + ("wireuio: !UIO_USERSPACE")); + + error = 0; + prot = uiop->uio_rw == UIO_READ ? VM_PROT_WRITE : VM_PROT_READ; + m_hold1 = m_hold; + pinned_entries = 0; + *wired_pages = 0; + map = &uiop->uio_td->td_proc->p_vmspace->vm_map; + iov = uiop->uio_iov; + + /* + * Do the pass over iov. + */ + for (i = 0, acc = 0; acc < wire_bytes; iov++, i++) { + wire = round_page(iov->iov_len); + if (acc + wire > wire_bytes) + wire = wire_bytes - acc; + acc += wire; + wire_pages = btoc(wire); + start1 = start = trunc_page((vm_offset_t)iov->iov_base); + if (start < vm_map_min(map) || start + wire > vm_map_max(map) || + start > start + wire) { + error = EINVAL; + goto fault; + } + vm_map_lock(map); + + /* + * Pin each entry referenced by addresses in iov. + */ + for (;;) { + if (!vm_map_lookup_entry(map, start1, &entry) || + (entry->eflags & MAP_ENTRY_IS_HOLDER)) + goto fault_map_locked; + entry->pin_count++; + if (entry->end >= start1 + wire) { + pinned_entries += wire; + break; + } else { + pinned_entries += entry->end - start1; + wire -= entry->end - start1; + start1 = entry->end; + } + } + vm_map_unlock(map); + + /* + * If entries are successfully pinned, the + * corresponding pages are faulted in and held. + */ + rv = vm_fault_hold_user_pages(map, start, m_hold1, wire_pages, + prot); + if (rv != KERN_SUCCESS) { + error = EFAULT; + goto fault; + } + *wired_pages += wire_pages; + m_hold1 += wire_pages; + } + return (0); + fault: + vm_map_lock(map); + fault_map_locked: + need_wakeup = vm_map_unpin_entries(map, uiop, pinned_entries); + vm_map_unlock(map); + vm_fault_unhold_pages(m_hold, *wired_pages); + if (need_wakeup) + vm_map_wakeup(map); + return (error); +} + +void +vm_unwireuio(struct uio *uiop, struct vm_page *m_hold[], int wired_pages) +{ + vm_map_t map; + boolean_t need_wakeup; + + map = &uiop->uio_td->td_proc->p_vmspace->vm_map; + + vm_fault_unhold_pages(m_hold, wired_pages); + + vm_map_lock(map); + need_wakeup = vm_map_unpin_entries(map, uiop, ctob(wired_pages)); + vm_map_unlock(map); + if (need_wakeup) + vm_map_wakeup(map); +} + #include "opt_ddb.h" #ifdef DDB #include diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h index 70c3a0b..9310718 100644 --- a/sys/vm/vm_map.h +++ b/sys/vm/vm_map.h @@ -114,6 +114,7 @@ struct vm_map_entry { vm_inherit_t inheritance; /* inheritance */ int wired_count; /* can be paged if = 0 */ vm_pindex_t lastr; /* last read */ + unsigned pin_count; /* non-exclusive pin count */ }; #define MAP_ENTRY_NOSYNC 0x0001 @@ -133,11 +134,22 @@ struct vm_map_entry { #define MAP_ENTRY_IN_TRANSITION 0x0100 /* entry being changed */ #define MAP_ENTRY_NEEDS_WAKEUP 0x0200 /* waiters in transition */ #define MAP_ENTRY_NOCOREDUMP 0x0400 /* don't include in a core */ +#define MAP_ENTRY_IS_HOLDER 0x0800 /* holds space for vm_map_fixed */ #define MAP_ENTRY_GROWS_DOWN 0x1000 /* Top-down stacks */ #define MAP_ENTRY_GROWS_UP 0x2000 /* Bottom-up stacks */ -#define MAP_ENTRY_WIRE_SKIPPED 0x4000 +#define MAP_ENTRY_VN_WRITECNT 0x4000 /* writeable mapping for a vnode */ +#define MAP_ENTRY_DEFER_WRITECNT 0x8000 /* increment writecount when + dropping the transitioning state */ +#ifdef INVARIANTS +#define MAP_ENTRY_ON_FREELIST 0x10000 +#define MAP_ENTRY_LINKED 0x20000 +#define MAP_ENTRY_UNLINKED 0x40000 +#endif + +#define MAP_ENTRY_WIRE_SKIPPED 0x80000 + #ifdef _KERNEL static __inline u_char @@ -265,7 +277,8 @@ vmspace_pmap(struct vmspace *vmspace) */ void _vm_map_lock(vm_map_t map, const char *file, int line); -void _vm_map_unlock(vm_map_t map, const char *file, int line); +void _vm_map_unlock(vm_map_t map, boolean_t process_freelist, const char *file, + int line); void _vm_map_lock_read(vm_map_t map, const char *file, int line); void _vm_map_unlock_read(vm_map_t map, const char *file, int line); int _vm_map_trylock(vm_map_t map, const char *file, int line); @@ -277,7 +290,7 @@ int vm_map_unlock_and_wait(vm_map_t map, int timo); void vm_map_wakeup(vm_map_t map); #define vm_map_lock(map) _vm_map_lock(map, LOCK_FILE, LOCK_LINE) -#define vm_map_unlock(map) _vm_map_unlock(map, LOCK_FILE, LOCK_LINE) +#define vm_map_unlock(map) _vm_map_unlock(map, TRUE, LOCK_FILE, LOCK_LINE) #define vm_map_lock_read(map) _vm_map_lock_read(map, LOCK_FILE, LOCK_LINE) #define vm_map_unlock_read(map) _vm_map_unlock_read(map, LOCK_FILE, LOCK_LINE) #define vm_map_trylock(map) _vm_map_trylock(map, LOCK_FILE, LOCK_LINE) @@ -339,7 +352,7 @@ long vmspace_wired_count(struct vmspace *vmspace); #ifdef _KERNEL boolean_t vm_map_check_protection (vm_map_t, vm_offset_t, vm_offset_t, vm_prot_t); vm_map_t vm_map_create(pmap_t, vm_offset_t, vm_offset_t); -int vm_map_delete(vm_map_t, vm_offset_t, vm_offset_t); +int vm_map_delete(vm_map_t, vm_offset_t, vm_offset_t, boolean_t); int vm_map_find(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t *, vm_size_t, int, vm_prot_t, vm_prot_t, int); int vm_map_fixed(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t, vm_size_t, @@ -362,7 +375,7 @@ void vm_map_startup (void); int vm_map_submap (vm_map_t, vm_offset_t, vm_offset_t, vm_map_t); int vm_map_sync(vm_map_t, vm_offset_t, vm_offset_t, boolean_t, boolean_t); int vm_map_madvise (vm_map_t, vm_offset_t, vm_offset_t, int); -void vm_map_simplify_entry (vm_map_t, vm_map_entry_t); +void vm_map_simplify_entry(vm_map_t, vm_map_entry_t); void vm_init2 (void); int vm_map_stack (vm_map_t, vm_offset_t, vm_size_t, vm_prot_t, vm_prot_t, int); int vm_map_growstack (struct proc *p, vm_offset_t addr); @@ -371,5 +384,6 @@ int vm_map_unwire(vm_map_t map, vm_offset_t start, vm_offset_t end, int vm_map_wire(vm_map_t map, vm_offset_t start, vm_offset_t end, int flags); int vmspace_swap_count (struct vmspace *vmspace); + #endif /* _KERNEL */ #endif /* _VM_MAP_ */ diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index 6cc0acc..e5ab46e 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -117,7 +117,7 @@ vmmapentry_rsrc_init(dummy) } static int vm_mmap_vnode(struct thread *, vm_size_t, vm_prot_t, vm_prot_t *, - int *, struct vnode *, vm_ooffset_t, vm_object_t *); + int *, struct vnode *, vm_ooffset_t, vm_object_t *, struct vnode **, int *); static int vm_mmap_cdev(struct thread *, vm_size_t, vm_prot_t, vm_prot_t *, int *, struct cdev *, vm_ooffset_t, vm_object_t *); static int vm_mmap_shm(struct thread *, vm_size_t, vm_prot_t, vm_prot_t *, @@ -593,7 +593,7 @@ munmap(td, uap) } #endif /* returns nothing but KERN_SUCCESS anyway */ - vm_map_delete(map, addr, addr + size); + vm_map_delete(map, addr, addr + size, FALSE); vm_map_unlock(map); return (0); } @@ -1142,7 +1142,8 @@ munlock(td, uap) int vm_mmap_vnode(struct thread *td, vm_size_t objsize, vm_prot_t prot, vm_prot_t *maxprotp, int *flagsp, - struct vnode *vp, vm_ooffset_t foff, vm_object_t *objp) + struct vnode *vp, vm_ooffset_t foff, vm_object_t *objp, + struct vnode **rvp, int *vfslocked) { struct vattr va; void *handle; @@ -1150,14 +1151,22 @@ vm_mmap_vnode(struct thread *td, vm_size_t objsize, struct mount *mp; struct cdevsw *dsw; struct ucred *cred; - int error, flags, type; - int vfslocked; + int error, flags, type, locktype; mp = vp->v_mount; cred = td->td_ucred; - vfslocked = VFS_LOCK_GIANT(mp); - if ((error = vget(vp, LK_SHARED, td)) != 0) { - VFS_UNLOCK_GIANT(vfslocked); + + /* + * Need to bump v_writecount for shared writable mapping in + * vm_map_insert. + */ + if ((*maxprotp & VM_PROT_WRITE) && (*flagsp & MAP_SHARED)) + locktype = LK_EXCLUSIVE; + else + locktype = LK_SHARED; + *vfslocked = VFS_LOCK_GIANT(mp); + if ((error = vget(vp, locktype, td)) != 0) { + VFS_UNLOCK_GIANT(*vfslocked); return (error); } flags = *flagsp; @@ -1173,13 +1182,15 @@ vm_mmap_vnode(struct thread *td, vm_size_t objsize, if (obj->handle != vp) { vput(vp); vp = (struct vnode*)obj->handle; - vget(vp, LK_SHARED, td); + vget(vp, locktype, td); } type = OBJT_VNODE; handle = vp; + *rvp = vp; } else if (vp->v_type == VCHR) { type = OBJT_DEVICE; handle = vp->v_rdev; + *rvp = vp; dsw = dev_refthread(handle); if (dsw == NULL) { @@ -1250,8 +1261,10 @@ vm_mmap_vnode(struct thread *td, vm_size_t objsize, vfs_mark_atime(vp, cred); done: - vput(vp); - VFS_UNLOCK_GIANT(vfslocked); + if (error != 0) { + vput(vp); + VFS_UNLOCK_GIANT(*vfslocked); + } return (error); } @@ -1355,8 +1368,9 @@ vm_mmap(vm_map_t map, vm_offset_t *addr, vm_size_t size, vm_prot_t prot, boolean_t fitit; vm_object_t object = NULL; int rv = KERN_SUCCESS; - int docow, error; + int docow, error, vfslocked; struct thread *td = curthread; + struct vnode *vp; if (size == 0) return (0); @@ -1390,6 +1404,9 @@ vm_mmap(vm_map_t map, vm_offset_t *addr, vm_size_t size, vm_prot_t prot, return (EINVAL); fitit = FALSE; } + vfslocked = 0; + vp = NULL; + /* * Lookup/allocate object. */ @@ -1400,7 +1417,7 @@ vm_mmap(vm_map_t map, vm_offset_t *addr, vm_size_t size, vm_prot_t prot, break; case OBJT_VNODE: error = vm_mmap_vnode(td, size, prot, &maxprot, &flags, - handle, foff, &object); + handle, foff, &object, &vp, &vfslocked); break; case OBJT_SWAP: error = vm_mmap_shm(td, size, prot, &maxprot, &flags, @@ -1448,6 +1465,10 @@ vm_mmap(vm_map_t map, vm_offset_t *addr, vm_size_t size, vm_prot_t prot, rv = vm_map_fixed(map, object, foff, *addr, size, prot, maxprot, docow); + if (vp != NULL) { + vput(vp); + VFS_UNLOCK_GIANT(vfslocked); + } if (rv != KERN_SUCCESS) { /* * Lose the object reference. Will destroy the diff --git a/sys/vm/vm_param.h b/sys/vm/vm_param.h index 2ff2603..d866925 100644 --- a/sys/vm/vm_param.h +++ b/sys/vm/vm_param.h @@ -125,6 +125,7 @@ struct xswdev { #define KERN_RESOURCE_SHORTAGE 6 #define KERN_NOT_RECEIVER 7 #define KERN_NO_ACCESS 8 +#define KERN_VMUIODEADLOCK 9 #ifndef ASSEMBLER #ifdef _KERNEL diff --git a/sys/vm/vm_unix.c b/sys/vm/vm_unix.c index 6bb9917..3bd2ddd 100644 --- a/sys/vm/vm_unix.c +++ b/sys/vm/vm_unix.c @@ -138,7 +138,7 @@ obreak(td, uap) do_map_wirefuture = TRUE; } } else if (new < old) { - rv = vm_map_delete(&vm->vm_map, new, old); + rv = vm_map_delete(&vm->vm_map, new, old, FALSE); if (rv != KERN_SUCCESS) { error = ENOMEM; goto done; diff --git a/tools/regression/file/uio/uio.c b/tools/regression/file/uio/uio.c new file mode 100644 index 0000000..d857605 --- /dev/null +++ b/tools/regression/file/uio/uio.c @@ -0,0 +1,116 @@ +/*- + * Copyright (c) 2009 Konstantin Belousov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int chunk_cnt = 1024; +int chunk_size = 1024; + +int +main(int argc, char *argv[]) +{ + struct iovec *wiov, *riov; + char **wdata, **rdata; + int fd, i; + ssize_t io_error; + + if (argc < 2) { + fprintf(stderr, "Usage: uio file [chunk count [chunk size]]\n"); + return (2); + } + fd = open(argv[1], O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); + if (fd == -1) { + fprintf(stderr, "Failed to create %s: %s\n", + argv[1], strerror(errno)); + return (1); + } + + if (argc > 2) + chunk_cnt = atoi(argv[2]); + if (argc > 3) + chunk_size = atoi(argv[3]); + + wiov = calloc(chunk_cnt, sizeof(*wiov)); + wdata = calloc(chunk_cnt, sizeof(*wdata)); + + riov = calloc(chunk_cnt, sizeof(*riov)); + rdata = calloc(chunk_cnt, sizeof(*rdata)); + + for (i = 0; i < chunk_cnt; i++) { + rdata[i] = malloc(chunk_size); + riov[i].iov_base = rdata[i]; + riov[i].iov_len = chunk_size; + + wdata[i] = malloc(chunk_size); + memset(wdata[i], i, chunk_size); + wiov[i].iov_base = wdata[i]; + wiov[i].iov_len = chunk_size; + } + + io_error = writev(fd, wiov, chunk_cnt); + if (io_error == -1) { + fprintf(stderr, "write failed: %s\n", strerror(errno)); + return (1); + } else if (io_error != chunk_cnt * chunk_size) { + fprintf(stderr, "truncated write: %d %d\n", + io_error, chunk_cnt * chunk_size); + return (1); + } + + if (lseek(fd, 0, SEEK_SET) == -1) { + fprintf(stderr, "lseek failed: %s\n", strerror(errno)); + return (1); + } + + io_error = readv(fd, riov, chunk_cnt); + if (io_error == -1) { + fprintf(stderr, "read failed: %s\n", strerror(errno)); + return (1); + } else if (io_error != chunk_cnt * chunk_size) { + fprintf(stderr, "truncated read: %d %d\n", + io_error, chunk_cnt * chunk_size); + return (1); + } + + for (i = 0; i < chunk_cnt; i++) { + if (memcmp(rdata[i], wdata[i], chunk_size) != 0) { + fprintf(stderr, "chunk %d differs\n", i); + return (1); + } + } + + return (0); +} diff --git a/tools/regression/ufs/ba_clrbuf/ba_clrbuf.c b/tools/regression/ufs/ba_clrbuf/ba_clrbuf.c new file mode 100644 index 0000000..9376648 --- /dev/null +++ b/tools/regression/ufs/ba_clrbuf/ba_clrbuf.c @@ -0,0 +1,129 @@ +/*- + * Copyright (c) 2009 Konstantin Belousov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static const int blks = 2; + +static void +flush_buffers(int fd) +{ + struct stat st; + char *addr; + int error; + + printf("Flushing buffers\n"); + error = fstat(fd, &st); + if (error == -1) + err(2, "stat"); + fsync(fd); + addr = mmap(NULL, st.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + if (addr == (char *)-1) + err(2, "mmap"); + error = msync(addr, st.st_size, MS_SYNC | MS_INVALIDATE); + if (error == -1) + err(2, "msync"); + munmap(addr, st.st_size); +} + +int +main(int argc, char *argv[]) +{ + struct statfs fst; + char *data, *vrfy; + size_t sz; + int fd, i, error, ret; + + if (argc < 2) + errx(2, "Usage: ba_clrbuf file"); + + fd = open(argv[1], O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); + if (fd == -1) + err(2, "Failed to create %s", argv[1]); + + if (fstatfs(fd, &fst) == -1) + err(2, "stat"); + + sz = fst.f_iosize * blks; + data = malloc(sz); + if (data == NULL) + err(2, "malloc"); + vrfy = malloc(sz); + if (vrfy == NULL) + err(2, "malloc"); + for (i = 0; i < (int)sz; i++) + data[i] = i; + error = write(fd, data, sz); + if (error == -1) + err(2, "write"); + else if (error != (int)sz) + errx(2, "Short write %d %d", error, sz); + + flush_buffers(fd); + + error = lseek(fd, 0, SEEK_SET); + if (error == -1) + err(2, "lseek 0"); + else if (error != 0) + errx(2, "lseek 0 returned %d", error); + error = write(fd, NULL, fst.f_iosize); + printf("faulty write, error %s\n", strerror(errno)); + + error = lseek(fd, 0, SEEK_SET); + if (error == -1) + err(2, "lseek 0/2"); + else if (error != 0) + errx(2, "lseek 0/2 returned %d", error); + error = read(fd, vrfy, sz); + if (error == -1) + err(2, "read"); + else if (error != (int)sz) + errx(2, "short read %d %d", error, sz); + + if (memcmp(data, vrfy, fst.f_iosize) != 0) { + printf("Zero block corrupted, byte at 0 is %x\n", + (unsigned char)vrfy[0]); + ret = 1; + } else { + printf("No corruption\n"); + ret = 0; + } + + return (ret); +} -- Test scenario: datamove*.sh + uio