GENERIC from Wed Feb 20 20:34:56 2013 +0200, r247047+vm1 e906167, vmcore.33 GDB: no debug ports present KDB: debugger backends: ddb KDB: current backend: ddb Copyright (c) 1992-2013 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 10.0-CURRENT #0 r247047+e906167-dirty: Fri Feb 22 21:54:28 CET 2013 pho@x4.osted.lan:/var/tmp/deviant2/sys/amd64/compile/PHO amd64 gcc version 4.2.1 20070831 patched [FreeBSD] WARNING: WITNESS option enabled, expect reduced performance. WARNING: DIAGNOSTIC option enabled, expect reduced performance. CPU: AMD Phenom(tm) 9150e Quad-Core Processor (1800.02-MHz K8-class CPU) Origin = "AuthenticAMD" Id = 0x100f23 Family = 0x10 Model = 0x2 Stepping = 3 Features=0x178bfbff Features2=0x802009 AMD Features=0xee500800 AMD Features2=0x7ff TSC: P-state invariant real memory = 8589934592 (8192 MB) avail memory = 8098955264 (7723 MB) : Trying to mount root from ufs:/dev/ufs/root [rw]... Setting hostuuid: 00000000-0000-0000-0000-00218515337d. Setting hostid: 0x6b64ac17. Starting ddb. Entropy harvesting: interrupts ethernet point_to_point kickstart. Starting file system checks: /dev/ufs/root: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ufs/root: clean, 449435 free (891 frags, 56068 blocks, 0.1% fragmentation) /dev/ufs/home: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ufs/home: clean, 113988 free (5300 frags, 13586 blocks, 0.5% fragmentation) /dev/ufs/usr: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ufs/usr: clean, 4276721 free (178017 frags, 512338 blocks, 1.8% fragmentation) /dev/label/tmp: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/label/tmp: clean, 45348889 free (1217 frags, 5668459 blocks, 0.0% fragmentation) /dev/ufs/var: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ufs/var: clean, 10145063 free (46535 frags, 1262316 blocks, 0.2% fragmentation) Mounting local file systems:. Setting hostname: x4.osted.lan. re0: link state changed to DOWN Starting Network: lo0 re0. lo0: flags=8049 metric 0 mtu 16384 options=600003 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 nd6 options=21 re0: flags=8843 metric 0 mtu 1500 options=8209b ether 00:21:85:15:33:7d inet 192.168.1.101 netmask 0xffffff00 broadcast 192.168.1.255 inet6 fe80::221:85ff:fe15:337d%re0 prefixlen 64 tentative scopeid 0x1 nd6 options=29 media: Ethernet autoselect (none) status: no carrier Starting devd. add net default: gateway 192.168.1.1 add net ::ffff:0.0.0.0: gateway ::1 add net ::0.0.0.0: gateway ::1 add net fe80::: gateway ::1 add net ff02::: gateway ::1 ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg /usr/local/kde4/lib /usr/local/lib/compat/pkg /usr/local/lib/qt4 32-bit compatibility ldconfig path: /usr/lib32 Creating and/or trimming log files. Starting syslogd. savecore: unable to read from bounds, using 0 savecore: couldn't find media and/or sector size of /var/crash: Inappropriate ioctl for device Feb 22 22:12:27 x4 savecore: couldn't find media and/or sector size of /var/crash: Inappropriate ioctl for device savecore: unable to read from bounds, using 0 No core dumps found. Additional ABI support: linux. Starting rpcbind. NFS access cache time=60 lock order reversal: 1st 0xffffff81e6e6d538 bufwait (bufwait) @ kern/vfs_bio.c:3029 2nd 0xfffffe000b5d2c00 dirhash (dirhash) @ ufs/ufs/ufs_dirhash.c:284 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a/frame 0xffffff8247841400 kdb_backtrace() at kdb_backtrace+0x37/frame 0xffffff82478414c0 _witness_debugger() at _witness_debugger+0x2c/frame 0xffffff82478414e0 witness_checkorder() at witness_checkorder+0x82d/frame 0xffffff8247841590 _sx_xlock() at _sx_xlock+0x74/frame 0xffffff82478415c0 ufsdirhash_acquire() at ufsdirhash_acquire+0x44/frame 0xffffff82478415e0 ufsdirhash_add() at ufsdirhash_add+0x19/frame 0xffffff8247841610 ufs_direnter() at ufs_direnter+0x6c1/frame 0xffffff82478416e0 ufs_mkdir() at ufs_mkdir+0x50e/frame 0xffffff82478418d0 VOP_MKDIR_APV() at VOP_MKDIR_APV+0xaa/frame 0xffffff82478418f0 kern_mkdirat() at kern_mkdirat+0x212/frame 0xffffff8247841ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247841bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247841bf0 --- syscall (136, FreeBSD ELF64, sys_mkdir), rip = 0x80092532a, rsp = 0x7fffffffd788, rbp = 0x801006050 --- Clearing /tmp (X related). Starting mountd. Starting nfsd. Recovering vi editor sessions:. Updating motd:. Starting ntpd. Configuring syscons: keymap blanktime. Starting sshd. Starting cron. Local package initialization: watchdogd. Starting default moused. Starting inetd. Fri Feb 22 22:12:31 CET 2013 FreeBSD/amd64 (x4.osted.lan) (console) login: Feb 22 22:13:39 x4 su: pho to root on /dev/pts/0 lock order reversal: 1st 0xfffffe000b21aa28 ufs (ufs) @ kern/vfs_subr.c:2176 2nd 0xffffff81e78b1b38 bufwait (bufwait) @ ufs/ffs/ffs_vnops.c:261 3rd 0xfffffe000b18fa28 ufs (ufs) @ kern/vfs_subr.c:2176 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a/frame 0xffffff82477b4b80 kdb_backtrace() at kdb_backtrace+0x37/frame 0xffffff82477b4c40 _witness_debugger() at _witness_debugger+0x2c/frame 0xffffff82477b4c60 witness_checkorder() at witness_checkorder+0x82d/frame 0xffffff82477b4d10 __lockmgr_args() at __lockmgr_args+0x1125/frame 0xffffff82477b4df0 ffs_lock() at ffs_lock+0x9b/frame 0xffffff82477b4e40 VOP_LOCK1_APV() at VOP_LOCK1_APV+0x88/frame 0xffffff82477b4e60 _vn_lock() at _vn_lock+0x8e/frame 0xffffff82477b4ee0 vget() at vget+0x63/frame 0xffffff82477b4f30 vfs_hash_get() at vfs_hash_get+0xd5/frame 0xffffff82477b4f80 ffs_vgetf() at ffs_vgetf+0x48/frame 0xffffff82477b5010 softdep_sync_buf() at softdep_sync_buf+0x397/frame 0xffffff82477b50f0 ffs_syncvnode() at ffs_syncvnode+0x311/frame 0xffffff82477b5170 ffs_sync() at ffs_sync+0x1b3/frame 0xffffff82477b5230 vfs_write_suspend() at vfs_write_suspend+0xfd/frame 0xffffff82477b5260 ffs_snapshot() at ffs_snapshot+0xb87/frame 0xffffff82477b55a0 ffs_mount() at ffs_mount+0x8d9/frame 0xffffff82477b5790 vfs_donmount() at vfs_donmount+0xefd/frame 0xffffff82477b5a90 sys_nmount() at sys_nmount+0x66/frame 0xffffff82477b5ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477b5bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477b5bf0 --- syscall (378, FreeBSD ELF64, sys_nmount), rip = 0x800880dfa, rsp = 0x7fffffffcea8, rbp = 0x7fffffffda60 --- lock order reversal: 1st 0xffffff81e78cc538 bufwait (bufwait) @ kern/vfs_bio.c:3029 2nd 0xfffffe000b186430 snaplk (snaplk) @ ufs/ffs/ffs_snapshot.c:2298 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a/frame 0xffffff82479c2060 kdb_backtrace() at kdb_backtrace+0x37/frame 0xffffff82479c2120 _witness_debugger() at _witness_debugger+0x2c/frame 0xffffff82479c2140 witness_checkorder() at witness_checkorder+0x82d/frame 0xffffff82479c21f0 __lockmgr_args() at __lockmgr_args+0x1125/frame 0xffffff82479c22d0 ffs_copyonwrite() at ffs_copyonwrite+0x199/frame 0xffffff82479c2370 ffs_geom_strategy() at ffs_geom_strategy+0x12f/frame 0xffffff82479c23b0 ufs_strategy() at ufs_strategy+0x45/frame 0xffffff82479c23e0 VOP_STRATEGY_APV() at VOP_STRATEGY_APV+0xae/frame 0xffffff82479c2400 bufstrategy() at bufstrategy+0x4b/frame 0xffffff82479c2440 bufwrite() at bufwrite+0x125/frame 0xffffff82479c2470 cluster_wbuild() at cluster_wbuild+0x566/frame 0xffffff82479c2520 cluster_write() at cluster_write+0x332/frame 0xffffff82479c2630 ffs_write() at ffs_write+0x5fe/frame 0xffffff82479c26d0 VOP_WRITE_APV() at VOP_WRITE_APV+0x114/frame 0xffffff82479c27d0 vn_write() at vn_write+0x281/frame 0xffffff82479c2860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479c29f0 dofilewrite() at dofilewrite+0x85/frame 0xffffff82479c2a40 kern_writev() at kern_writev+0x6c/frame 0xffffff82479c2a80 sys_write() at sys_write+0x64/frame 0xffffff82479c2ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479c2bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479c2bf0 --- syscall (4, FreeBSD ELF32, sys_write), rip = 0x2819249f, rsp = 0xffffb6b8, rbp = 0xffffc760 --- panic: __lockmgr_args: recursing on non recursive lockmgr getblk @ ../../../kern/vfs_bio.c:3029 cpuid = 3 KDB: enter: panic [ thread pid 1142 tid 100148 ] Stopped at kdb_enter+0x3b: movq $0,0xa96ac2(%rip) db> run pho db:0:pho> bt Tracing pid 1142 tid 100148 td 0xfffffe00d2ea3000 kdb_enter() at kdb_enter+0x3b/frame 0xffffff8247917e20 vpanic() at vpanic+0xe1/frame 0xffffff8247917e60 panic() at panic+0x67/frame 0xffffff8247917f40 __lockmgr_args() at __lockmgr_args+0x1199/frame 0xffffff8247918020 getblk() at getblk+0x11f/frame 0xffffff82479180b0 breadn_flags() at breadn_flags+0x40/frame 0xffffff8247918100 ffs_alloccg() at ffs_alloccg+0x112/frame 0xffffff82479181b0 ffs_hashalloc() at ffs_hashalloc+0x72/frame 0xffffff8247918200 ffs_alloc() at ffs_alloc+0xd0/frame 0xffffff8247918270 ffs_balloc_ufs2() at ffs_balloc_ufs2+0x11ef/frame 0xffffff8247918440 ffs_copyonwrite() at ffs_copyonwrite+0x3e8/frame 0xffffff82479184e0 ffs_geom_strategy() at ffs_geom_strategy+0x1cb/frame 0xffffff8247918520 bufwrite() at bufwrite+0x125/frame 0xffffff8247918550 ffs_nodealloccg() at ffs_nodealloccg+0x4ca/frame 0xffffff82479185f0 ffs_hashalloc() at ffs_hashalloc+0x72/frame 0xffffff8247918640 ffs_valloc() at ffs_valloc+0xa0/frame 0xffffff82479186e0 ufs_mkdir() at ufs_mkdir+0xc5/frame 0xffffff82479188d0 VOP_MKDIR_APV() at VOP_MKDIR_APV+0xaa/frame 0xffffff82479188f0 kern_mkdirat() at kern_mkdirat+0x212/frame 0xffffff8247918ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247918bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247918bf0 --- syscall (136, FreeBSD ELF32, sys_mkdir), rip = 0x2818266f, rsp = 0xfffe5148, rbp = 0xfffe556c --- db:0:bt> show allpcpu Current CPU: 3 cpuid = 0 dynamic pcpu = 0x5d7480 curthread = 0xfffffe0005215480: pid 11 "idle: cpu0" curpcb = 0xffffff800025dcc0 fpcurthread = none idlethread = 0xfffffe0005215480: tid 100003 "idle: cpu0" curpmap = 0xffffffff813586b0 tssp = 0xffffffff81568200 commontssp = 0xffffffff81568200 rsp0 = 0xffffff800025dcc0 gs32p = 0xffffffff81566338 ldt = 0xffffffff81566378 tss = 0xffffffff81566368 spin locks held: cpuid = 1 dynamic pcpu = 0xffffff807ef23480 curthread = 0xfffffe0005215000: pid 11 "idle: cpu1" curpcb = 0xffffff8000262cc0 fpcurthread = none idlethread = 0xfffffe0005215000: tid 100004 "idle: cpu1" curpmap = 0xffffffff813586b0 tssp = 0xffffffff81568268 commontssp = 0xffffffff81568268 rsp0 = 0xffffff8000262cc0 gs32p = 0xffffffff815663a0 ldt = 0xffffffff815663e0 tss = 0xffffffff815663d0 spin locks held: cpuid = 2 dynamic pcpu = 0xffffff807ef2a480 curthread = 0xfffffe0005221900: pid 11 "idle: cpu2" curpcb = 0xffffff8000267cc0 fpcurthread = none idlethread = 0xfffffe0005221900: tid 100005 "idle: cpu2" curpmap = 0xffffffff813586b0 tssp = 0xffffffff815682d0 commontssp = 0xffffffff815682d0 rsp0 = 0xffffff8000267cc0 gs32p = 0xffffffff81566408 ldt = 0xffffffff81566448 tss = 0xffffffff81566438 spin locks held: cpuid = 3 dynamic pcpu = 0xffffff807ef31480 curthread = 0xfffffe00d2ea3000: pid 1142 "mkdir" curpcb = 0xffffff8247918cc0 fpcurthread = none idlethread = 0xfffffe0005221480: tid 100006 "idle: cpu3" curpmap = 0xfffffe000b2722b8 tssp = 0xffffffff81568338 commontssp = 0xffffffff81568338 rsp0 = 0xffffff8247918cc0 gs32p = 0xffffffff81566470 ldt = 0xffffffff815664b0 tss = 0xffffffff815664a0 spin locks held: db:0:allpcpu> show alllocks Process 1248 (mksnap_ffs) thread 0xfffffe000b1b4000 (100094) exclusive lockmgr bufwait (bufwait) r = 0 (0xffffff81e79ab438) locked @ kern/vfs_bio.c:2266 exclusive lockmgr ufs (ufs) r = 0 (0xfffffe0137766a28) locked @ ufs/ffs/ffs_vfsops.c:1690 Process 1216 (rw) thread 0xfffffe0137322900 (100215) shared lockmgr ufs (ufs) r = 0 (0xfffffe01378187b8) locked @ kern/vfs_vnops.c:689 Process 1215 (rw) thread 0xfffffe01370cc480 (100214) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137767a28) locked @ kern/vfs_vnops.c:689 Process 1214 (rw) thread 0xfffffe01370cc900 (100213) shared lockmgr ufs (ufs) r = 0 (0xfffffe01376507b8) locked @ kern/vfs_vnops.c:689 Process 1213 (rw) thread 0xfffffe013722a000 (100212) shared lockmgr ufs (ufs) r = 0 (0xfffffe01377672d8) locked @ kern/vfs_vnops.c:689 Process 1212 (rw) thread 0xfffffe013722a480 (100211) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137818548) locked @ kern/vfs_vnops.c:689 Process 1211 (rw) thread 0xfffffe013722a900 (100210) shared lockmgr ufs (ufs) r = 0 (0xfffffe01377dc068) locked @ kern/vfs_vnops.c:689 Process 1210 (rw) thread 0xfffffe013722b000 (100209) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137391c98) locked @ kern/vfs_vnops.c:689 Process 1209 (rw) thread 0xfffffe013722b480 (100208) shared lockmgr ufs (ufs) r = 0 (0xfffffe01378167b8) locked @ kern/vfs_vnops.c:689 Process 1208 (rw) thread 0xfffffe013722b900 (100207) shared lockmgr ufs (ufs) r = 0 (0xfffffe01377dc548) locked @ kern/vfs_vnops.c:689 Process 1207 (rw) thread 0xfffffe013722c000 (100206) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137768548) locked @ kern/vfs_vnops.c:689 Process 1206 (rw) thread 0xfffffe013722c480 (100205) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137768c98) locked @ kern/vfs_vnops.c:689 Process 1205 (rw) thread 0xfffffe013722c900 (100204) shared lockmgr ufs (ufs) r = 0 (0xfffffe01377677b8) locked @ kern/vfs_vnops.c:689 Process 1204 (rw) thread 0xfffffe013722e000 (100203) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137767c98) locked @ kern/vfs_vnops.c:689 Process 1203 (rw) thread 0xfffffe013722e480 (100202) shared lockmgr ufs (ufs) r = 0 (0xfffffe01377682d8) locked @ kern/vfs_vnops.c:689 Process 1202 (rw) thread 0xfffffe013722e900 (100201) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137777a28) locked @ kern/vfs_vnops.c:689 Process 1201 (rw) thread 0xfffffe013722f000 (100200) shared lockmgr ufs (ufs) r = 0 (0xfffffe01377dda28) locked @ kern/vfs_vnops.c:689 Process 1200 (rw) thread 0xfffffe013722f480 (100199) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137768a28) locked @ kern/vfs_vnops.c:689 Process 1199 (rw) thread 0xfffffe01370c2000 (100198) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137816c98) locked @ kern/vfs_vnops.c:689 Process 1198 (rw) thread 0xfffffe01370c2480 (100197) shared lockmgr ufs (ufs) r = 0 (0xfffffe013776bc98) locked @ kern/vfs_vnops.c:689 Process 1197 (rw) thread 0xfffffe01370c2900 (100196) shared lockmgr ufs (ufs) r = 0 (0xfffffe013736c2d8) locked @ kern/vfs_vnops.c:689 Process 1196 (rw) thread 0xfffffe01370c5000 (100195) shared lockmgr ufs (ufs) r = 0 (0xfffffe01376b9068) locked @ kern/vfs_vnops.c:689 Process 1195 (rw) thread 0xfffffe01370c5480 (100194) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137817068) locked @ kern/vfs_vnops.c:689 Process 1194 (rw) thread 0xfffffe01370c5900 (100193) shared lockmgr ufs (ufs) r = 0 (0xfffffe00d2dd6548) locked @ kern/vfs_vnops.c:689 Process 1193 (rw) thread 0xfffffe01370c7000 (100192) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137816a28) locked @ kern/vfs_vnops.c:689 Process 1192 (rw) thread 0xfffffe01370c7480 (100191) shared lockmgr ufs (ufs) r = 0 (0xfffffe01373937b8) locked @ kern/vfs_vnops.c:689 Process 1191 (rw) thread 0xfffffe01370c7900 (100190) shared lockmgr ufs (ufs) r = 0 (0xfffffe01377772d8) locked @ kern/vfs_vnops.c:689 Process 1190 (rw) thread 0xfffffe000b1af480 (100111) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137818068) locked @ kern/vfs_vnops.c:689 Process 1189 (rw) thread 0xfffffe0008f42900 (100133) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137767068) locked @ kern/vfs_vnops.c:689 Process 1188 (rw) thread 0xfffffe0008f42480 (100134) shared lockmgr ufs (ufs) r = 0 (0xfffffe013736c548) locked @ kern/vfs_vnops.c:689 Process 1187 (rw) thread 0xfffffe0008f42000 (100135) shared lockmgr ufs (ufs) r = 0 (0xfffffe01377dc2d8) locked @ kern/vfs_vnops.c:689 Process 1186 (rw) thread 0xfffffe0008f43480 (100079) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137766c98) locked @ kern/vfs_vnops.c:689 Process 1185 (rw) thread 0xfffffe0008f41900 (100136) shared lockmgr ufs (ufs) r = 0 (0xfffffe01377687b8) locked @ kern/vfs_vnops.c:689 Process 1184 (rw) thread 0xfffffe01370c8000 (100189) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137768068) locked @ kern/vfs_vnops.c:689 Process 1183 (rw) thread 0xfffffe01370c8480 (100188) shared lockmgr ufs (ufs) r = 0 (0xfffffe01371eec98) locked @ kern/vfs_vnops.c:689 Process 1182 (rw) thread 0xfffffe01370c8900 (100187) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137767548) locked @ kern/vfs_vnops.c:689 Process 1181 (rw) thread 0xfffffe01370cb000 (100186) shared lockmgr ufs (ufs) r = 0 (0xfffffe013776b2d8) locked @ kern/vfs_vnops.c:689 Process 1180 (rw) thread 0xfffffe01370cb480 (100185) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137778548) locked @ kern/vfs_vnops.c:689 Process 1179 (rw) thread 0xfffffe01370cb900 (100184) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137394068) locked @ kern/vfs_vnops.c:689 Process 1178 (rw) thread 0xfffffe01370cc000 (100183) shared lockmgr ufs (ufs) r = 0 (0xfffffe0137777068) locked @ kern/vfs_vnops.c:689 Process 1177 (rw) thread 0xfffffe0008f41000 (100182) shared lockmgr ufs (ufs) r = 0 (0xfffffe01376ba2d8) locked @ kern/vfs_vnops.c:689 Process 1175 (mkdir) thread 0xfffffe0137088480 (100181) exclusive lockmgr ufs (ufs) r = 0 (0xfffffe013776ea28) locked @ kern/vfs_lookup.c:516 Process 1153 (mkdir) thread 0xfffffe00d2e9c480 (100159) exclusive lockmgr ufs (ufs) r = 0 (0xfffffe01379242d8) locked @ kern/vfs_lookup.c:516 Process 1148 (mkdir) thread 0xfffffe00d2e9f000 (100154) exclusive lockmgr ufs (ufs) r = 0 (0xfffffe013790e548) locked @ kern/vfs_lookup.c:516 Process 1142 (mkdir) thread 0xfffffe00d2ea3000 (100148) exclusive lockmgr bufwait (bufwait) r = 0 (0xffffff81e78bd238) locked @ kern/vfs_bio.c:3029 exclusive lockmgr snaplk (snaplk) r = 0 (0xfffffe000b186430) locked @ ufs/ffs/ffs_snapshot.c:2298 exclusive lockmgr bufwait (bufwait) r = 0 (0xffffff81e78a0a38) locked @ kern/vfs_bio.c:3029 exclusive lockmgr ufs (ufs) r = 0 (0xfffffe0137924548) locked @ kern/vfs_lookup.c:516 Process 1139 (mkdir) thread 0xfffffe000b905480 (100145) exclusive lockmgr bufwait (bufwait) r = 0 (0xffffff81e79e1d38) locked @ kern/vfs_bio.c:2266 exclusive lockmgr ufs (ufs) r = 0 (0xfffffe01371f0548) locked @ ufs/ffs/ffs_vfsops.c:1690 exclusive lockmgr ufs (ufs) r = 0 (0xfffffe01379247b8) locked @ kern/vfs_lookup.c:516 Process 1105 (md5) thread 0xfffffe000b240900 (100084) exclusive lockmgr bufwait (bufwait) r = 0 (0xffffff81e79ac038) locked @ kern/vfs_bio.c:2266 exclusive lockmgr ufs (ufs) r = 0 (0xfffffe000b98f548) locked @ dev/md/md.c:765 db:0:alllocks> show lockedvnods Locked vnodes 0xfffffe000b98f4e0: tag ufs, type VREG usecount 1, writecount 1, refcount 50309 mountedhere 0 flags (VV_MD|VI_ACTIVE) v_object 0xfffffe000bb6b000 ref 0 pages 262108 lock type ufs: EXCL by thread 0xfffffe000b240900 (pid 1105, md5, tid 100084) #0 0xffffffff808bf9ff at __lockmgr_args+0x6df #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff805c290b at mdstart_vnode+0x26b #5 0xffffffff805c1211 at md_kthread+0x151 #6 0xffffffff808aaf19 at fork_exit+0x139 #7 0xffffffff80c6989e at fork_trampoline+0xe ino 5416962, on dev ufs/var 0xfffffe00d2d2c4e0: tag ufs, type VREG usecount 1, writecount 0, refcount 32 mountedhere 0 flags (VV_SYSTEM|VI_ACTIVE) v_object 0xfffffe01374eee10 ref 0 pages 24 lock type snaplk: EXCL by thread 0xfffffe00d2ea3000 (pid 1142, mkdir, tid 100148) #0 0xffffffff808bf9ff at __lockmgr_args+0x6df #1 0xffffffff80b13649 at ffs_copyonwrite+0x199 #2 0xffffffff80b2f31b at ffs_geom_strategy+0x1cb #3 0xffffffff8096ab05 at bufwrite+0x125 #4 0xffffffff80b06cda at ffs_nodealloccg+0x4ca #5 0xffffffff80b05af2 at ffs_hashalloc+0x72 #6 0xffffffff80b060c0 at ffs_valloc+0xa0 #7 0xffffffff80b469c5 at ufs_mkdir+0xc5 #8 0xffffffff80d1d36a at VOP_MKDIR_APV+0xaa #9 0xffffffff80987c62 at kern_mkdirat+0x212 #10 0xffffffff80cf8b3f at ia32_syscall+0x35f #11 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 5, on dev md5a 0xfffffe0137650750: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01374fd4b0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65696, on dev md5a 0xfffffe0137393750: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01376eeb40 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65560, on dev md5a 0xfffffe013736c270: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe0137781c30 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65812, on dev md5a 0xfffffe01377784e0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01376f02d0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65543, on dev md5a 0xfffffe013736c4e0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe0137717c30 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65695, on dev md5a 0xfffffe01371eec30: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe0137717960 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65556, on dev md5a 0xfffffe0137818750: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377174b0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65704, on dev md5a 0xfffffe01378184e0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377173c0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65773, on dev md5a 0xfffffe013776b270: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377e4690 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65609, on dev md5a 0xfffffe01377dc270: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cb0f0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65849, on dev md5a 0xfffffe01377dc000: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cb000 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65579, on dev md5a 0xfffffe013776bc30: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe0137782c30 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65602, on dev md5a 0xfffffe0137817000: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe013734e5a0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65590, on dev md5a 0xfffffe0137816c30: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01375b61e0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65566, on dev md5a 0xfffffe01378169c0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01375310f0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65634, on dev md5a 0xfffffe0137394000: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe0137782b40 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65540, on dev md5a 0xfffffe0137777270: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01373d1690 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65614, on dev md5a 0xfffffe0137777000: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe013769e2d0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65610, on dev md5a 0xfffffe0137818000: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01371955a0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65871, on dev md5a 0xfffffe01377779c0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01375062d0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65599, on dev md5a 0xfffffe0137768c30: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cce10 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65583, on dev md5a 0xfffffe01377689c0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377ccd20 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65570, on dev md5a 0xfffffe01377dc4e0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cb1e0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65877, on dev md5a 0xfffffe01377dd9c0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe0137717690 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65744, on dev md5a 0xfffffe0137768750: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377ccc30 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65538, on dev md5a 0xfffffe01377684e0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377ccb40 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65757, on dev md5a 0xfffffe0137768270: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cca50 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65598, on dev md5a 0xfffffe0137768000: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cc960 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65564, on dev md5a 0xfffffe0137767c30: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cc870 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65551, on dev md5a 0xfffffe01377679c0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cc780 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65574, on dev md5a 0xfffffe0137767750: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cc690 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65608, on dev md5a 0xfffffe01376b9000: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377e45a0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65734, on dev md5a 0xfffffe01376ba270: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cb3c0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65548, on dev md5a 0xfffffe01377674e0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cc5a0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65550, on dev md5a 0xfffffe00d2dd64e0: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377820f0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65562, on dev md5a 0xfffffe0137767270: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cc4b0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65612, on dev md5a 0xfffffe0137767000: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cc3c0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65552, on dev md5a 0xfffffe0137766c30: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377cc2d0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65555, on dev md5a 0xfffffe0137391c30: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01377e44b0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65613, on dev md5a 0xfffffe01377669c0: tag ufs, type VREG usecount 1, writecount 0, refcount 4 mountedhere 0 flags (VV_SYSTEM|VI_ACTIVE) lock type ufs: EXCL by thread 0xfffffe000b1b4000 (pid 1248, mksnap_ffs, tid 100094) #0 0xffffffff808bf9ff at __lockmgr_args+0x6df #1 0xffffffff80b2ed03 at ffs_vgetf+0x163 #2 0xffffffff80b06481 at ffs_valloc+0x461 #3 0xffffffff80b439af at ufs_makeinode+0xaf #4 0xffffffff80d1dff7 at VOP_CREATE_APV+0xa7 #5 0xffffffff80b14781 at ffs_snapshot+0x3b1 #6 0xffffffff80b31439 at ffs_mount+0x8d9 #7 0xffffffff8097a23d at vfs_donmount+0xefd #8 0xffffffff8097aaa6 at sys_nmount+0x66 #9 0xffffffff80c7f4e3 at amd64_syscall+0x2d3 #10 0xffffffff80c69657 at Xfast_syscall+0xf7 ino 6, on dev md5a 0xfffffe0137816750: tag ufs, type VREG usecount 1, writecount 0, refcount 9 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe013747e5a0 ref 0 pages 50 lock type ufs: SHARED (count 1) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff8099178d at vn_read+0x8d #5 0xffffffff8098f5d6 at vn_io_fault+0x196 #6 0xffffffff80930e71 at dofileread+0xa1 #7 0xffffffff8093104c at kern_readv+0x6c #8 0xffffffff80931164 at sys_read+0x64 #9 0xffffffff80cf8b3f at ia32_syscall+0x35f #10 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 65603, on dev md5a 0xfffffe0137924750: tag ufs, type VDIR usecount 2, writecount 0, refcount 3 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01378da0f0 ref 0 pages 0 lock type ufs: EXCL by thread 0xfffffe000b905480 (pid 1139, mkdir, tid 100145) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff80975607 at lookup+0xc7 #5 0xffffffff809765b0 at namei+0x400 #6 0xffffffff80987b07 at kern_mkdirat+0xb7 #7 0xffffffff80cf8b3f at ia32_syscall+0x35f #8 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 98427, on dev md5a 0xfffffe013776e9c0: tag ufs, type VDIR usecount 2, writecount 0, refcount 3 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01378ff690 ref 0 pages 0 lock type ufs: EXCL by thread 0xfffffe0137088480 (pid 1175, mkdir, tid 100181) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff80975607 at lookup+0xc7 #5 0xffffffff809765b0 at namei+0x400 #6 0xffffffff80987b07 at kern_mkdirat+0xb7 #7 0xffffffff80cf8b3f at ia32_syscall+0x35f #8 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 98428, on dev md5a 0xfffffe01379244e0: tag ufs, type VDIR usecount 2, writecount 0, refcount 3 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01378ff5a0 ref 0 pages 0 lock type ufs: EXCL by thread 0xfffffe00d2ea3000 (pid 1142, mkdir, tid 100148) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff80975607 at lookup+0xc7 #5 0xffffffff809765b0 at namei+0x400 #6 0xffffffff80987b07 at kern_mkdirat+0xb7 #7 0xffffffff80cf8b3f at ia32_syscall+0x35f #8 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 98429, on dev md5a 0xfffffe0137924270: tag ufs, type VDIR usecount 2, writecount 0, refcount 3 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01378a2b40 ref 0 pages 0 lock type ufs: EXCL by thread 0xfffffe00d2e9c480 (pid 1153, mkdir, tid 100159) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff80975607 at lookup+0xc7 #5 0xffffffff809765b0 at namei+0x400 #6 0xffffffff80987b07 at kern_mkdirat+0xb7 #7 0xffffffff80cf8b3f at ia32_syscall+0x35f #8 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 98430, on dev md5a 0xfffffe013790e4e0: tag ufs, type VDIR usecount 2, writecount 0, refcount 3 mountedhere 0 flags (VI_ACTIVE) v_object 0xfffffe01378dd690 ref 0 pages 0 lock type ufs: EXCL by thread 0xfffffe00d2e9f000 (pid 1148, mkdir, tid 100154) #0 0xffffffff808c0054 at __lockmgr_args+0xd34 #1 0xffffffff80b34bfb at ffs_lock+0x9b #2 0xffffffff80d1ce58 at VOP_LOCK1_APV+0x88 #3 0xffffffff8099052e at _vn_lock+0x8e #4 0xffffffff80975607 at lookup+0xc7 #5 0xffffffff809765b0 at namei+0x400 #6 0xffffffff80987b07 at kern_mkdirat+0xb7 #7 0xffffffff80cf8b3f at ia32_syscall+0x35f #8 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 98431, on dev md5a 0xfffffe01371f04e0: tag ufs, type VNON usecount 1, writecount 0, refcount 1 mountedhere 0 flags (VI_ACTIVE) lock type ufs: EXCL by thread 0xfffffe000b905480 (pid 1139, mkdir, tid 100145) #0 0xffffffff808bf9ff at __lockmgr_args+0x6df #1 0xffffffff80b2ed03 at ffs_vgetf+0x163 #2 0xffffffff80b06481 at ffs_valloc+0x461 #3 0xffffffff80b469c5 at ufs_mkdir+0xc5 #4 0xffffffff80d1d36a at VOP_MKDIR_APV+0xaa #5 0xffffffff80987c62 at kern_mkdirat+0x212 #6 0xffffffff80cf8b3f at ia32_syscall+0x35f #7 0xffffffff80c69941 at Xint0x80_syscall+0x91 ino 98432, on dev md5a db:0:lockedvnods> show mount 0xfffffe000b0d4b58 /dev/ufs/root on / (ufs) 0xfffffe000b0d5000 devfs on /dev (devfs) 0xfffffe000b221790 /dev/ufs/home on /home (ufs) 0xfffffe000b2213c8 /dev/label/tmp on /tmp (ufs) 0xfffffe000b221000 /dev/ufs/usr on /usr (ufs) 0xfffffe000b0d5b58 /dev/ufs/var on /var (ufs) 0xfffffe000b0d5790 procfs on /proc (procfs) 0xfffffe000b0d4790 /dev/md5a on /mnt (ufs) More info: show mount db:0:mount> ps pid ppid pgrp uid state wmesg wchan cmd 1248 1089 1089 0 D+ snaprdb 0xfffffe000bc9f660 mksnap_ffs 1246 1230 1229 1001 S nanslp 0xffffffff8135fc28 sleep 1231 1229 1229 1001 S piperd 0xfffffe000bbb3000 awk 1230 1229 1229 1001 S wait 0xfffffe01374be4a8 sh 1229 1228 1229 1001 Ss wait 0xfffffe0008f3d000 sh 1228 1221 1221 1001 S select 0xfffffe000b2ee340 sshd 1227 1225 1227 1001 Ss+ select 0xfffffe000b0ef1c0 top 1226 1224 1226 1001 Ss kqread 0xfffffe000b36ce00 tail 1225 1217 1217 1001 S select 0xfffffe000b0ef240 sshd 1224 1218 1218 1001 S select 0xfffffe000b2ee3c0 sshd 1221 942 1221 0 Ss select 0xfffffe00081f61c0 sshd 1218 942 1218 0 Ss select 0xfffffe000b2ee4c0 sshd 1217 942 1217 0 Ss select 0xfffffe000b0f00c0 sshd 1216 1176 1119 1004 D+ getblk 0xffffff81e7908838 rw 1215 1176 1119 1004 D+ getblk 0xffffff81e78ec938 rw 1214 1176 1119 1004 D+ getblk 0xffffff81e790fa38 rw 1213 1176 1119 1004 D+ getblk 0xffffff81e78bab38 rw 1212 1176 1119 1004 D+ getblk 0xffffff81e78e1538 rw 1211 1176 1119 1004 D+ getblk 0xffffff81e78e8d38 rw 1210 1176 1119 1004 D+ getblk 0xffffff81e92bac38 rw 1209 1176 1119 1004 D+ getblk 0xffffff81e79b4738 rw 1208 1176 1119 1004 D+ getblk 0xffffff81e791ea38 rw 1207 1176 1119 1004 D+ getblk 0xffffff81e78c9b38 rw 1206 1176 1119 1004 D+ getblk 0xffffff81e791f038 rw 1205 1176 1119 1004 D+ getblk 0xffffff81e78ed838 rw 1204 1176 1119 1004 D+ getblk 0xffffff81e78e1b38 rw 1203 1176 1119 1004 D+ getblk 0xffffff81e78c9538 rw 1202 1176 1119 1004 D+ getblk 0xffffff81e790fd38 rw 1201 1176 1119 1004 D+ getblk 0xffffff81e7ab0d38 rw 1200 1176 1119 1004 D+ getblk 0xffffff81e7912d38 rw 1199 1176 1119 1004 D+ getblk 0xffffff81e78aca38 rw 1198 1176 1119 1004 D+ getblk 0xffffff81e78b7238 rw 1197 1176 1119 1004 D+ getblk 0xffffff81e7939d38 rw 1196 1176 1119 1004 D+ getblk 0xffffff81e78e0f38 rw 1195 1176 1119 1004 D+ getblk 0xffffff81e78adf38 rw 1194 1176 1119 1004 D+ getblk 0xffffff81e78d6a38 rw 1193 1176 1119 1004 D+ getblk 0xffffff81e78ab238 rw 1192 1176 1119 1004 D+ getblk 0xffffff81e791de38 rw 1191 1176 1119 1004 D+ getblk 0xffffff81e78a2b38 rw 1190 1176 1119 1004 D+ getblk 0xffffff81e791c638 rw 1189 1176 1119 1004 D+ getblk 0xffffff81e78cb938 rw 1188 1176 1119 1004 D+ getblk 0xffffff81e7955038 rw 1187 1176 1119 1004 D+ getblk 0xffffff81e790f438 rw 1186 1176 1119 1004 D+ getblk 0xffffff81e8716138 rw 1185 1176 1119 1004 D+ getblk 0xffffff81e78cce38 rw 1184 1176 1119 1004 D+ getblk 0xffffff81e78e4238 rw 1183 1176 1119 1004 D+ getblk 0xffffff81e7948738 rw 1182 1176 1119 1004 D+ getblk 0xffffff81e78de538 rw 1181 1176 1119 1004 D+ getblk 0xffffff81e78d3d38 rw 1180 1176 1119 1004 D+ getblk 0xffffff81e7956b38 rw 1179 1176 1119 1004 D+ getblk 0xffffff81e78a4038 rw 1178 1176 1119 1004 D+ getblk 0xffffff81e78a1638 rw 1177 1176 1119 1004 D+ getblk 0xffffff81e78ed538 rw 1176 1132 1119 1004 S+ wait 0xfffffe000b8614a8 rw 1175 1135 1119 1004 D+ getblk 0xffffff81e78a0a38 mkdir 1174 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1173 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1172 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1171 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1170 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1169 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1168 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1167 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1166 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1165 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1164 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1163 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1162 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1161 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1160 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1159 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1158 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1157 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1156 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1155 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1154 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1153 1135 1119 1004 D+ getblk 0xffffff81e78a0a38 mkdir 1152 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1151 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1150 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1149 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1148 1135 1119 1004 D+ getblk 0xffffff81e78a0a38 mkdir 1147 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1146 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1145 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1144 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1143 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1142 1135 1119 1004 R+ CPU 3 mkdir 1141 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1140 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1139 1135 1119 1004 D+ biord 0xffffff81e79e1ca0 mkdir 1138 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1137 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1136 1135 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1135 1134 1119 1004 S+ wait 0xfffffe000b861000 mkdir 1134 1131 1119 1004 S+ nanslp 0xffffffff8135fc28 mkdir 1132 1131 1119 1004 S+ nanslp 0xffffffff8135fc28 rw 1131 1130 1119 1004 S+ wait 0xfffffe000b1174a8 run 1130 1129 1119 1004 S+ wait 0xfffffe00d2dba950 run 1129 1120 1119 1004 S+ nanslp 0xffffffff8135fc28 run 1120 1 1119 1004 S+ wait 0xfffffe000b235000 sh 1105 0 0 0 DL biord 0xffffff81e79abfa0 [md5] 1089 1085 1089 0 S+ wait 0xfffffe0008f3e4a8 sh 1085 1082 1085 0 S+ wait 0xfffffe0008f3c950 bash 1082 1081 1082 0 S+ pause 0xfffffe000b2379f0 csh 1081 1075 1081 1001 S+ wait 0xfffffe000b73a000 su 1075 1074 1075 1001 Ss+ wait 0xfffffe000b1b6000 bash 1074 1072 1072 1001 S select 0xfffffe000b2ee5c0 sshd 1072 942 1072 0 Ss select 0xfffffe00081f6040 sshd 1071 1 1071 0 Ss+ ttyin 0xfffffe00052fb8a8 getty 1070 1 1070 0 Ss+ ttyin 0xfffffe00052fbca8 getty 1069 1 1069 0 Ss+ ttyin 0xfffffe000805d0a8 getty 1068 1 1068 0 Ss+ ttyin 0xfffffe000805d4a8 getty 1067 1 1067 0 Ss+ ttyin 0xfffffe000805d8a8 getty 1066 1 1066 0 Ss+ ttyin 0xfffffe00052fa0a8 getty 1065 1 1065 0 Ss+ ttyin 0xfffffe00052fa4a8 getty 1064 1 1064 0 Ss+ ttyin 0xfffffe00052fa8a8 getty 1063 1 1063 0 Ss+ ttyin 0xfffffe00052faca8 getty 1024 1 1024 0 Ss select 0xfffffe0005442dc0 inetd 991 1 991 0 Ss select 0xfffffe000b0f0d40 moused 971 1 971 0 Ss nanslp 0xffffffff8135fc28 watchdogd 961 1 961 0 Ss nanslp 0xffffffff8135fc28 cron 954 1 954 25 Ss pause 0xfffffe000b11a0a0 sendmail 950 1 950 0 Ss select 0xfffffe000b0ef540 sendmail 942 1 942 0 Ss select 0xfffffe0005442cc0 sshd 851 1 851 0 Ss select 0xfffffe000b227040 ntpd 756 755 755 0 S (threaded) nfsd 100109 S rpcsvc 0xfffffe000b6ab6a0 nfsd: service 100108 S rpcsvc 0xfffffe0008f0da20 nfsd: service 100107 S rpcsvc 0xfffffe0008f0d9a0 nfsd: service 100104 S rpcsvc 0xfffffe000b032820 nfsd: master 755 1 755 0 Ss select 0xfffffe000b0ef840 nfsd 746 1 746 0 Ss select 0xfffffe000b2ee9c0 mountd 641 1 641 0 Ss select 0xfffffe000b2eeb40 rpcbind 615 1 615 0 Ss select 0xfffffe000b2eedc0 syslogd 434 1 434 0 Ss select 0xfffffe000b2ef1c0 devd 18 0 0 0 DL sdflush 0xffffffff8155b1f8 [softdepflush] 17 0 0 0 DL vlruwt 0xfffffe0008f3d950 [vnlru] 16 0 0 0 DL syncer 0xffffffff8154f860 [syncer] 9 0 0 0 DL psleep 0xffffffff8154f280 [bufdaemon] 8 0 0 0 DL pgzero 0xffffffff815651bc [pagezero] 7 0 0 0 DL psleep 0xffffffff81564370 [vmdaemon] 6 0 0 0 DL psleep 0xffffffff8156434c [pagedaemon] 5 0 0 0 DL ccb_scan 0xffffffff8131da60 [xpt_thrd] 4 0 0 0 DL waiting_ 0xffffffff81555540 [sctp_iterator] 3 0 0 0 DL ctl_work 0xffffff80008b5000 [ctl_thrd] 2 0 0 0 DL - 0xfffffe0008032248 [fdc0] 15 0 0 0 DL (threaded) [usb] 100058 D - 0xffffff80008b0e18 [usbus5] 100057 D - 0xffffff80008b0dc0 [usbus5] 100056 D - 0xffffff80008b0d68 [usbus5] 100055 D - 0xffffff80008b0d10 [usbus5] 100053 D - 0xffffff80008a8460 [usbus4] 100052 D - 0xffffff80008a8408 [usbus4] 100051 D - 0xffffff80008a83b0 [usbus4] 100050 D - 0xffffff80008a8358 [usbus4] 100049 D - 0xffffff80008a5460 [usbus3] 100048 D - 0xffffff80008a5408 [usbus3] 100047 D - 0xffffff80008a53b0 [usbus3] 100046 D - 0xffffff80008a5358 [usbus3] 100045 D - 0xffffff80008a2460 [usbus2] 100044 D - 0xffffff80008a2408 [usbus2] 100043 D - 0xffffff80008a23b0 [usbus2] 100042 D - 0xffffff80008a2358 [usbus2] 100040 D - 0xffffff800089f460 [usbus1] 100039 D - 0xffffff800089f408 [usbus1] 100038 D - 0xffffff800089f3b0 [usbus1] 100037 D - 0xffffff800089f358 [usbus1] 100035 D - 0xffffff800089c460 [usbus0] 100034 D - 0xffffff800089c408 [usbus0] 100033 D - 0xffffff800089c3b0 [usbus0] 100032 D - 0xffffff800089c358 [usbus0] 14 0 0 0 DL - 0xffffffff8135e8c4 [yarrow] 13 0 0 0 DL (threaded) [geom] 100015 D - 0xffffffff81357950 [g_down] 100014 D - 0xffffffff81357948 [g_up] 100013 D - 0xffffffff81357938 [g_event] 12 0 0 0 WL (threaded) [intr] 100063 I [irq12: psm0] 100062 I [irq1: atkbd0] 100060 I [swi0: uart] 100059 I [irq14: ata0] 100054 I [irq19: ehci0] 100041 I [irq18: ohci2 ohci4] 100036 I [irq17: ohci1 ohci3] 100031 I [irq16: hdac1 ohci0] 100030 I [irq22: ahci0] 100029 I [irq257: re0] 100028 I [irq256: hdac0] 100023 I [swi2: cambio] 100022 I [swi6: task queue] 100021 I [swi6: Giant taskq] 100019 I [swi5: fast taskq] 100012 I [swi3: vm] 100011 I [swi1: netisr 0] 100010 I [swi4: clock] 100009 I [swi4: clock] 100008 I [swi4: clock] 100007 I [swi4: clock] 11 0 0 0 RL (threaded) [idle] 100006 CanRun [idle: cpu3] 100005 Run CPU 2 [idle: cpu2] 100004 Run CPU 1 [idle: cpu1] 100003 Run CPU 0 [idle: cpu0] 1 0 1 0 SLs wait 0xfffffe0005213950 [init] 10 0 0 0 DL audit_wo 0xffffffff8155a170 [audit] 0 0 0 0 DLs (threaded) [kernel] 100066 D - 0xffffffff8135e8c4 [deadlkres] 100065 D - 0xfffffe0008051780 [mca taskq] 100027 D - 0xfffffe00053c7200 [acpi_task_2] 100026 D - 0xfffffe00053c7200 [acpi_task_1] 100025 D - 0xfffffe00053c7200 [acpi_task_0] 100024 D - 0xfffffe00053c7280 [kqueue taskq] 100020 D - 0xfffffe00053c7400 [thread taskq] 100018 D - 0xfffffe00053c7500 [ffs_trim taskq] 100016 D - 0xfffffe0002f63900 [firmware taskq] 100000 D sched 0xffffffff81357c60 [swapper] 1133 1131 1119 1004 Z+ creat db:0:ps> allt Tracing command mksnap_ffs pid 1248 tid 100094 td 0xfffffe000b1b4000 sched_switch() at sched_switch+0x1b4/frame 0xffffff824780a0b0 mi_switch() at mi_switch+0x238/frame 0xffffff824780a100 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824780a140 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff824780a170 _sleep() at _sleep+0x29a/frame 0xffffff824780a200 biowait() at biowait+0x71/frame 0xffffff824780a230 readblock() at readblock+0x89/frame 0xffffff824780a260 ffs_snapshot() at ffs_snapshot+0x522/frame 0xffffff824780a5a0 ffs_mount() at ffs_mount+0x8d9/frame 0xffffff824780a790 vfs_donmount() at vfs_donmount+0xefd/frame 0xffffff824780aa90 sys_nmount() at sys_nmount+0x66/frame 0xffffff824780aad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff824780abf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff824780abf0 --- syscall (378, FreeBSD ELF64, sys_nmount), rip = 0x800880dfa, rsp = 0x7fffffffcea8, rbp = 0x7fffffffda60 --- Tracing command sleep pid 1246 tid 100121 td 0xfffffe000b11e000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247891850 mi_switch() at mi_switch+0x238/frame 0xffffff82478918a0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478918e0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247891940 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247891970 _sleep() at _sleep+0x3c3/frame 0xffffff8247891a00 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247891a70 sys_nanosleep() at sys_nanosleep+0x6e/frame 0xffffff8247891ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247891bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247891bf0 --- syscall (240, FreeBSD ELF64, sys_nanosleep), rip = 0x800913baa, rsp = 0x7fffffffdb48, rbp = 0x7fffffffdbd0 --- Tracing command awk pid 1231 tid 100223 td 0xfffffe000b496480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a8f800 mi_switch() at mi_switch+0x238/frame 0xffffff8247a8f850 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a8f890 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247a8f8f0 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247a8f910 _sleep() at _sleep+0x37d/frame 0xffffff8247a8f9a0 pipe_read() at pipe_read+0x432/frame 0xffffff8247a8f9f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a8fa40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a8fa80 sys_read() at sys_read+0x64/frame 0xffffff8247a8fad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247a8fbf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247a8fbf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b7792a, rsp = 0x7fffffffd848, rbp = 0x800db5d60 --- Tracing command sh pid 1230 tid 100222 td 0xfffffe000b496900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a8a670 mi_switch() at mi_switch+0x238/frame 0xffffff8247a8a6c0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a8a700 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247a8a760 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247a8a780 _sleep() at _sleep+0x37d/frame 0xffffff8247a8a810 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff8247a8a8b0 kern_wait() at kern_wait+0x9c/frame 0xffffff8247a8aa10 sys_wait4() at sys_wait4+0x35/frame 0xffffff8247a8aad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247a8abf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247a8abf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x800d302aa, rsp = 0x7fffffffd678, rbp = 0x1 --- Tracing command sh pid 1229 tid 100077 td 0xfffffe0008f44000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477b5670 mi_switch() at mi_switch+0x238/frame 0xffffff82477b56c0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477b5700 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477b5760 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82477b5780 _sleep() at _sleep+0x37d/frame 0xffffff82477b5810 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff82477b58b0 kern_wait() at kern_wait+0x9c/frame 0xffffff82477b5a10 sys_wait4() at sys_wait4+0x35/frame 0xffffff82477b5ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477b5bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477b5bf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x800d302aa, rsp = 0x7fffffffd938, rbp = 0x1 --- Tracing command sshd pid 1228 tid 100221 td 0xfffffe0137321480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a85690 mi_switch() at mi_switch+0x238/frame 0xffffff8247a856e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a85720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247a85780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247a857a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff8247a85800 seltdwait() at seltdwait+0xad/frame 0xffffff8247a85830 kern_select() at kern_select+0x79f/frame 0xffffff8247a85a80 sys_select() at sys_select+0x5d/frame 0xffffff8247a85ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247a85bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247a85bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80255f8aa, rsp = 0x7fffffffcc58, rbp = 0x7fffffffcce0 --- Tracing command top pid 1227 tid 100220 td 0xfffffe0137085900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a80680 mi_switch() at mi_switch+0x238/frame 0xffffff8247a806d0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a80710 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247a80770 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247a807a0 _cv_timedwait_sig() at _cv_timedwait_sig+0x18f/frame 0xffffff8247a80800 seltdwait() at seltdwait+0x57/frame 0xffffff8247a80830 kern_select() at kern_select+0x79f/frame 0xffffff8247a80a80 sys_select() at sys_select+0x5d/frame 0xffffff8247a80ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247a80bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247a80bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x800fb98aa, rsp = 0x7fffffffd988, rbp = 0xe --- Tracing command tail pid 1226 tid 100219 td 0xfffffe0137088000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a7b680 mi_switch() at mi_switch+0x238/frame 0xffffff8247a7b6d0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a7b710 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247a7b770 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247a7b7a0 _sleep() at _sleep+0x3c3/frame 0xffffff8247a7b830 kern_kevent() at kern_kevent+0x33a/frame 0xffffff8247a7ba10 sys_kevent() at sys_kevent+0x90/frame 0xffffff8247a7bad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247a7bbf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247a7bbf0 --- syscall (363, FreeBSD ELF64, sys_kevent), rip = 0x800918b2a, rsp = 0x7fffffffd9e8, rbp = 0x8010060a8 --- Tracing command sshd pid 1225 tid 100218 td 0xfffffe0137321900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a76690 mi_switch() at mi_switch+0x238/frame 0xffffff8247a766e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a76720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247a76780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247a767a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff8247a76800 seltdwait() at seltdwait+0xad/frame 0xffffff8247a76830 kern_select() at kern_select+0x79f/frame 0xffffff8247a76a80 sys_select() at sys_select+0x5d/frame 0xffffff8247a76ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247a76bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247a76bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80255f8aa, rsp = 0x7fffffffcc58, rbp = 0x7fffffffcce0 --- Tracing command sshd pid 1224 tid 100217 td 0xfffffe0137322000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a71690 mi_switch() at mi_switch+0x238/frame 0xffffff8247a716e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a71720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247a71780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247a717a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff8247a71800 seltdwait() at seltdwait+0xad/frame 0xffffff8247a71830 kern_select() at kern_select+0x79f/frame 0xffffff8247a71a80 sys_select() at sys_select+0x5d/frame 0xffffff8247a71ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247a71bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247a71bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80255f8aa, rsp = 0x7fffffffcc58, rbp = 0x7fffffffcce0 --- Tracing command sshd pid 1221 tid 100113 td 0xfffffe000b60f480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247869760 mi_switch() at mi_switch+0x238/frame 0xffffff82478697b0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478697f0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247869850 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247869870 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82478698d0 seltdwait() at seltdwait+0xad/frame 0xffffff8247869900 sys_poll() at sys_poll+0x3e6/frame 0xffffff8247869ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247869bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247869bf0 --- syscall (209, FreeBSD ELF64, sys_poll), rip = 0x8024f950a, rsp = 0x7fffffffccf8, rbp = 0x803c22190 --- Tracing command sshd pid 1218 tid 100080 td 0xfffffe0008f43000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477c4760 mi_switch() at mi_switch+0x238/frame 0xffffff82477c47b0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477c47f0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477c4850 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82477c4870 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82477c48d0 seltdwait() at seltdwait+0xad/frame 0xffffff82477c4900 sys_poll() at sys_poll+0x3e6/frame 0xffffff82477c4ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477c4bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477c4bf0 --- syscall (209, FreeBSD ELF64, sys_poll), rip = 0x8024f950a, rsp = 0x7fffffffccf8, rbp = 0x803c22190 --- Tracing command sshd pid 1217 tid 100098 td 0xfffffe000b19d480 sched_switch() at sched_switch+0x1b4/frame 0xffffff824781e760 mi_switch() at mi_switch+0x238/frame 0xffffff824781e7b0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824781e7f0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824781e850 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff824781e870 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff824781e8d0 seltdwait() at seltdwait+0xad/frame 0xffffff824781e900 sys_poll() at sys_poll+0x3e6/frame 0xffffff824781ead0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff824781ebf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff824781ebf0 --- syscall (209, FreeBSD ELF64, sys_poll), rip = 0x8024f950a, rsp = 0x7fffffffccf8, rbp = 0x803c22190 --- Tracing command rw pid 1216 tid 100215 td 0xfffffe0137322900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a673f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a67440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a67480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a674b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a67590 getblk() at getblk+0x11f/frame 0xffffff8247a67620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a67710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a677c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a677e0 vn_read() at vn_read+0xed/frame 0xffffff8247a67860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a679f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a67a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a67a80 sys_read() at sys_read+0x64/frame 0xffffff8247a67ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a67bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a67bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1215 tid 100214 td 0xfffffe01370cc480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a623f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a62440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a62480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a624b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a62590 getblk() at getblk+0x11f/frame 0xffffff8247a62620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a62710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a627c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a627e0 vn_read() at vn_read+0xed/frame 0xffffff8247a62860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a629f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a62a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a62a80 sys_read() at sys_read+0x64/frame 0xffffff8247a62ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a62bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a62bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1214 tid 100213 td 0xfffffe01370cc900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a5d3f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a5d440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a5d480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a5d4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a5d590 getblk() at getblk+0x11f/frame 0xffffff8247a5d620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a5d710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a5d7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a5d7e0 vn_read() at vn_read+0xed/frame 0xffffff8247a5d860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a5d9f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a5da40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a5da80 sys_read() at sys_read+0x64/frame 0xffffff8247a5dad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a5dbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a5dbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1213 tid 100212 td 0xfffffe013722a000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a583f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a58440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a58480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a584b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a58590 getblk() at getblk+0x11f/frame 0xffffff8247a58620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a58710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a587c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a587e0 vn_read() at vn_read+0xed/frame 0xffffff8247a58860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a589f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a58a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a58a80 sys_read() at sys_read+0x64/frame 0xffffff8247a58ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a58bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a58bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1212 tid 100211 td 0xfffffe013722a480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a533f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a53440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a53480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a534b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a53590 getblk() at getblk+0x11f/frame 0xffffff8247a53620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a53710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a537c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a537e0 vn_read() at vn_read+0xed/frame 0xffffff8247a53860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a539f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a53a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a53a80 sys_read() at sys_read+0x64/frame 0xffffff8247a53ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a53bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a53bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1211 tid 100210 td 0xfffffe013722a900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a4e3f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a4e440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a4e480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a4e4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a4e590 getblk() at getblk+0x11f/frame 0xffffff8247a4e620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a4e710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a4e7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a4e7e0 vn_read() at vn_read+0xed/frame 0xffffff8247a4e860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a4e9f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a4ea40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a4ea80 sys_read() at sys_read+0x64/frame 0xffffff8247a4ead0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a4ebf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a4ebf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1210 tid 100209 td 0xfffffe013722b000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a493f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a49440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a49480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a494b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a49590 getblk() at getblk+0x11f/frame 0xffffff8247a49620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a49710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a497c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a497e0 vn_read() at vn_read+0xed/frame 0xffffff8247a49860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a499f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a49a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a49a80 sys_read() at sys_read+0x64/frame 0xffffff8247a49ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a49bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a49bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1209 tid 100208 td 0xfffffe013722b480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a443f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a44440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a44480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a444b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a44590 getblk() at getblk+0x11f/frame 0xffffff8247a44620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a44710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a447c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a447e0 vn_read() at vn_read+0xed/frame 0xffffff8247a44860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a449f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a44a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a44a80 sys_read() at sys_read+0x64/frame 0xffffff8247a44ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a44bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a44bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1208 tid 100207 td 0xfffffe013722b900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a3f3f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a3f440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a3f480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a3f4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a3f590 getblk() at getblk+0x11f/frame 0xffffff8247a3f620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a3f710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a3f7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a3f7e0 vn_read() at vn_read+0xed/frame 0xffffff8247a3f860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a3f9f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a3fa40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a3fa80 sys_read() at sys_read+0x64/frame 0xffffff8247a3fad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a3fbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a3fbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1207 tid 100206 td 0xfffffe013722c000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a3a3f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a3a440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a3a480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a3a4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a3a590 getblk() at getblk+0x11f/frame 0xffffff8247a3a620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a3a710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a3a7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a3a7e0 vn_read() at vn_read+0xed/frame 0xffffff8247a3a860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a3a9f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a3aa40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a3aa80 sys_read() at sys_read+0x64/frame 0xffffff8247a3aad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a3abf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a3abf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1206 tid 100205 td 0xfffffe013722c480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a353f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a35440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a35480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a354b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a35590 getblk() at getblk+0x11f/frame 0xffffff8247a35620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a35710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a357c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a357e0 vn_read() at vn_read+0xed/frame 0xffffff8247a35860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a359f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a35a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a35a80 sys_read() at sys_read+0x64/frame 0xffffff8247a35ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a35bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a35bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1205 tid 100204 td 0xfffffe013722c900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a303f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a30440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a30480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a304b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a30590 getblk() at getblk+0x11f/frame 0xffffff8247a30620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a30710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a307c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a307e0 vn_read() at vn_read+0xed/frame 0xffffff8247a30860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a309f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a30a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a30a80 sys_read() at sys_read+0x64/frame 0xffffff8247a30ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a30bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a30bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1204 tid 100203 td 0xfffffe013722e000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a2b3f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a2b440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a2b480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a2b4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a2b590 getblk() at getblk+0x11f/frame 0xffffff8247a2b620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a2b710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a2b7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a2b7e0 vn_read() at vn_read+0xed/frame 0xffffff8247a2b860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a2b9f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a2ba40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a2ba80 sys_read() at sys_read+0x64/frame 0xffffff8247a2bad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a2bbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a2bbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1203 tid 100202 td 0xfffffe013722e480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a263f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a26440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a26480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a264b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a26590 getblk() at getblk+0x11f/frame 0xffffff8247a26620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a26710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a267c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a267e0 vn_read() at vn_read+0xed/frame 0xffffff8247a26860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a269f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a26a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a26a80 sys_read() at sys_read+0x64/frame 0xffffff8247a26ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a26bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a26bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1202 tid 100201 td 0xfffffe013722e900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a213f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a21440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a21480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a214b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a21590 getblk() at getblk+0x11f/frame 0xffffff8247a21620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a21710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a217c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a217e0 vn_read() at vn_read+0xed/frame 0xffffff8247a21860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a219f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a21a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a21a80 sys_read() at sys_read+0x64/frame 0xffffff8247a21ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a21bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a21bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1201 tid 100200 td 0xfffffe013722f000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a1c3f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a1c440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a1c480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a1c4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a1c590 getblk() at getblk+0x11f/frame 0xffffff8247a1c620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a1c710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a1c7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a1c7e0 vn_read() at vn_read+0xed/frame 0xffffff8247a1c860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a1c9f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a1ca40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a1ca80 sys_read() at sys_read+0x64/frame 0xffffff8247a1cad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a1cbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a1cbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1200 tid 100199 td 0xfffffe013722f480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a173f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a17440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a17480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a174b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a17590 getblk() at getblk+0x11f/frame 0xffffff8247a17620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a17710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a177c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a177e0 vn_read() at vn_read+0xed/frame 0xffffff8247a17860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a179f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a17a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a17a80 sys_read() at sys_read+0x64/frame 0xffffff8247a17ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a17bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a17bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1199 tid 100198 td 0xfffffe01370c2000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a123f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a12440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a12480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a124b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a12590 getblk() at getblk+0x11f/frame 0xffffff8247a12620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a12710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a127c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a127e0 vn_read() at vn_read+0xed/frame 0xffffff8247a12860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a129f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a12a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a12a80 sys_read() at sys_read+0x64/frame 0xffffff8247a12ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a12bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a12bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1198 tid 100197 td 0xfffffe01370c2480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a0d3f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a0d440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a0d480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a0d4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a0d590 getblk() at getblk+0x11f/frame 0xffffff8247a0d620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a0d710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a0d7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a0d7e0 vn_read() at vn_read+0xed/frame 0xffffff8247a0d860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a0d9f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a0da40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a0da80 sys_read() at sys_read+0x64/frame 0xffffff8247a0dad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a0dbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a0dbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1197 tid 100196 td 0xfffffe01370c2900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a083f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a08440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a08480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a084b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a08590 getblk() at getblk+0x11f/frame 0xffffff8247a08620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a08710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a087c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a087e0 vn_read() at vn_read+0xed/frame 0xffffff8247a08860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a089f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a08a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a08a80 sys_read() at sys_read+0x64/frame 0xffffff8247a08ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a08bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a08bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1196 tid 100195 td 0xfffffe01370c5000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247a033f0 mi_switch() at mi_switch+0x238/frame 0xffffff8247a03440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247a03480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247a034b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247a03590 getblk() at getblk+0x11f/frame 0xffffff8247a03620 cluster_read() at cluster_read+0xc3/frame 0xffffff8247a03710 ffs_read() at ffs_read+0x3c3/frame 0xffffff8247a037c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff8247a037e0 vn_read() at vn_read+0xed/frame 0xffffff8247a03860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff8247a039f0 dofileread() at dofileread+0xa1/frame 0xffffff8247a03a40 kern_readv() at kern_readv+0x6c/frame 0xffffff8247a03a80 sys_read() at sys_read+0x64/frame 0xffffff8247a03ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247a03bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247a03bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1195 tid 100194 td 0xfffffe01370c5480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479fe3f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479fe440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479fe480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479fe4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479fe590 getblk() at getblk+0x11f/frame 0xffffff82479fe620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479fe710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479fe7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479fe7e0 vn_read() at vn_read+0xed/frame 0xffffff82479fe860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479fe9f0 dofileread() at dofileread+0xa1/frame 0xffffff82479fea40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479fea80 sys_read() at sys_read+0x64/frame 0xffffff82479fead0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479febf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479febf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1194 tid 100193 td 0xfffffe01370c5900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479f93f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479f9440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479f9480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479f94b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479f9590 getblk() at getblk+0x11f/frame 0xffffff82479f9620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479f9710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479f97c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479f97e0 vn_read() at vn_read+0xed/frame 0xffffff82479f9860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479f99f0 dofileread() at dofileread+0xa1/frame 0xffffff82479f9a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479f9a80 sys_read() at sys_read+0x64/frame 0xffffff82479f9ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479f9bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479f9bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1193 tid 100192 td 0xfffffe01370c7000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479f43f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479f4440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479f4480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479f44b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479f4590 getblk() at getblk+0x11f/frame 0xffffff82479f4620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479f4710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479f47c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479f47e0 vn_read() at vn_read+0xed/frame 0xffffff82479f4860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479f49f0 dofileread() at dofileread+0xa1/frame 0xffffff82479f4a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479f4a80 sys_read() at sys_read+0x64/frame 0xffffff82479f4ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479f4bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479f4bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1192 tid 100191 td 0xfffffe01370c7480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479ef3f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479ef440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479ef480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479ef4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479ef590 getblk() at getblk+0x11f/frame 0xffffff82479ef620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479ef710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479ef7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479ef7e0 vn_read() at vn_read+0xed/frame 0xffffff82479ef860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479ef9f0 dofileread() at dofileread+0xa1/frame 0xffffff82479efa40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479efa80 sys_read() at sys_read+0x64/frame 0xffffff82479efad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479efbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479efbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1191 tid 100190 td 0xfffffe01370c7900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479ea3f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479ea440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479ea480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479ea4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479ea590 getblk() at getblk+0x11f/frame 0xffffff82479ea620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479ea710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479ea7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479ea7e0 vn_read() at vn_read+0xed/frame 0xffffff82479ea860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479ea9f0 dofileread() at dofileread+0xa1/frame 0xffffff82479eaa40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479eaa80 sys_read() at sys_read+0x64/frame 0xffffff82479eaad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479eabf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479eabf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1190 tid 100111 td 0xfffffe000b1af480 sched_switch() at sched_switch+0x1b4/frame 0xffffff824785f3f0 mi_switch() at mi_switch+0x238/frame 0xffffff824785f440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824785f480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff824785f4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff824785f590 getblk() at getblk+0x11f/frame 0xffffff824785f620 cluster_read() at cluster_read+0xc3/frame 0xffffff824785f710 ffs_read() at ffs_read+0x3c3/frame 0xffffff824785f7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff824785f7e0 vn_read() at vn_read+0xed/frame 0xffffff824785f860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff824785f9f0 dofileread() at dofileread+0xa1/frame 0xffffff824785fa40 kern_readv() at kern_readv+0x6c/frame 0xffffff824785fa80 sys_read() at sys_read+0x64/frame 0xffffff824785fad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824785fbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824785fbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1189 tid 100133 td 0xfffffe0008f42900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478cd3f0 mi_switch() at mi_switch+0x238/frame 0xffffff82478cd440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478cd480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82478cd4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82478cd590 getblk() at getblk+0x11f/frame 0xffffff82478cd620 cluster_read() at cluster_read+0xc3/frame 0xffffff82478cd710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82478cd7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82478cd7e0 vn_read() at vn_read+0xed/frame 0xffffff82478cd860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82478cd9f0 dofileread() at dofileread+0xa1/frame 0xffffff82478cda40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478cda80 sys_read() at sys_read+0x64/frame 0xffffff82478cdad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478cdbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478cdbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1188 tid 100134 td 0xfffffe0008f42480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478d23f0 mi_switch() at mi_switch+0x238/frame 0xffffff82478d2440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478d2480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82478d24b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82478d2590 getblk() at getblk+0x11f/frame 0xffffff82478d2620 cluster_read() at cluster_read+0xc3/frame 0xffffff82478d2710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82478d27c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82478d27e0 vn_read() at vn_read+0xed/frame 0xffffff82478d2860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82478d29f0 dofileread() at dofileread+0xa1/frame 0xffffff82478d2a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478d2a80 sys_read() at sys_read+0x64/frame 0xffffff82478d2ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478d2bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478d2bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1187 tid 100135 td 0xfffffe0008f42000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478d73f0 mi_switch() at mi_switch+0x238/frame 0xffffff82478d7440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478d7480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82478d74b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82478d7590 getblk() at getblk+0x11f/frame 0xffffff82478d7620 cluster_read() at cluster_read+0xc3/frame 0xffffff82478d7710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82478d77c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82478d77e0 vn_read() at vn_read+0xed/frame 0xffffff82478d7860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82478d79f0 dofileread() at dofileread+0xa1/frame 0xffffff82478d7a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478d7a80 sys_read() at sys_read+0x64/frame 0xffffff82478d7ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478d7bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478d7bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1186 tid 100079 td 0xfffffe0008f43480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477bf3f0 mi_switch() at mi_switch+0x238/frame 0xffffff82477bf440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477bf480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82477bf4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82477bf590 getblk() at getblk+0x11f/frame 0xffffff82477bf620 cluster_read() at cluster_read+0xc3/frame 0xffffff82477bf710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82477bf7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82477bf7e0 vn_read() at vn_read+0xed/frame 0xffffff82477bf860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82477bf9f0 dofileread() at dofileread+0xa1/frame 0xffffff82477bfa40 kern_readv() at kern_readv+0x6c/frame 0xffffff82477bfa80 sys_read() at sys_read+0x64/frame 0xffffff82477bfad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82477bfbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82477bfbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1185 tid 100136 td 0xfffffe0008f41900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478dc3f0 mi_switch() at mi_switch+0x238/frame 0xffffff82478dc440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478dc480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82478dc4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82478dc590 getblk() at getblk+0x11f/frame 0xffffff82478dc620 cluster_read() at cluster_read+0xc3/frame 0xffffff82478dc710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82478dc7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82478dc7e0 vn_read() at vn_read+0xed/frame 0xffffff82478dc860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82478dc9f0 dofileread() at dofileread+0xa1/frame 0xffffff82478dca40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478dca80 sys_read() at sys_read+0x64/frame 0xffffff82478dcad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478dcbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478dcbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1184 tid 100189 td 0xfffffe01370c8000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479e53f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479e5440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479e5480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479e54b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479e5590 getblk() at getblk+0x11f/frame 0xffffff82479e5620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479e5710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479e57c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479e57e0 vn_read() at vn_read+0xed/frame 0xffffff82479e5860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479e59f0 dofileread() at dofileread+0xa1/frame 0xffffff82479e5a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479e5a80 sys_read() at sys_read+0x64/frame 0xffffff82479e5ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479e5bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479e5bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1183 tid 100188 td 0xfffffe01370c8480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479e03f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479e0440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479e0480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479e04b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479e0590 getblk() at getblk+0x11f/frame 0xffffff82479e0620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479e0710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479e07c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479e07e0 vn_read() at vn_read+0xed/frame 0xffffff82479e0860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479e09f0 dofileread() at dofileread+0xa1/frame 0xffffff82479e0a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479e0a80 sys_read() at sys_read+0x64/frame 0xffffff82479e0ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479e0bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479e0bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1182 tid 100187 td 0xfffffe01370c8900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479db3f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479db440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479db480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479db4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479db590 getblk() at getblk+0x11f/frame 0xffffff82479db620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479db710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479db7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479db7e0 vn_read() at vn_read+0xed/frame 0xffffff82479db860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479db9f0 dofileread() at dofileread+0xa1/frame 0xffffff82479dba40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479dba80 sys_read() at sys_read+0x64/frame 0xffffff82479dbad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479dbbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479dbbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1181 tid 100186 td 0xfffffe01370cb000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479d63f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479d6440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479d6480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479d64b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479d6590 getblk() at getblk+0x11f/frame 0xffffff82479d6620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479d6710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479d67c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479d67e0 vn_read() at vn_read+0xed/frame 0xffffff82479d6860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479d69f0 dofileread() at dofileread+0xa1/frame 0xffffff82479d6a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479d6a80 sys_read() at sys_read+0x64/frame 0xffffff82479d6ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479d6bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479d6bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1180 tid 100185 td 0xfffffe01370cb480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479d13f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479d1440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479d1480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479d14b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479d1590 getblk() at getblk+0x11f/frame 0xffffff82479d1620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479d1710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479d17c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479d17e0 vn_read() at vn_read+0xed/frame 0xffffff82479d1860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479d19f0 dofileread() at dofileread+0xa1/frame 0xffffff82479d1a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479d1a80 sys_read() at sys_read+0x64/frame 0xffffff82479d1ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479d1bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479d1bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1179 tid 100184 td 0xfffffe01370cb900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479cc3f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479cc440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479cc480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479cc4b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479cc590 getblk() at getblk+0x11f/frame 0xffffff82479cc620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479cc710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479cc7c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479cc7e0 vn_read() at vn_read+0xed/frame 0xffffff82479cc860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479cc9f0 dofileread() at dofileread+0xa1/frame 0xffffff82479cca40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479cca80 sys_read() at sys_read+0x64/frame 0xffffff82479ccad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479ccbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479ccbf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1178 tid 100183 td 0xfffffe01370cc000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479c73f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479c7440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479c7480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479c74b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479c7590 getblk() at getblk+0x11f/frame 0xffffff82479c7620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479c7710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479c77c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479c77e0 vn_read() at vn_read+0xed/frame 0xffffff82479c7860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479c79f0 dofileread() at dofileread+0xa1/frame 0xffffff82479c7a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479c7a80 sys_read() at sys_read+0x64/frame 0xffffff82479c7ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479c7bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479c7bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1177 tid 100182 td 0xfffffe0008f41000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479c23f0 mi_switch() at mi_switch+0x238/frame 0xffffff82479c2440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479c2480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479c24b0 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479c2590 getblk() at getblk+0x11f/frame 0xffffff82479c2620 cluster_read() at cluster_read+0xc3/frame 0xffffff82479c2710 ffs_read() at ffs_read+0x3c3/frame 0xffffff82479c27c0 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82479c27e0 vn_read() at vn_read+0xed/frame 0xffffff82479c2860 vn_io_fault() at vn_io_fault+0x196/frame 0xffffff82479c29f0 dofileread() at dofileread+0xa1/frame 0xffffff82479c2a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82479c2a80 sys_read() at sys_read+0x64/frame 0xffffff82479c2ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479c2bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479c2bf0 --- syscall (3, FreeBSD ELF32, sys_read), rip = 0x281924af, rsp = 0xffffb6b8, rbp = 0xffffc760 --- Tracing command rw pid 1176 tid 100122 td 0xfffffe000b11b900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247896630 mi_switch() at mi_switch+0x238/frame 0xffffff8247896680 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478966c0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247896720 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247896740 _sleep() at _sleep+0x37d/frame 0xffffff82478967d0 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff8247896870 kern_wait() at kern_wait+0x9c/frame 0xffffff82478969d0 freebsd32_wait4() at freebsd32_wait4+0x35/frame 0xffffff8247896ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247896bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247896bf0 --- syscall (7, FreeBSD ELF32, freebsd32_wait4), rip = 0x280efb57, rsp = 0xffffc744, rbp = 0xffffc760 --- Tracing command mkdir pid 1175 tid 100181 td 0xfffffe0137088480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479bd2d0 mi_switch() at mi_switch+0x238/frame 0xffffff82479bd320 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479bd360 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479bd390 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff82479bd470 getblk() at getblk+0x11f/frame 0xffffff82479bd500 breadn_flags() at breadn_flags+0x40/frame 0xffffff82479bd550 ffs_nodealloccg() at ffs_nodealloccg+0x10c/frame 0xffffff82479bd5f0 ffs_hashalloc() at ffs_hashalloc+0x72/frame 0xffffff82479bd640 ffs_valloc() at ffs_valloc+0xa0/frame 0xffffff82479bd6e0 ufs_mkdir() at ufs_mkdir+0xc5/frame 0xffffff82479bd8d0 VOP_MKDIR_APV() at VOP_MKDIR_APV+0xaa/frame 0xffffff82479bd8f0 kern_mkdirat() at kern_mkdirat+0x212/frame 0xffffff82479bdad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479bdbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479bdbf0 --- syscall (136, FreeBSD ELF32, sys_mkdir), rip = 0x2818266f, rsp = 0xfffea040, rbp = 0xfffea464 --- Tracing command mkdir pid 1174 tid 100180 td 0xfffffe0137088900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479b8840 mi_switch() at mi_switch+0x238/frame 0xffffff82479b8890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479b88d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82479b8930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82479b8960 _sleep() at _sleep+0x3c3/frame 0xffffff82479b89f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82479b8a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82479b8ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479b8bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479b8bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1173 tid 100179 td 0xfffffe00d2ea3480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479b3840 mi_switch() at mi_switch+0x238/frame 0xffffff82479b3890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479b38d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82479b3930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82479b3960 _sleep() at _sleep+0x3c3/frame 0xffffff82479b39f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82479b3a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82479b3ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479b3bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479b3bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1172 tid 100178 td 0xfffffe00d2ea3900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479ae840 mi_switch() at mi_switch+0x238/frame 0xffffff82479ae890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479ae8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82479ae930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82479ae960 _sleep() at _sleep+0x3c3/frame 0xffffff82479ae9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82479aea60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82479aead0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479aebf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479aebf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1171 tid 100177 td 0xfffffe00d2f92000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479a9840 mi_switch() at mi_switch+0x238/frame 0xffffff82479a9890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479a98d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82479a9930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82479a9960 _sleep() at _sleep+0x3c3/frame 0xffffff82479a99f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82479a9a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82479a9ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479a9bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479a9bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1170 tid 100176 td 0xfffffe00d2f92480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479a4840 mi_switch() at mi_switch+0x238/frame 0xffffff82479a4890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479a48d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82479a4930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82479a4960 _sleep() at _sleep+0x3c3/frame 0xffffff82479a49f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82479a4a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82479a4ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82479a4bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82479a4bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1169 tid 100175 td 0xfffffe00d2f92900 sched_switch() at sched_switch+0x1b4/frame 0xffffff824799f840 mi_switch() at mi_switch+0x238/frame 0xffffff824799f890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824799f8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824799f930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824799f960 _sleep() at _sleep+0x3c3/frame 0xffffff824799f9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824799fa60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824799fad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824799fbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824799fbf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1168 tid 100174 td 0xfffffe00d2f93000 sched_switch() at sched_switch+0x1b4/frame 0xffffff824799a840 mi_switch() at mi_switch+0x238/frame 0xffffff824799a890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824799a8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824799a930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824799a960 _sleep() at _sleep+0x3c3/frame 0xffffff824799a9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824799aa60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824799aad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824799abf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824799abf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1167 tid 100173 td 0xfffffe00d2f93480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247995840 mi_switch() at mi_switch+0x238/frame 0xffffff8247995890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479958d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247995930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247995960 _sleep() at _sleep+0x3c3/frame 0xffffff82479959f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247995a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247995ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247995bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247995bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1166 tid 100172 td 0xfffffe00d2f93900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247990840 mi_switch() at mi_switch+0x238/frame 0xffffff8247990890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479908d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247990930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247990960 _sleep() at _sleep+0x3c3/frame 0xffffff82479909f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247990a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247990ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247990bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247990bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1165 tid 100171 td 0xfffffe00d2f94000 sched_switch() at sched_switch+0x1b4/frame 0xffffff824798b840 mi_switch() at mi_switch+0x238/frame 0xffffff824798b890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824798b8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824798b930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824798b960 _sleep() at _sleep+0x3c3/frame 0xffffff824798b9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824798ba60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824798bad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824798bbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824798bbf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1164 tid 100170 td 0xfffffe00d2f94480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247986840 mi_switch() at mi_switch+0x238/frame 0xffffff8247986890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479868d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247986930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247986960 _sleep() at _sleep+0x3c3/frame 0xffffff82479869f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247986a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247986ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247986bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247986bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1163 tid 100169 td 0xfffffe00d2f94900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247981840 mi_switch() at mi_switch+0x238/frame 0xffffff8247981890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479818d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247981930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247981960 _sleep() at _sleep+0x3c3/frame 0xffffff82479819f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247981a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247981ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247981bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247981bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1162 tid 100168 td 0xfffffe00d2f95000 sched_switch() at sched_switch+0x1b4/frame 0xffffff824797c840 mi_switch() at mi_switch+0x238/frame 0xffffff824797c890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824797c8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824797c930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824797c960 _sleep() at _sleep+0x3c3/frame 0xffffff824797c9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824797ca60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824797cad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824797cbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824797cbf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1161 tid 100167 td 0xfffffe00d2f95480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247977840 mi_switch() at mi_switch+0x238/frame 0xffffff8247977890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479778d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247977930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247977960 _sleep() at _sleep+0x3c3/frame 0xffffff82479779f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247977a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247977ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247977bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247977bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1160 tid 100166 td 0xfffffe00d2f95900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247972840 mi_switch() at mi_switch+0x238/frame 0xffffff8247972890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479728d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247972930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247972960 _sleep() at _sleep+0x3c3/frame 0xffffff82479729f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247972a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247972ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247972bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247972bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1159 tid 100165 td 0xfffffe00d2f97000 sched_switch() at sched_switch+0x1b4/frame 0xffffff824796d840 mi_switch() at mi_switch+0x238/frame 0xffffff824796d890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824796d8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824796d930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824796d960 _sleep() at _sleep+0x3c3/frame 0xffffff824796d9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824796da60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824796dad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824796dbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824796dbf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1158 tid 100164 td 0xfffffe00d2f97480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247968840 mi_switch() at mi_switch+0x238/frame 0xffffff8247968890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479688d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247968930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247968960 _sleep() at _sleep+0x3c3/frame 0xffffff82479689f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247968a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247968ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247968bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247968bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1157 tid 100163 td 0xfffffe00d2e9b000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247963840 mi_switch() at mi_switch+0x238/frame 0xffffff8247963890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479638d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247963930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247963960 _sleep() at _sleep+0x3c3/frame 0xffffff82479639f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247963a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247963ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247963bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247963bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1156 tid 100162 td 0xfffffe00d2e9b480 sched_switch() at sched_switch+0x1b4/frame 0xffffff824795e840 mi_switch() at mi_switch+0x238/frame 0xffffff824795e890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824795e8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824795e930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824795e960 _sleep() at _sleep+0x3c3/frame 0xffffff824795e9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824795ea60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824795ead0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824795ebf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824795ebf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1155 tid 100161 td 0xfffffe00d2e9b900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247959840 mi_switch() at mi_switch+0x238/frame 0xffffff8247959890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479598d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247959930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247959960 _sleep() at _sleep+0x3c3/frame 0xffffff82479599f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247959a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247959ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247959bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247959bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1154 tid 100160 td 0xfffffe00d2e9c000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247954840 mi_switch() at mi_switch+0x238/frame 0xffffff8247954890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479548d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247954930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247954960 _sleep() at _sleep+0x3c3/frame 0xffffff82479549f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247954a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247954ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247954bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247954bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1153 tid 100159 td 0xfffffe00d2e9c480 sched_switch() at sched_switch+0x1b4/frame 0xffffff824794f2d0 mi_switch() at mi_switch+0x238/frame 0xffffff824794f320 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824794f360 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff824794f390 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff824794f470 getblk() at getblk+0x11f/frame 0xffffff824794f500 breadn_flags() at breadn_flags+0x40/frame 0xffffff824794f550 ffs_nodealloccg() at ffs_nodealloccg+0x10c/frame 0xffffff824794f5f0 ffs_hashalloc() at ffs_hashalloc+0x72/frame 0xffffff824794f640 ffs_valloc() at ffs_valloc+0xa0/frame 0xffffff824794f6e0 ufs_mkdir() at ufs_mkdir+0xc5/frame 0xffffff824794f8d0 VOP_MKDIR_APV() at VOP_MKDIR_APV+0xaa/frame 0xffffff824794f8f0 kern_mkdirat() at kern_mkdirat+0x212/frame 0xffffff824794fad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824794fbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824794fbf0 --- syscall (136, FreeBSD ELF32, sys_mkdir), rip = 0x2818266f, rsp = 0xfffec9d0, rbp = 0xfffecdf4 --- Tracing command mkdir pid 1152 tid 100158 td 0xfffffe00d2e9c900 sched_switch() at sched_switch+0x1b4/frame 0xffffff824794a840 mi_switch() at mi_switch+0x238/frame 0xffffff824794a890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824794a8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824794a930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824794a960 _sleep() at _sleep+0x3c3/frame 0xffffff824794a9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824794aa60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824794aad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824794abf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824794abf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1151 tid 100157 td 0xfffffe00d2e9d000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247945840 mi_switch() at mi_switch+0x238/frame 0xffffff8247945890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479458d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247945930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247945960 _sleep() at _sleep+0x3c3/frame 0xffffff82479459f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247945a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247945ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247945bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247945bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1150 tid 100156 td 0xfffffe00d2e9d480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247940840 mi_switch() at mi_switch+0x238/frame 0xffffff8247940890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479408d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247940930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247940960 _sleep() at _sleep+0x3c3/frame 0xffffff82479409f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247940a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247940ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247940bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247940bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1149 tid 100155 td 0xfffffe00d2e9d900 sched_switch() at sched_switch+0x1b4/frame 0xffffff824793b840 mi_switch() at mi_switch+0x238/frame 0xffffff824793b890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824793b8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824793b930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824793b960 _sleep() at _sleep+0x3c3/frame 0xffffff824793b9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824793ba60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824793bad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824793bbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824793bbf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1148 tid 100154 td 0xfffffe00d2e9f000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82479362d0 mi_switch() at mi_switch+0x238/frame 0xffffff8247936320 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247936360 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8247936390 __lockmgr_args() at __lockmgr_args+0x6ef/frame 0xffffff8247936470 getblk() at getblk+0x11f/frame 0xffffff8247936500 breadn_flags() at breadn_flags+0x40/frame 0xffffff8247936550 ffs_nodealloccg() at ffs_nodealloccg+0x10c/frame 0xffffff82479365f0 ffs_hashalloc() at ffs_hashalloc+0x72/frame 0xffffff8247936640 ffs_valloc() at ffs_valloc+0xa0/frame 0xffffff82479366e0 ufs_mkdir() at ufs_mkdir+0xc5/frame 0xffffff82479368d0 VOP_MKDIR_APV() at VOP_MKDIR_APV+0xaa/frame 0xffffff82479368f0 kern_mkdirat() at kern_mkdirat+0x212/frame 0xffffff8247936ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247936bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247936bf0 --- syscall (136, FreeBSD ELF32, sys_mkdir), rip = 0x2818266f, rsp = 0xfffe5570, rbp = 0xfffe5994 --- Tracing command mkdir pid 1147 tid 100153 td 0xfffffe00d2e9f480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247931840 mi_switch() at mi_switch+0x238/frame 0xffffff8247931890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479318d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247931930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247931960 _sleep() at _sleep+0x3c3/frame 0xffffff82479319f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247931a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247931ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247931bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247931bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1146 tid 100152 td 0xfffffe00d2e9f900 sched_switch() at sched_switch+0x1b4/frame 0xffffff824792c840 mi_switch() at mi_switch+0x238/frame 0xffffff824792c890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824792c8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824792c930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824792c960 _sleep() at _sleep+0x3c3/frame 0xffffff824792c9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824792ca60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824792cad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824792cbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824792cbf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1145 tid 100151 td 0xfffffe00d2ea2000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247927840 mi_switch() at mi_switch+0x238/frame 0xffffff8247927890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479278d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247927930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247927960 _sleep() at _sleep+0x3c3/frame 0xffffff82479279f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247927a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247927ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247927bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247927bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1144 tid 100150 td 0xfffffe00d2ea2480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247922840 mi_switch() at mi_switch+0x238/frame 0xffffff8247922890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479228d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247922930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247922960 _sleep() at _sleep+0x3c3/frame 0xffffff82479229f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247922a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247922ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247922bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247922bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1143 tid 100149 td 0xfffffe00d2ea2900 sched_switch() at sched_switch+0x1b4/frame 0xffffff824791d840 mi_switch() at mi_switch+0x238/frame 0xffffff824791d890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824791d8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824791d930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824791d960 _sleep() at _sleep+0x3c3/frame 0xffffff824791d9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824791da60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824791dad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824791dbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824791dbf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1142 tid 100148 td 0xfffffe00d2ea3000 kdb_enter() at kdb_enter+0x3b/frame 0xffffff8247917e20 vpanic() at vpanic+0xe1/frame 0xffffff8247917e60 panic() at panic+0x67/frame 0xffffff8247917f40 __lockmgr_args() at __lockmgr_args+0x1199/frame 0xffffff8247918020 getblk() at getblk+0x11f/frame 0xffffff82479180b0 breadn_flags() at breadn_flags+0x40/frame 0xffffff8247918100 ffs_alloccg() at ffs_alloccg+0x112/frame 0xffffff82479181b0 ffs_hashalloc() at ffs_hashalloc+0x72/frame 0xffffff8247918200 ffs_alloc() at ffs_alloc+0xd0/frame 0xffffff8247918270 ffs_balloc_ufs2() at ffs_balloc_ufs2+0x11ef/frame 0xffffff8247918440 ffs_copyonwrite() at ffs_copyonwrite+0x3e8/frame 0xffffff82479184e0 ffs_geom_strategy() at ffs_geom_strategy+0x1cb/frame 0xffffff8247918520 bufwrite() at bufwrite+0x125/frame 0xffffff8247918550 ffs_nodealloccg() at ffs_nodealloccg+0x4ca/frame 0xffffff82479185f0 ffs_hashalloc() at ffs_hashalloc+0x72/frame 0xffffff8247918640 ffs_valloc() at ffs_valloc+0xa0/frame 0xffffff82479186e0 ufs_mkdir() at ufs_mkdir+0xc5/frame 0xffffff82479188d0 VOP_MKDIR_APV() at VOP_MKDIR_APV+0xaa/frame 0xffffff82479188f0 kern_mkdirat() at kern_mkdirat+0x212/frame 0xffffff8247918ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247918bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247918bf0 --- syscall (136, FreeBSD ELF32, sys_mkdir), rip = 0x2818266f, rsp = 0xfffe5148, rbp = 0xfffe556c --- Tracing command mkdir pid 1141 tid 100147 td 0xfffffe000b60f900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247913840 mi_switch() at mi_switch+0x238/frame 0xffffff8247913890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479138d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247913930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247913960 _sleep() at _sleep+0x3c3/frame 0xffffff82479139f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247913a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247913ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247913bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247913bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1140 tid 100146 td 0xfffffe000b905000 sched_switch() at sched_switch+0x1b4/frame 0xffffff824790e840 mi_switch() at mi_switch+0x238/frame 0xffffff824790e890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824790e8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824790e930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824790e960 _sleep() at _sleep+0x3c3/frame 0xffffff824790e9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff824790ea60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff824790ead0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824790ebf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824790ebf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1139 tid 100145 td 0xfffffe000b905480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247909400 mi_switch() at mi_switch+0x238/frame 0xffffff8247909450 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247909490 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82479094c0 _sleep() at _sleep+0x3e9/frame 0xffffff8247909550 bwait() at bwait+0x67/frame 0xffffff8247909590 bufwait() at bufwait+0x56/frame 0xffffff82479095b0 ffs_vgetf() at ffs_vgetf+0x2ff/frame 0xffffff8247909640 ffs_valloc() at ffs_valloc+0x461/frame 0xffffff82479096e0 ufs_mkdir() at ufs_mkdir+0xc5/frame 0xffffff82479098d0 VOP_MKDIR_APV() at VOP_MKDIR_APV+0xaa/frame 0xffffff82479098f0 kern_mkdirat() at kern_mkdirat+0x212/frame 0xffffff8247909ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247909bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247909bf0 --- syscall (136, FreeBSD ELF32, sys_mkdir), rip = 0x2818266f, rsp = 0xfffe48f8, rbp = 0xfffe4d1c --- Tracing command mkdir pid 1138 tid 100144 td 0xfffffe000b905900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247904840 mi_switch() at mi_switch+0x238/frame 0xffffff8247904890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82479048d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247904930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247904960 _sleep() at _sleep+0x3c3/frame 0xffffff82479049f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247904a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff8247904ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247904bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247904bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1137 tid 100143 td 0xfffffe000b27d000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478ff840 mi_switch() at mi_switch+0x238/frame 0xffffff82478ff890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478ff8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478ff930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82478ff960 _sleep() at _sleep+0x3c3/frame 0xffffff82478ff9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82478ffa60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82478ffad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478ffbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478ffbf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1136 tid 100142 td 0xfffffe000b27d480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478fa840 mi_switch() at mi_switch+0x238/frame 0xffffff82478fa890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478fa8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478fa930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82478fa960 _sleep() at _sleep+0x3c3/frame 0xffffff82478fa9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82478faa60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82478faad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478fabf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478fabf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command mkdir pid 1135 tid 100123 td 0xfffffe000b11b480 sched_switch() at sched_switch+0x1b4/frame 0xffffff824789b630 mi_switch() at mi_switch+0x238/frame 0xffffff824789b680 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824789b6c0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824789b720 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff824789b740 _sleep() at _sleep+0x37d/frame 0xffffff824789b7d0 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff824789b870 kern_wait() at kern_wait+0x9c/frame 0xffffff824789b9d0 freebsd32_wait4() at freebsd32_wait4+0x35/frame 0xffffff824789bad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff824789bbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff824789bbf0 --- syscall (7, FreeBSD ELF32, freebsd32_wait4), rip = 0x280efb57, rsp = 0xffffc734, rbp = 0xffffc750 --- Tracing command mkdir pid 1134 tid 100141 td 0xfffffe000b27d900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478f5840 mi_switch() at mi_switch+0x238/frame 0xffffff82478f5890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478f58d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478f5930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82478f5960 _sleep() at _sleep+0x3c3/frame 0xffffff82478f59f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82478f5a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82478f5ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478f5bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478f5bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc724, rbp = 0xffffc750 --- Tracing command rw pid 1132 tid 100139 td 0xfffffe000b89d480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478eb840 mi_switch() at mi_switch+0x238/frame 0xffffff82478eb890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478eb8d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478eb930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82478eb960 _sleep() at _sleep+0x3c3/frame 0xffffff82478eb9f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82478eba60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82478ebad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478ebbf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478ebbf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2817099f, rsp = 0xffffc734, rbp = 0xffffc760 --- Tracing command run pid 1131 tid 100099 td 0xfffffe000b11f480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247823630 mi_switch() at mi_switch+0x238/frame 0xffffff8247823680 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478236c0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247823720 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247823740 _sleep() at _sleep+0x37d/frame 0xffffff82478237d0 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff8247823870 kern_wait() at kern_wait+0x9c/frame 0xffffff82478239d0 freebsd32_wait4() at freebsd32_wait4+0x35/frame 0xffffff8247823ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff8247823bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff8247823bf0 --- syscall (7, FreeBSD ELF32, freebsd32_wait4), rip = 0x280eeb57, rsp = 0xffffc1d4, rbp = 0xffffc1f0 --- Tracing command run pid 1130 tid 100138 td 0xfffffe000b89d900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478e6630 mi_switch() at mi_switch+0x238/frame 0xffffff82478e6680 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478e66c0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478e6720 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478e6740 _sleep() at _sleep+0x37d/frame 0xffffff82478e67d0 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff82478e6870 kern_wait() at kern_wait+0x9c/frame 0xffffff82478e69d0 freebsd32_wait4() at freebsd32_wait4+0x35/frame 0xffffff82478e6ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478e6bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478e6bf0 --- syscall (7, FreeBSD ELF32, freebsd32_wait4), rip = 0x280eeb57, rsp = 0xffffc6e4, rbp = 0xffffc700 --- Tracing command run pid 1129 tid 100137 td 0xfffffe0008f41480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478e1840 mi_switch() at mi_switch+0x238/frame 0xffffff82478e1890 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478e18d0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478e1930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82478e1960 _sleep() at _sleep+0x3c3/frame 0xffffff82478e19f0 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff82478e1a60 freebsd32_nanosleep() at freebsd32_nanosleep+0x71/frame 0xffffff82478e1ad0 ia32_syscall() at ia32_syscall+0x35f/frame 0xffffff82478e1bf0 Xint0x80_syscall() at Xint0x80_syscall+0x91/frame 0xffffff82478e1bf0 --- syscall (240, FreeBSD ELF32, freebsd32_nanosleep), rip = 0x2816f99f, rsp = 0xffffc6d4, rbp = 0xffffc700 --- Tracing command sh pid 1120 tid 100097 td 0xfffffe000b23f000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247819670 mi_switch() at mi_switch+0x238/frame 0xffffff82478196c0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247819700 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247819760 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247819780 _sleep() at _sleep+0x37d/frame 0xffffff8247819810 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff82478198b0 kern_wait() at kern_wait+0x9c/frame 0xffffff8247819a10 sys_wait4() at sys_wait4+0x35/frame 0xffffff8247819ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247819bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247819bf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x800d302aa, rsp = 0x7fffffffd278, rbp = 0x1 --- Tracing command md5 pid 1105 tid 100084 td 0xfffffe000b240900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477d8810 mi_switch() at mi_switch+0x238/frame 0xffffff82477d8860 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477d88a0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82477d88d0 _sleep() at _sleep+0x3e9/frame 0xffffff82477d8960 bwait() at bwait+0x67/frame 0xffffff82477d89a0 bufwait() at bufwait+0x56/frame 0xffffff82477d89c0 ffs_read() at ffs_read+0x229/frame 0xffffff82477d8a70 VOP_READ_APV() at VOP_READ_APV+0xa3/frame 0xffffff82477d8a90 mdstart_vnode() at mdstart_vnode+0x2a5/frame 0xffffff82477d8b60 md_kthread() at md_kthread+0x151/frame 0xffffff82477d8ba0 fork_exit() at fork_exit+0x139/frame 0xffffff82477d8bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff82477d8bf0 --- trap 0, rip = 0, rsp = 0xffffff82477d8cb0, rbp = 0 --- Tracing command sh pid 1089 tid 100106 td 0xfffffe000b11e480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247846670 mi_switch() at mi_switch+0x238/frame 0xffffff82478466c0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247846700 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247846760 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247846780 _sleep() at _sleep+0x37d/frame 0xffffff8247846810 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff82478468b0 kern_wait() at kern_wait+0x9c/frame 0xffffff8247846a10 sys_wait4() at sys_wait4+0x35/frame 0xffffff8247846ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247846bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247846bf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x800d302aa, rsp = 0x7fffffffd418, rbp = 0x1 --- Tracing command bash pid 1085 tid 100078 td 0xfffffe0008f43900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477ba670 mi_switch() at mi_switch+0x238/frame 0xffffff82477ba6c0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477ba700 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477ba760 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82477ba780 _sleep() at _sleep+0x37d/frame 0xffffff82477ba810 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff82477ba8b0 kern_wait() at kern_wait+0x9c/frame 0xffffff82477baa10 sys_wait4() at sys_wait4+0x35/frame 0xffffff82477baad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477babf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477babf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x8010a12aa, rsp = 0x7fffffffd648, rbp = 0x801918740 --- Tracing command csh pid 1082 tid 100119 td 0xfffffe000b250480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478878b0 mi_switch() at mi_switch+0x238/frame 0xffffff8247887900 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247887940 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478879a0 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478879c0 _sleep() at _sleep+0x37d/frame 0xffffff8247887a50 kern_sigsuspend() at kern_sigsuspend+0xaa/frame 0xffffff8247887aa0 sys_sigsuspend() at sys_sigsuspend+0x34/frame 0xffffff8247887ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247887bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247887bf0 --- syscall (4, FreeBSD ELF64, sys_write), rip = 0x800d4509a, rsp = 0x7fffffffcd88, rbp = 0x80189a400 --- Tracing command su pid 1081 tid 100115 td 0xfffffe000b702900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247873670 mi_switch() at mi_switch+0x238/frame 0xffffff82478736c0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247873700 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247873760 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247873780 _sleep() at _sleep+0x37d/frame 0xffffff8247873810 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff82478738b0 kern_wait() at kern_wait+0x9c/frame 0xffffff8247873a10 sys_wait4() at sys_wait4+0x35/frame 0xffffff8247873ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247873bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247873bf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x800ed42aa, rsp = 0x7fffffffd458, rbp = 0x43a --- Tracing command bash pid 1075 tid 100103 td 0xfffffe000b19d000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247837670 mi_switch() at mi_switch+0x238/frame 0xffffff82478376c0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247837700 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247837760 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8247837780 _sleep() at _sleep+0x37d/frame 0xffffff8247837810 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff82478378b0 kern_wait() at kern_wait+0x9c/frame 0xffffff8247837a10 sys_wait4() at sys_wait4+0x35/frame 0xffffff8247837ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247837bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247837bf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x8010a12aa, rsp = 0x7fffffffd8c8, rbp = 0x80190aa80 --- Tracing command sshd pid 1074 tid 100095 td 0xfffffe000b19d900 sched_switch() at sched_switch+0x1b4/frame 0xffffff824780f690 mi_switch() at mi_switch+0x238/frame 0xffffff824780f6e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824780f720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824780f780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff824780f7a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff824780f800 seltdwait() at seltdwait+0xad/frame 0xffffff824780f830 kern_select() at kern_select+0x79f/frame 0xffffff824780fa80 sys_select() at sys_select+0x5d/frame 0xffffff824780fad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff824780fbf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff824780fbf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80255f8aa, rsp = 0x7fffffffcc58, rbp = 0x7fffffffcce0 --- Tracing command sshd pid 1072 tid 100086 td 0xfffffe000b120480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477e2760 mi_switch() at mi_switch+0x238/frame 0xffffff82477e27b0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477e27f0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477e2850 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82477e2870 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82477e28d0 seltdwait() at seltdwait+0xad/frame 0xffffff82477e2900 sys_poll() at sys_poll+0x3e6/frame 0xffffff82477e2ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477e2bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477e2bf0 --- syscall (209, FreeBSD ELF64, sys_poll), rip = 0x8024f950a, rsp = 0x7fffffffccf8, rbp = 0x803c22190 --- Tracing command getty pid 1071 tid 100125 td 0xfffffe0008f45900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478a5710 mi_switch() at mi_switch+0x238/frame 0xffffff82478a5760 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478a57a0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478a5800 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478a5820 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82478a5880 tty_wait() at tty_wait+0x4c/frame 0xffffff82478a58b0 ttydisc_read() at ttydisc_read+0x38e/frame 0xffffff82478a5950 ttydev_read() at ttydev_read+0x95/frame 0xffffff82478a5980 devfs_read_f() at devfs_read_f+0x90/frame 0xffffff82478a59f0 dofileread() at dofileread+0xa1/frame 0xffffff82478a5a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478a5a80 sys_read() at sys_read+0x64/frame 0xffffff82478a5ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82478a5bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82478a5bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b4b92a, rsp = 0x7fffffffdc98, rbp = 0 --- Tracing command getty pid 1070 tid 100126 td 0xfffffe0008f45480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478aa710 mi_switch() at mi_switch+0x238/frame 0xffffff82478aa760 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478aa7a0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478aa800 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478aa820 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82478aa880 tty_wait() at tty_wait+0x4c/frame 0xffffff82478aa8b0 ttydisc_read() at ttydisc_read+0x38e/frame 0xffffff82478aa950 ttydev_read() at ttydev_read+0x95/frame 0xffffff82478aa980 devfs_read_f() at devfs_read_f+0x90/frame 0xffffff82478aa9f0 dofileread() at dofileread+0xa1/frame 0xffffff82478aaa40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478aaa80 sys_read() at sys_read+0x64/frame 0xffffff82478aaad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82478aabf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82478aabf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b4b92a, rsp = 0x7fffffffdc98, rbp = 0 --- Tracing command getty pid 1069 tid 100127 td 0xfffffe000b752900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478af710 mi_switch() at mi_switch+0x238/frame 0xffffff82478af760 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478af7a0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478af800 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478af820 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82478af880 tty_wait() at tty_wait+0x4c/frame 0xffffff82478af8b0 ttydisc_read() at ttydisc_read+0x38e/frame 0xffffff82478af950 ttydev_read() at ttydev_read+0x95/frame 0xffffff82478af980 devfs_read_f() at devfs_read_f+0x90/frame 0xffffff82478af9f0 dofileread() at dofileread+0xa1/frame 0xffffff82478afa40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478afa80 sys_read() at sys_read+0x64/frame 0xffffff82478afad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82478afbf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82478afbf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b4b92a, rsp = 0x7fffffffdc98, rbp = 0 --- Tracing command getty pid 1068 tid 100128 td 0xfffffe000b752480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478b4710 mi_switch() at mi_switch+0x238/frame 0xffffff82478b4760 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478b47a0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478b4800 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478b4820 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82478b4880 tty_wait() at tty_wait+0x4c/frame 0xffffff82478b48b0 ttydisc_read() at ttydisc_read+0x38e/frame 0xffffff82478b4950 ttydev_read() at ttydev_read+0x95/frame 0xffffff82478b4980 devfs_read_f() at devfs_read_f+0x90/frame 0xffffff82478b49f0 dofileread() at dofileread+0xa1/frame 0xffffff82478b4a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478b4a80 sys_read() at sys_read+0x64/frame 0xffffff82478b4ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82478b4bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82478b4bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b4b92a, rsp = 0x7fffffffdc98, rbp = 0 --- Tracing command getty pid 1067 tid 100129 td 0xfffffe000b752000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478b9710 mi_switch() at mi_switch+0x238/frame 0xffffff82478b9760 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478b97a0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478b9800 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478b9820 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82478b9880 tty_wait() at tty_wait+0x4c/frame 0xffffff82478b98b0 ttydisc_read() at ttydisc_read+0x38e/frame 0xffffff82478b9950 ttydev_read() at ttydev_read+0x95/frame 0xffffff82478b9980 devfs_read_f() at devfs_read_f+0x90/frame 0xffffff82478b99f0 dofileread() at dofileread+0xa1/frame 0xffffff82478b9a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478b9a80 sys_read() at sys_read+0x64/frame 0xffffff82478b9ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82478b9bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82478b9bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b4b92a, rsp = 0x7fffffffdc98, rbp = 0 --- Tracing command getty pid 1066 tid 100130 td 0xfffffe000b621900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478be710 mi_switch() at mi_switch+0x238/frame 0xffffff82478be760 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478be7a0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478be800 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478be820 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82478be880 tty_wait() at tty_wait+0x4c/frame 0xffffff82478be8b0 ttydisc_read() at ttydisc_read+0x38e/frame 0xffffff82478be950 ttydev_read() at ttydev_read+0x95/frame 0xffffff82478be980 devfs_read_f() at devfs_read_f+0x90/frame 0xffffff82478be9f0 dofileread() at dofileread+0xa1/frame 0xffffff82478bea40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478bea80 sys_read() at sys_read+0x64/frame 0xffffff82478bead0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82478bebf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82478bebf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b4b92a, rsp = 0x7fffffffdc98, rbp = 0 --- Tracing command getty pid 1065 tid 100131 td 0xfffffe000b621480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478c3710 mi_switch() at mi_switch+0x238/frame 0xffffff82478c3760 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478c37a0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478c3800 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478c3820 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82478c3880 tty_wait() at tty_wait+0x4c/frame 0xffffff82478c38b0 ttydisc_read() at ttydisc_read+0x38e/frame 0xffffff82478c3950 ttydev_read() at ttydev_read+0x95/frame 0xffffff82478c3980 devfs_read_f() at devfs_read_f+0x90/frame 0xffffff82478c39f0 dofileread() at dofileread+0xa1/frame 0xffffff82478c3a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478c3a80 sys_read() at sys_read+0x64/frame 0xffffff82478c3ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82478c3bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82478c3bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b4b92a, rsp = 0x7fffffffdc98, rbp = 0 --- Tracing command getty pid 1064 tid 100132 td 0xfffffe000b621000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478c8710 mi_switch() at mi_switch+0x238/frame 0xffffff82478c8760 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478c87a0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478c8800 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478c8820 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82478c8880 tty_wait() at tty_wait+0x4c/frame 0xffffff82478c88b0 ttydisc_read() at ttydisc_read+0x38e/frame 0xffffff82478c8950 ttydev_read() at ttydev_read+0x95/frame 0xffffff82478c8980 devfs_read_f() at devfs_read_f+0x90/frame 0xffffff82478c89f0 dofileread() at dofileread+0xa1/frame 0xffffff82478c8a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82478c8a80 sys_read() at sys_read+0x64/frame 0xffffff82478c8ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82478c8bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82478c8bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b4b92a, rsp = 0x7fffffffdc98, rbp = 0 --- Tracing command getty pid 1063 tid 100076 td 0xfffffe000b120900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477b0710 mi_switch() at mi_switch+0x238/frame 0xffffff82477b0760 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477b07a0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477b0800 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82477b0820 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82477b0880 tty_wait() at tty_wait+0x4c/frame 0xffffff82477b08b0 ttydisc_read() at ttydisc_read+0x38e/frame 0xffffff82477b0950 ttydev_read() at ttydev_read+0x95/frame 0xffffff82477b0980 devfs_read_f() at devfs_read_f+0x90/frame 0xffffff82477b09f0 dofileread() at dofileread+0xa1/frame 0xffffff82477b0a40 kern_readv() at kern_readv+0x6c/frame 0xffffff82477b0a80 sys_read() at sys_read+0x64/frame 0xffffff82477b0ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477b0bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477b0bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x800b4b92a, rsp = 0x7fffffffdc98, rbp = 0 --- Tracing command inetd pid 1024 tid 100110 td 0xfffffe000b1af900 sched_switch() at sched_switch+0x1b4/frame 0xffffff824785a690 mi_switch() at mi_switch+0x238/frame 0xffffff824785a6e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824785a720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824785a780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff824785a7a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff824785a800 seltdwait() at seltdwait+0xad/frame 0xffffff824785a830 kern_select() at kern_select+0x79f/frame 0xffffff824785aa80 sys_select() at sys_select+0x5d/frame 0xffffff824785aad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff824785abf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff824785abf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x800f608aa, rsp = 0x7fffffffcd68, rbp = 0x1 --- Tracing command moused pid 991 tid 100114 td 0xfffffe000b60f000 sched_switch() at sched_switch+0x1b4/frame 0xffffff824786e690 mi_switch() at mi_switch+0x238/frame 0xffffff824786e6e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824786e720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824786e780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff824786e7a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff824786e800 seltdwait() at seltdwait+0xad/frame 0xffffff824786e830 kern_select() at kern_select+0x79f/frame 0xffffff824786ea80 sys_select() at sys_select+0x5d/frame 0xffffff824786ead0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff824786ebf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff824786ebf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x800d728aa, rsp = 0x7fffffffd858, rbp = 0x7fffffffdf31 --- Tracing command watchdogd pid 971 tid 100093 td 0xfffffe000b23f900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247805850 mi_switch() at mi_switch+0x238/frame 0xffffff82478058a0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478058e0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247805940 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247805970 _sleep() at _sleep+0x3c3/frame 0xffffff8247805a00 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247805a70 sys_nanosleep() at sys_nanosleep+0x6e/frame 0xffffff8247805ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247805bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247805bf0 --- syscall (240, FreeBSD ELF64, sys_nanosleep), rip = 0x800b27baa, rsp = 0x7fffffffdba8, rbp = 0x7fffffffdbf0 --- Tracing command cron pid 961 tid 100105 td 0xfffffe000b11e900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247841850 mi_switch() at mi_switch+0x238/frame 0xffffff82478418a0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82478418e0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247841940 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247841970 _sleep() at _sleep+0x3c3/frame 0xffffff8247841a00 kern_nanosleep() at kern_nanosleep+0x118/frame 0xffffff8247841a70 sys_nanosleep() at sys_nanosleep+0x6e/frame 0xffffff8247841ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247841bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247841bf0 --- syscall (240, FreeBSD ELF64, sys_nanosleep), rip = 0x800d39baa, rsp = 0x7fffffffdac8, rbp = 0x3c --- Tracing command sendmail pid 954 tid 100088 td 0xfffffe000b120000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477ec8b0 mi_switch() at mi_switch+0x238/frame 0xffffff82477ec900 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477ec940 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477ec9a0 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82477ec9c0 _sleep() at _sleep+0x37d/frame 0xffffff82477eca50 kern_sigsuspend() at kern_sigsuspend+0xaa/frame 0xffffff82477ecaa0 sys_sigsuspend() at sys_sigsuspend+0x34/frame 0xffffff82477ecad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477ecbf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477ecbf0 --- syscall (4, FreeBSD ELF64, sys_write), rip = 0x80139609a, rsp = 0x7fffffffbda8, rbp = 0x1 --- Tracing command sendmail pid 950 tid 100100 td 0xfffffe000b23e900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247828680 mi_switch() at mi_switch+0x238/frame 0xffffff82478286d0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247828710 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247828770 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82478287a0 _cv_timedwait_sig() at _cv_timedwait_sig+0x18f/frame 0xffffff8247828800 seltdwait() at seltdwait+0x57/frame 0xffffff8247828830 kern_select() at kern_select+0x79f/frame 0xffffff8247828a80 sys_select() at sys_select+0x5d/frame 0xffffff8247828ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247828bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247828bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x8014498aa, rsp = 0x7fffffffb218, rbp = 0x7fffffffb2b0 --- Tracing command sshd pid 942 tid 100082 td 0xfffffe000b1b5480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477ce690 mi_switch() at mi_switch+0x238/frame 0xffffff82477ce6e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477ce720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477ce780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82477ce7a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82477ce800 seltdwait() at seltdwait+0xad/frame 0xffffff82477ce830 kern_select() at kern_select+0x79f/frame 0xffffff82477cea80 sys_select() at sys_select+0x5d/frame 0xffffff82477cead0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477cebf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477cebf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80255f8aa, rsp = 0x7fffffffcd78, rbp = 0x2 --- Tracing command ntpd pid 851 tid 100092 td 0xfffffe000b240000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247800690 mi_switch() at mi_switch+0x238/frame 0xffffff82478006e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247800720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247800780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478007a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff8247800800 seltdwait() at seltdwait+0xad/frame 0xffffff8247800830 kern_select() at kern_select+0x79f/frame 0xffffff8247800a80 sys_select() at sys_select+0x5d/frame 0xffffff8247800ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247800bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247800bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x8013a98aa, rsp = 0x7fffffffdbc8, rbp = 0x7fffffffdd08 --- Tracing command nfsd pid 756 tid 100109 td 0xfffffe000b19c000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478558e0 mi_switch() at mi_switch+0x238/frame 0xffffff8247855930 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247855970 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478559d0 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247855a00 _cv_timedwait_sig() at _cv_timedwait_sig+0x18f/frame 0xffffff8247855a60 svc_run_internal() at svc_run_internal+0x895/frame 0xffffff8247855b90 svc_thread_start() at svc_thread_start+0xb/frame 0xffffff8247855ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8247855bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8247855bf0 --- trap 0xc, rip = 0x800885cfa, rsp = 0x7fffffffd678, rbp = 0x5 --- Tracing command nfsd pid 756 tid 100108 td 0xfffffe000b19c480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82478508e0 mi_switch() at mi_switch+0x238/frame 0xffffff8247850930 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247850970 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82478509d0 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff8247850a00 _cv_timedwait_sig() at _cv_timedwait_sig+0x18f/frame 0xffffff8247850a60 svc_run_internal() at svc_run_internal+0x895/frame 0xffffff8247850b90 svc_thread_start() at svc_thread_start+0xb/frame 0xffffff8247850ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8247850bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8247850bf0 --- trap 0xc, rip = 0x800885cfa, rsp = 0x7fffffffd678, rbp = 0x5 --- Tracing command nfsd pid 756 tid 100107 td 0xfffffe000b19c900 sched_switch() at sched_switch+0x1b4/frame 0xffffff824784b8e0 mi_switch() at mi_switch+0x238/frame 0xffffff824784b930 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824784b970 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824784b9d0 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824784ba00 _cv_timedwait_sig() at _cv_timedwait_sig+0x18f/frame 0xffffff824784ba60 svc_run_internal() at svc_run_internal+0x895/frame 0xffffff824784bb90 svc_thread_start() at svc_thread_start+0xb/frame 0xffffff824784bba0 fork_exit() at fork_exit+0x139/frame 0xffffff824784bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff824784bbf0 --- trap 0xc, rip = 0x800885cfa, rsp = 0x7fffffffd678, rbp = 0x5 --- Tracing command nfsd pid 756 tid 100104 td 0xfffffe000b11f000 sched_switch() at sched_switch+0x1b4/frame 0xffffff824783c070 mi_switch() at mi_switch+0x238/frame 0xffffff824783c0c0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff824783c100 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff824783c160 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff824783c190 _cv_timedwait_sig() at _cv_timedwait_sig+0x18f/frame 0xffffff824783c1f0 svc_run_internal() at svc_run_internal+0x895/frame 0xffffff824783c320 svc_run() at svc_run+0x94/frame 0xffffff824783c340 nfsrvd_nfsd() at nfsrvd_nfsd+0x1c7/frame 0xffffff824783c490 nfssvc_nfsd() at nfssvc_nfsd+0x9b/frame 0xffffff824783cab0 sys_nfssvc() at sys_nfssvc+0xb0/frame 0xffffff824783cad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff824783cbf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff824783cbf0 --- syscall (155, FreeBSD ELF64, sys_nfssvc), rip = 0x800885cfa, rsp = 0x7fffffffd678, rbp = 0x5 --- Tracing command nfsd pid 755 tid 100090 td 0xfffffe000b1b4480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477f6690 mi_switch() at mi_switch+0x238/frame 0xffffff82477f66e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477f6720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477f6780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82477f67a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82477f6800 seltdwait() at seltdwait+0xad/frame 0xffffff82477f6830 kern_select() at kern_select+0x79f/frame 0xffffff82477f6a80 sys_select() at sys_select+0x5d/frame 0xffffff82477f6ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477f6bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477f6bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x8009388aa, rsp = 0x7fffffffd928, rbp = 0x7fffffffdc00 --- Tracing command mountd pid 746 tid 100096 td 0xfffffe000b23f480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8247814690 mi_switch() at mi_switch+0x238/frame 0xffffff82478146e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8247814720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8247814780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82478147a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff8247814800 seltdwait() at seltdwait+0xad/frame 0xffffff8247814830 kern_select() at kern_select+0x79f/frame 0xffffff8247814a80 sys_select() at sys_select+0x5d/frame 0xffffff8247814ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8247814bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8247814bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x800b508aa, rsp = 0x7fffffffdb78, rbp = 0x801419060 --- Tracing command rpcbind pid 641 tid 100087 td 0xfffffe000b1b4900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477e7750 mi_switch() at mi_switch+0x238/frame 0xffffff82477e77a0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477e77e0 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477e7840 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82477e7870 _cv_timedwait_sig() at _cv_timedwait_sig+0x18f/frame 0xffffff82477e78d0 seltdwait() at seltdwait+0x57/frame 0xffffff82477e7900 sys_poll() at sys_poll+0x3e6/frame 0xffffff82477e7ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477e7bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477e7bf0 --- syscall (209, FreeBSD ELF64, sys_poll), rip = 0x800cf350a, rsp = 0x7fffffffba48, rbp = 0x80141b020 --- Tracing command syslogd pid 615 tid 100091 td 0xfffffe000b240480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477fb690 mi_switch() at mi_switch+0x238/frame 0xffffff82477fb6e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477fb720 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477fb780 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff82477fb7a0 _cv_wait_sig() at _cv_wait_sig+0x181/frame 0xffffff82477fb800 seltdwait() at seltdwait+0xad/frame 0xffffff82477fb830 kern_select() at kern_select+0x79f/frame 0xffffff82477fba80 sys_select() at sys_select+0x5d/frame 0xffffff82477fbad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477fbbf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477fbbf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x800b4e8aa, rsp = 0x7fffffffd118, rbp = 0x80142c108 --- Tracing command devd pid 434 tid 100089 td 0xfffffe000b11f900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82477f1680 mi_switch() at mi_switch+0x238/frame 0xffffff82477f16d0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82477f1710 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff82477f1770 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x19/frame 0xffffff82477f17a0 _cv_timedwait_sig() at _cv_timedwait_sig+0x18f/frame 0xffffff82477f1800 seltdwait() at seltdwait+0x57/frame 0xffffff82477f1830 kern_select() at kern_select+0x79f/frame 0xffffff82477f1a80 sys_select() at sys_select+0x5d/frame 0xffffff82477f1ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff82477f1bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff82477f1bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x442aaa, rsp = 0x7fffffffd828, rbp = 0x10 --- Tracing command softdepflush pid 18 tid 100075 td 0xfffffe0008f44480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234c44a10 mi_switch() at mi_switch+0x238/frame 0xffffff8234c44a60 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234c44aa0 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff8234c44ad0 _sleep() at _sleep+0x29a/frame 0xffffff8234c44b60 softdep_flush() at softdep_flush+0x20d/frame 0xffffff8234c44ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234c44bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234c44bf0 --- trap 0, rip = 0, rsp = 0xffffff8234c44cb0, rbp = 0 --- Tracing command vnlru pid 17 tid 100074 td 0xfffffe0008f44900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234c3f9d0 mi_switch() at mi_switch+0x238/frame 0xffffff8234c3fa20 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234c3fa60 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff8234c3fa90 _sleep() at _sleep+0x29a/frame 0xffffff8234c3fb20 vnlru_proc() at vnlru_proc+0x537/frame 0xffffff8234c3fba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234c3fbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234c3fbf0 --- trap 0, rip = 0, rsp = 0xffffff8234c3fcb0, rbp = 0 --- Tracing command syncer pid 16 tid 100073 td 0xfffffe0008f45000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234c3a9f0 mi_switch() at mi_switch+0x238/frame 0xffffff8234c3aa40 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234c3aa80 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff8234c3aab0 _cv_timedwait() at _cv_timedwait+0x18f/frame 0xffffff8234c3ab10 sched_sync() at sched_sync+0x4ee/frame 0xffffff8234c3aba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234c3abf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234c3abf0 --- trap 0, rip = 0, rsp = 0xffffff8234c3acb0, rbp = 0 --- Tracing command bufdaemon pid 9 tid 100072 td 0xfffffe0008042000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234c35a30 mi_switch() at mi_switch+0x238/frame 0xffffff8234c35a80 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234c35ac0 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff8234c35af0 _sleep() at _sleep+0x29a/frame 0xffffff8234c35b80 buf_daemon() at buf_daemon+0x192/frame 0xffffff8234c35ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234c35bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234c35bf0 --- trap 0, rip = 0, rsp = 0xffffff8234c35cb0, rbp = 0 --- Tracing command pagezero pid 8 tid 100071 td 0xfffffe0008042480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234c30a30 mi_switch() at mi_switch+0x238/frame 0xffffff8234c30a80 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234c30ac0 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff8234c30af0 _sleep() at _sleep+0x29a/frame 0xffffff8234c30b80 vm_pagezero() at vm_pagezero+0x73/frame 0xffffff8234c30ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234c30bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234c30bf0 --- trap 0, rip = 0, rsp = 0xffffff8234c30cb0, rbp = 0 --- Tracing command vmdaemon pid 7 tid 100070 td 0xfffffe0008042900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234c2b9e0 mi_switch() at mi_switch+0x238/frame 0xffffff8234c2ba30 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234c2ba70 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234c2baa0 _sleep() at _sleep+0x3e9/frame 0xffffff8234c2bb30 vm_daemon() at vm_daemon+0x4d/frame 0xffffff8234c2bba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234c2bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234c2bbf0 --- trap 0, rip = 0, rsp = 0xffffff8234c2bcb0, rbp = 0 --- Tracing command pagedaemon pid 6 tid 100069 td 0xfffffe0008045000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234c26940 mi_switch() at mi_switch+0x238/frame 0xffffff8234c26990 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234c269d0 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff8234c26a00 _sleep() at _sleep+0x29a/frame 0xffffff8234c26a90 vm_pageout() at vm_pageout+0xb8f/frame 0xffffff8234c26ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234c26bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234c26bf0 --- trap 0, rip = 0, rsp = 0xffffff8234c26cb0, rbp = 0 --- Tracing command xpt_thrd pid 5 tid 100068 td 0xfffffe0008045480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234aa1a30 mi_switch() at mi_switch+0x238/frame 0xffffff8234aa1a80 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234aa1ac0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234aa1af0 _sleep() at _sleep+0x3e9/frame 0xffffff8234aa1b80 xpt_scanner_thread() at xpt_scanner_thread+0xdd/frame 0xffffff8234aa1ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234aa1bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234aa1bf0 --- trap 0, rip = 0, rsp = 0xffffff8234aa1cb0, rbp = 0 --- Tracing command sctp_iterator pid 4 tid 100067 td 0xfffffe0008045900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a9ca40 mi_switch() at mi_switch+0x238/frame 0xffffff8234a9ca90 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234a9cad0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234a9cb00 _sleep() at _sleep+0x3e9/frame 0xffffff8234a9cb90 sctp_iterator_thread() at sctp_iterator_thread+0x3f/frame 0xffffff8234a9cba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a9cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a9cbf0 --- trap 0, rip = 0, rsp = 0xffffff8234a9ccb0, rbp = 0 --- Tracing command ctl_thrd pid 3 tid 100064 td 0xfffffe0008047900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a8c3f0 mi_switch() at mi_switch+0x238/frame 0xffffff8234a8c440 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234a8c480 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234a8c4b0 _sleep() at _sleep+0x3e9/frame 0xffffff8234a8c540 ctl_work_thread() at ctl_work_thread+0x1ce8/frame 0xffffff8234a8cba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a8cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a8cbf0 --- trap 0, rip = 0, rsp = 0xffffff8234a8ccb0, rbp = 0 --- Tracing command fdc0 pid 2 tid 100061 td 0xfffffe0008048900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a79990 mi_switch() at mi_switch+0x238/frame 0xffffff8234a799e0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234a79a20 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff8234a79a50 _sleep() at _sleep+0x29a/frame 0xffffff8234a79ae0 fdc_thread() at fdc_thread+0x7f4/frame 0xffffff8234a79ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a79bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a79bf0 --- trap 0, rip = 0, rsp = 0xffffff8234a79cb0, rbp = 0 --- Tracing command usb pid 15 tid 100058 td 0xfffffe0008017000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a33a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234a33aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234a33ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234a33b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234a33b70 usb_process() at usb_process+0x172/frame 0xffffff8234a33ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a33bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a33bf0 --- trap 0, rip = 0, rsp = 0xffffff8234a33cb0, rbp = 0 --- Tracing command usb pid 15 tid 100057 td 0xfffffe0008017480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a2ea50 mi_switch() at mi_switch+0x238/frame 0xffffff8234a2eaa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234a2eae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234a2eb10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234a2eb70 usb_process() at usb_process+0x172/frame 0xffffff8234a2eba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a2ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a2ebf0 --- trap 0, rip = 0, rsp = 0xffffff8234a2ecb0, rbp = 0 --- Tracing command usb pid 15 tid 100056 td 0xfffffe0008017900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a29a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234a29aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234a29ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234a29b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234a29b70 usb_process() at usb_process+0x172/frame 0xffffff8234a29ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a29bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a29bf0 --- trap 0, rip = 0, rsp = 0xffffff8234a29cb0, rbp = 0 --- Tracing command usb pid 15 tid 100055 td 0xfffffe0008018000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a24a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234a24aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234a24ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234a24b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234a24b70 usb_process() at usb_process+0x172/frame 0xffffff8234a24ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a24bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a24bf0 --- trap 0, rip = 0, rsp = 0xffffff8234a24cb0, rbp = 0 --- Tracing command usb pid 15 tid 100053 td 0xfffffe0008018900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234897a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234897aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234897ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234897b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234897b70 usb_process() at usb_process+0x172/frame 0xffffff8234897ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234897bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234897bf0 --- trap 0, rip = 0, rsp = 0xffffff8234897cb0, rbp = 0 --- Tracing command usb pid 15 tid 100052 td 0xfffffe0008019000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234892a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234892aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234892ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234892b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234892b70 usb_process() at usb_process+0x172/frame 0xffffff8234892ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234892bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234892bf0 --- trap 0, rip = 0, rsp = 0xffffff8234892cb0, rbp = 0 --- Tracing command usb pid 15 tid 100051 td 0xfffffe0008019480 sched_switch() at sched_switch+0x1b4/frame 0xffffff823488da50 mi_switch() at mi_switch+0x238/frame 0xffffff823488daa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff823488dae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff823488db10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff823488db70 usb_process() at usb_process+0x172/frame 0xffffff823488dba0 fork_exit() at fork_exit+0x139/frame 0xffffff823488dbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff823488dbf0 --- trap 0, rip = 0, rsp = 0xffffff823488dcb0, rbp = 0 --- Tracing command usb pid 15 tid 100050 td 0xfffffe0008019900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234888a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234888aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234888ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234888b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234888b70 usb_process() at usb_process+0x172/frame 0xffffff8234888ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234888bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234888bf0 --- trap 0, rip = 0, rsp = 0xffffff8234888cb0, rbp = 0 --- Tracing command usb pid 15 tid 100049 td 0xfffffe000800a000 sched_switch() at sched_switch+0x1b4/frame 0xffffff823483fa50 mi_switch() at mi_switch+0x238/frame 0xffffff823483faa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff823483fae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff823483fb10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff823483fb70 usb_process() at usb_process+0x172/frame 0xffffff823483fba0 fork_exit() at fork_exit+0x139/frame 0xffffff823483fbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff823483fbf0 --- trap 0, rip = 0, rsp = 0xffffff823483fcb0, rbp = 0 --- Tracing command usb pid 15 tid 100048 td 0xfffffe000800a480 sched_switch() at sched_switch+0x1b4/frame 0xffffff823483aa50 mi_switch() at mi_switch+0x238/frame 0xffffff823483aaa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff823483aae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff823483ab10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff823483ab70 usb_process() at usb_process+0x172/frame 0xffffff823483aba0 fork_exit() at fork_exit+0x139/frame 0xffffff823483abf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff823483abf0 --- trap 0, rip = 0, rsp = 0xffffff823483acb0, rbp = 0 --- Tracing command usb pid 15 tid 100047 td 0xfffffe000800a900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234835a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234835aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234835ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234835b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234835b70 usb_process() at usb_process+0x172/frame 0xffffff8234835ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234835bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234835bf0 --- trap 0, rip = 0, rsp = 0xffffff8234835cb0, rbp = 0 --- Tracing command usb pid 15 tid 100046 td 0xfffffe000800b000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234830a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234830aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234830ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234830b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234830b70 usb_process() at usb_process+0x172/frame 0xffffff8234830ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234830bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234830bf0 --- trap 0, rip = 0, rsp = 0xffffff8234830cb0, rbp = 0 --- Tracing command usb pid 15 tid 100045 td 0xfffffe000800b480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82347e7a50 mi_switch() at mi_switch+0x238/frame 0xffffff82347e7aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82347e7ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82347e7b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff82347e7b70 usb_process() at usb_process+0x172/frame 0xffffff82347e7ba0 fork_exit() at fork_exit+0x139/frame 0xffffff82347e7bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff82347e7bf0 --- trap 0, rip = 0, rsp = 0xffffff82347e7cb0, rbp = 0 --- Tracing command usb pid 15 tid 100044 td 0xfffffe000800b900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82347e2a50 mi_switch() at mi_switch+0x238/frame 0xffffff82347e2aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82347e2ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82347e2b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff82347e2b70 usb_process() at usb_process+0x172/frame 0xffffff82347e2ba0 fork_exit() at fork_exit+0x139/frame 0xffffff82347e2bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff82347e2bf0 --- trap 0, rip = 0, rsp = 0xffffff82347e2cb0, rbp = 0 --- Tracing command usb pid 15 tid 100043 td 0xfffffe000800d000 sched_switch() at sched_switch+0x1b4/frame 0xffffff82347dda50 mi_switch() at mi_switch+0x238/frame 0xffffff82347ddaa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82347ddae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82347ddb10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff82347ddb70 usb_process() at usb_process+0x172/frame 0xffffff82347ddba0 fork_exit() at fork_exit+0x139/frame 0xffffff82347ddbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff82347ddbf0 --- trap 0, rip = 0, rsp = 0xffffff82347ddcb0, rbp = 0 --- Tracing command usb pid 15 tid 100042 td 0xfffffe000800d480 sched_switch() at sched_switch+0x1b4/frame 0xffffff82347d8a50 mi_switch() at mi_switch+0x238/frame 0xffffff82347d8aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff82347d8ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff82347d8b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff82347d8b70 usb_process() at usb_process+0x172/frame 0xffffff82347d8ba0 fork_exit() at fork_exit+0x139/frame 0xffffff82347d8bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff82347d8bf0 --- trap 0, rip = 0, rsp = 0xffffff82347d8cb0, rbp = 0 --- Tracing command usb pid 15 tid 100040 td 0xfffffe000800f000 sched_switch() at sched_switch+0x1b4/frame 0xffffff823478aa50 mi_switch() at mi_switch+0x238/frame 0xffffff823478aaa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff823478aae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff823478ab10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff823478ab70 usb_process() at usb_process+0x172/frame 0xffffff823478aba0 fork_exit() at fork_exit+0x139/frame 0xffffff823478abf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff823478abf0 --- trap 0, rip = 0, rsp = 0xffffff823478acb0, rbp = 0 --- Tracing command usb pid 15 tid 100039 td 0xfffffe0008003000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234785a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234785aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234785ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234785b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234785b70 usb_process() at usb_process+0x172/frame 0xffffff8234785ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234785bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234785bf0 --- trap 0, rip = 0, rsp = 0xffffff8234785cb0, rbp = 0 --- Tracing command usb pid 15 tid 100038 td 0xfffffe0008003480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234780a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234780aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234780ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234780b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234780b70 usb_process() at usb_process+0x172/frame 0xffffff8234780ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234780bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234780bf0 --- trap 0, rip = 0, rsp = 0xffffff8234780cb0, rbp = 0 --- Tracing command usb pid 15 tid 100037 td 0xfffffe0008003900 sched_switch() at sched_switch+0x1b4/frame 0xffffff823477ba50 mi_switch() at mi_switch+0x238/frame 0xffffff823477baa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff823477bae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff823477bb10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff823477bb70 usb_process() at usb_process+0x172/frame 0xffffff823477bba0 fork_exit() at fork_exit+0x139/frame 0xffffff823477bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff823477bbf0 --- trap 0, rip = 0, rsp = 0xffffff823477bcb0, rbp = 0 --- Tracing command usb pid 15 tid 100035 td 0xfffffe0008004480 sched_switch() at sched_switch+0x1b4/frame 0xffffff823472da50 mi_switch() at mi_switch+0x238/frame 0xffffff823472daa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff823472dae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff823472db10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff823472db70 usb_process() at usb_process+0x172/frame 0xffffff823472dba0 fork_exit() at fork_exit+0x139/frame 0xffffff823472dbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff823472dbf0 --- trap 0, rip = 0, rsp = 0xffffff823472dcb0, rbp = 0 --- Tracing command usb pid 15 tid 100034 td 0xfffffe0008004900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234728a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234728aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234728ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234728b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234728b70 usb_process() at usb_process+0x172/frame 0xffffff8234728ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234728bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234728bf0 --- trap 0, rip = 0, rsp = 0xffffff8234728cb0, rbp = 0 --- Tracing command usb pid 15 tid 100033 td 0xfffffe0008005000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234723a50 mi_switch() at mi_switch+0x238/frame 0xffffff8234723aa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234723ae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234723b10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8234723b70 usb_process() at usb_process+0x172/frame 0xffffff8234723ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234723bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234723bf0 --- trap 0, rip = 0, rsp = 0xffffff8234723cb0, rbp = 0 --- Tracing command usb pid 15 tid 100032 td 0xfffffe0008005480 sched_switch() at sched_switch+0x1b4/frame 0xffffff823471ea50 mi_switch() at mi_switch+0x238/frame 0xffffff823471eaa0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff823471eae0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff823471eb10 _cv_wait() at _cv_wait+0x17d/frame 0xffffff823471eb70 usb_process() at usb_process+0x172/frame 0xffffff823471eba0 fork_exit() at fork_exit+0x139/frame 0xffffff823471ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff823471ebf0 --- trap 0, rip = 0, rsp = 0xffffff823471ecb0, rbp = 0 --- Tracing command yarrow pid 14 tid 100017 td 0xfffffe000524a900 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002a3a10 mi_switch() at mi_switch+0x238/frame 0xffffff80002a3a60 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff80002a3aa0 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff80002a3ad0 _sleep() at _sleep+0x29a/frame 0xffffff80002a3b60 random_kthread() at random_kthread+0x1ad/frame 0xffffff80002a3ba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002a3bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002a3bf0 --- trap 0, rip = 0, rsp = 0xffffff80002a3cb0, rbp = 0 --- Tracing command geom pid 13 tid 100015 td 0xfffffe0005233000 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002999f0 mi_switch() at mi_switch+0x238/frame 0xffffff8000299a40 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8000299a80 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8000299ab0 _sleep() at _sleep+0x3e9/frame 0xffffff8000299b40 g_io_schedule_down() at g_io_schedule_down+0x26f/frame 0xffffff8000299b90 g_down_procbody() at g_down_procbody+0x7c/frame 0xffffff8000299ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8000299bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8000299bf0 --- trap 0, rip = 0, rsp = 0xffffff8000299cb0, rbp = 0 --- Tracing command geom pid 13 tid 100014 td 0xfffffe0005233480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8000294a20 mi_switch() at mi_switch+0x238/frame 0xffffff8000294a70 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8000294ab0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8000294ae0 _sleep() at _sleep+0x3e9/frame 0xffffff8000294b70 g_io_schedule_up() at g_io_schedule_up+0x138/frame 0xffffff8000294b90 g_up_procbody() at g_up_procbody+0x7c/frame 0xffffff8000294ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8000294bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8000294bf0 --- trap 0, rip = 0, rsp = 0xffffff8000294cb0, rbp = 0 --- Tracing command geom pid 13 tid 100013 td 0xfffffe0005233900 sched_switch() at sched_switch+0x1b4/frame 0xffffff800028fa20 mi_switch() at mi_switch+0x238/frame 0xffffff800028fa70 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff800028fab0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff800028fae0 _sleep() at _sleep+0x3e9/frame 0xffffff800028fb70 g_run_events() at g_run_events+0x449/frame 0xffffff800028fba0 fork_exit() at fork_exit+0x139/frame 0xffffff800028fbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff800028fbf0 --- trap 0, rip = 0, rsp = 0xffffff800028fcb0, rbp = 0 --- Tracing command intr pid 12 tid 100063 td 0xfffffe0008048000 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100062 td 0xfffffe0008048480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a7eb00 mi_switch() at mi_switch+0x238/frame 0xffffff8234a7eb50 ithread_loop() at ithread_loop+0x273/frame 0xffffff8234a7eba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a7ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a7ebf0 --- trap 0, rip = 0, rsp = 0xffffff8234a7ecb0, rbp = 0 --- Tracing command intr pid 12 tid 100060 td 0xfffffe000800f480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a6ab00 mi_switch() at mi_switch+0x238/frame 0xffffff8234a6ab50 ithread_loop() at ithread_loop+0x273/frame 0xffffff8234a6aba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a6abf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a6abf0 --- trap 0, rip = 0, rsp = 0xffffff8234a6acb0, rbp = 0 --- Tracing command intr pid 12 tid 100059 td 0xfffffe000800f900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a5bb00 mi_switch() at mi_switch+0x238/frame 0xffffff8234a5bb50 ithread_loop() at ithread_loop+0x273/frame 0xffffff8234a5bba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a5bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a5bbf0 --- trap 0, rip = 0, rsp = 0xffffff8234a5bcb0, rbp = 0 --- Tracing command intr pid 12 tid 100054 td 0xfffffe0008018480 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100041 td 0xfffffe000800d900 sched_switch() at sched_switch+0x1b4/frame 0xffffff82347d3b00 mi_switch() at mi_switch+0x238/frame 0xffffff82347d3b50 ithread_loop() at ithread_loop+0x273/frame 0xffffff82347d3ba0 fork_exit() at fork_exit+0x139/frame 0xffffff82347d3bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff82347d3bf0 --- trap 0, rip = 0, rsp = 0xffffff82347d3cb0, rbp = 0 --- Tracing command intr pid 12 tid 100036 td 0xfffffe0008004000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234776b00 mi_switch() at mi_switch+0x238/frame 0xffffff8234776b50 ithread_loop() at ithread_loop+0x273/frame 0xffffff8234776ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234776bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234776bf0 --- trap 0, rip = 0, rsp = 0xffffff8234776cb0, rbp = 0 --- Tracing command intr pid 12 tid 100031 td 0xfffffe0008005900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234719b00 mi_switch() at mi_switch+0x238/frame 0xffffff8234719b50 ithread_loop() at ithread_loop+0x273/frame 0xffffff8234719ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234719bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234719bf0 --- trap 0, rip = 0, rsp = 0xffffff8234719cb0, rbp = 0 --- Tracing command intr pid 12 tid 100030 td 0xfffffe000524c480 sched_switch() at sched_switch+0x1b4/frame 0xffffff80003ecb00 mi_switch() at mi_switch+0x238/frame 0xffffff80003ecb50 ithread_loop() at ithread_loop+0x273/frame 0xffffff80003ecba0 fork_exit() at fork_exit+0x139/frame 0xffffff80003ecbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80003ecbf0 --- trap 0, rip = 0, rsp = 0xffffff80003eccb0, rbp = 0 --- Tracing command intr pid 12 tid 100029 td 0xfffffe000524c900 sched_switch() at sched_switch+0x1b4/frame 0xffffff80003e7b00 mi_switch() at mi_switch+0x238/frame 0xffffff80003e7b50 ithread_loop() at ithread_loop+0x273/frame 0xffffff80003e7ba0 fork_exit() at fork_exit+0x139/frame 0xffffff80003e7bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80003e7bf0 --- trap 0, rip = 0, rsp = 0xffffff80003e7cb0, rbp = 0 --- Tracing command intr pid 12 tid 100028 td 0xfffffe00053e9000 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002dbb00 mi_switch() at mi_switch+0x238/frame 0xffffff80002dbb50 ithread_loop() at ithread_loop+0x273/frame 0xffffff80002dbba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002dbbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002dbbf0 --- trap 0, rip = 0, rsp = 0xffffff80002dbcb0, rbp = 0 --- Tracing command intr pid 12 tid 100023 td 0xfffffe00053ea900 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002c2b00 mi_switch() at mi_switch+0x238/frame 0xffffff80002c2b50 ithread_loop() at ithread_loop+0x273/frame 0xffffff80002c2ba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002c2bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002c2bf0 --- trap 0, rip = 0, rsp = 0xffffff80002c2cb0, rbp = 0 --- Tracing command intr pid 12 tid 100022 td 0xfffffe0005249000 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002bdb00 mi_switch() at mi_switch+0x238/frame 0xffffff80002bdb50 ithread_loop() at ithread_loop+0x273/frame 0xffffff80002bdba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002bdbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002bdbf0 --- trap 0, rip = 0, rsp = 0xffffff80002bdcb0, rbp = 0 --- Tracing command intr pid 12 tid 100021 td 0xfffffe0005249480 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100019 td 0xfffffe000524a000 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100012 td 0xfffffe0005234000 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100011 td 0xfffffe0005234480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8000285b00 mi_switch() at mi_switch+0x238/frame 0xffffff8000285b50 ithread_loop() at ithread_loop+0x273/frame 0xffffff8000285ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8000285bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8000285bf0 --- trap 0, rip = 0, rsp = 0xffffff8000285cb0, rbp = 0 --- Tracing command intr pid 12 tid 100010 td 0xfffffe0005234900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8000280b00 mi_switch() at mi_switch+0x238/frame 0xffffff8000280b50 ithread_loop() at ithread_loop+0x273/frame 0xffffff8000280ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8000280bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8000280bf0 --- trap 0, rip = 0, rsp = 0xffffff8000280cb0, rbp = 0 --- Tracing command intr pid 12 tid 100009 td 0xfffffe0005218480 sched_switch() at sched_switch+0x1b4/frame 0xffffff800027bb00 mi_switch() at mi_switch+0x238/frame 0xffffff800027bb50 ithread_loop() at ithread_loop+0x273/frame 0xffffff800027bba0 fork_exit() at fork_exit+0x139/frame 0xffffff800027bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff800027bbf0 --- trap 0, rip = 0, rsp = 0xffffff800027bcb0, rbp = 0 --- Tracing command intr pid 12 tid 100008 td 0xfffffe0005218900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8000276b00 mi_switch() at mi_switch+0x238/frame 0xffffff8000276b50 ithread_loop() at ithread_loop+0x273/frame 0xffffff8000276ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8000276bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8000276bf0 --- trap 0, rip = 0, rsp = 0xffffff8000276cb0, rbp = 0 --- Tracing command intr pid 12 tid 100007 td 0xfffffe0005221000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8000271b00 mi_switch() at mi_switch+0x238/frame 0xffffff8000271b50 ithread_loop() at ithread_loop+0x273/frame 0xffffff8000271ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8000271bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8000271bf0 --- trap 0, rip = 0, rsp = 0xffffff8000271cb0, rbp = 0 --- Tracing command idle pid 11 tid 100006 td 0xfffffe0005221480 sched_switch() at sched_switch+0x1b4/frame 0xffffff800026cac0 mi_switch() at mi_switch+0x238/frame 0xffffff800026cb10 sched_idletd() at sched_idletd+0x345/frame 0xffffff800026cba0 fork_exit() at fork_exit+0x139/frame 0xffffff800026cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff800026cbf0 --- trap 0, rip = 0, rsp = 0xffffff800026ccb0, rbp = 0 --- Tracing command idle pid 11 tid 100005 td 0xfffffe0005221900 cpustop_handler() at cpustop_handler+0x2c/frame 0xffffff8000245d00 ipi_nmi_handler() at ipi_nmi_handler+0x3d/frame 0xffffff8000245d20 trap() at trap+0x325/frame 0xffffff8000245f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xffffff8000245f20 --- trap 0x13, rip = 0xffffffff80c6d90a, rsp = 0xffffff8000245fe0, rbp = 0xffffff8000267b10 --- cpu_idle_mwait() at cpu_idle_mwait+0x5a/frame 0xffffff8000267b10 sched_idletd() at sched_idletd+0x186/frame 0xffffff8000267ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8000267bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8000267bf0 --- trap 0, rip = 0, rsp = 0xffffff8000267cb0, rbp = 0 --- Tracing command idle pid 11 tid 100004 td 0xfffffe0005215000 cpustop_handler() at cpustop_handler+0x2c/frame 0xffffff800023ed00 ipi_nmi_handler() at ipi_nmi_handler+0x3d/frame 0xffffff800023ed20 trap() at trap+0x325/frame 0xffffff800023ef20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xffffff800023ef20 --- trap 0x13, rip = 0xffffffff80c6d90a, rsp = 0xffffff800023efe0, rbp = 0xffffff8000262b10 --- cpu_idle_mwait() at cpu_idle_mwait+0x5a/frame 0xffffff8000262b10 sched_idletd() at sched_idletd+0x186/frame 0xffffff8000262ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8000262bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8000262bf0 --- trap 0, rip = 0, rsp = 0xffffff8000262cb0, rbp = 0 --- Tracing command idle pid 11 tid 100003 td 0xfffffe0005215480 cpustop_handler() at cpustop_handler+0x2c/frame 0xffffffff815759e0 ipi_nmi_handler() at ipi_nmi_handler+0x3d/frame 0xffffffff81575a00 trap() at trap+0x325/frame 0xffffffff81575c00 nmi_calltrap() at nmi_calltrap+0x8/frame 0xffffffff81575c00 --- trap 0x13, rip = 0xffffffff80c6d90a, rsp = 0xffffffff81575cc0, rbp = 0xffffff800025db10 --- cpu_idle_mwait() at cpu_idle_mwait+0x5a/frame 0xffffff800025db10 sched_idletd() at sched_idletd+0x186/frame 0xffffff800025dba0 fork_exit() at fork_exit+0x139/frame 0xffffff800025dbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff800025dbf0 --- trap 0, rip = 0, rsp = 0xffffff800025dcb0, rbp = 0 --- Tracing command init pid 1 tid 100002 td 0xfffffe0005215900 sched_switch() at sched_switch+0x1b4/frame 0xffffff8000258670 mi_switch() at mi_switch+0x238/frame 0xffffff80002586c0 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8000258700 sleepq_catch_signals() at sleepq_catch_signals+0x2c6/frame 0xffffff8000258760 sleepq_wait_sig() at sleepq_wait_sig+0x16/frame 0xffffff8000258780 _sleep() at _sleep+0x37d/frame 0xffffff8000258810 kern_wait6() at kern_wait6+0x5f1/frame 0xffffff80002588b0 kern_wait() at kern_wait+0x9c/frame 0xffffff8000258a10 sys_wait4() at sys_wait4+0x35/frame 0xffffff8000258ad0 amd64_syscall() at amd64_syscall+0x2d3/frame 0xffffff8000258bf0 Xfast_syscall() at Xfast_syscall+0xf7/frame 0xffffff8000258bf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x41242a, rsp = 0x7fffffffd798, rbp = 0x8a --- Tracing command audit pid 10 tid 100001 td 0xfffffe0005218000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8000253a00 mi_switch() at mi_switch+0x238/frame 0xffffff8000253a50 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8000253a90 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8000253ac0 _cv_wait() at _cv_wait+0x17d/frame 0xffffff8000253b20 audit_worker() at audit_worker+0x77/frame 0xffffff8000253ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8000253bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8000253bf0 --- trap 0, rip = 0, rsp = 0xffffff8000253cb0, rbp = 0 --- Tracing command kernel pid 0 tid 100066 td 0xfffffe0008047000 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a96a10 mi_switch() at mi_switch+0x238/frame 0xffffff8234a96a60 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234a96aa0 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffff8234a96ad0 _sleep() at _sleep+0x29a/frame 0xffffff8234a96b60 deadlkres() at deadlkres+0x2c3/frame 0xffffff8234a96ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a96bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a96bf0 --- trap 0, rip = 0, rsp = 0xffffff8234a96cb0, rbp = 0 --- Tracing command kernel pid 0 tid 100065 td 0xfffffe0008047480 sched_switch() at sched_switch+0x1b4/frame 0xffffff8234a91a40 mi_switch() at mi_switch+0x238/frame 0xffffff8234a91a90 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff8234a91ad0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff8234a91b00 msleep_spin() at msleep_spin+0x22d/frame 0xffffff8234a91b70 taskqueue_thread_loop() at taskqueue_thread_loop+0x6f/frame 0xffffff8234a91ba0 fork_exit() at fork_exit+0x139/frame 0xffffff8234a91bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff8234a91bf0 --- trap 0, rip = 0, rsp = 0xffffff8234a91cb0, rbp = 0 --- Tracing command kernel pid 0 tid 100027 td 0xfffffe00053e9480 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002d6a40 mi_switch() at mi_switch+0x238/frame 0xffffff80002d6a90 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff80002d6ad0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff80002d6b00 msleep_spin() at msleep_spin+0x22d/frame 0xffffff80002d6b70 taskqueue_thread_loop() at taskqueue_thread_loop+0x6f/frame 0xffffff80002d6ba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002d6bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002d6bf0 --- trap 0, rip = 0, rsp = 0xffffff80002d6cb0, rbp = 0 --- Tracing command kernel pid 0 tid 100026 td 0xfffffe00053e9900 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002d1a40 mi_switch() at mi_switch+0x238/frame 0xffffff80002d1a90 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff80002d1ad0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff80002d1b00 msleep_spin() at msleep_spin+0x22d/frame 0xffffff80002d1b70 taskqueue_thread_loop() at taskqueue_thread_loop+0x6f/frame 0xffffff80002d1ba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002d1bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002d1bf0 --- trap 0, rip = 0, rsp = 0xffffff80002d1cb0, rbp = 0 --- Tracing command kernel pid 0 tid 100025 td 0xfffffe00053ea000 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002cca40 mi_switch() at mi_switch+0x238/frame 0xffffff80002cca90 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff80002ccad0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff80002ccb00 msleep_spin() at msleep_spin+0x22d/frame 0xffffff80002ccb70 taskqueue_thread_loop() at taskqueue_thread_loop+0x6f/frame 0xffffff80002ccba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002ccbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002ccbf0 --- trap 0, rip = 0, rsp = 0xffffff80002cccb0, rbp = 0 --- Tracing command kernel pid 0 tid 100024 td 0xfffffe00053ea480 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002c7a20 mi_switch() at mi_switch+0x238/frame 0xffffff80002c7a70 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff80002c7ab0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff80002c7ae0 _sleep() at _sleep+0x3e9/frame 0xffffff80002c7b70 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xffffff80002c7ba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002c7bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002c7bf0 --- trap 0, rip = 0, rsp = 0xffffff80002c7cb0, rbp = 0 --- Tracing command kernel pid 0 tid 100020 td 0xfffffe0005249900 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002b3a20 mi_switch() at mi_switch+0x238/frame 0xffffff80002b3a70 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff80002b3ab0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff80002b3ae0 _sleep() at _sleep+0x3e9/frame 0xffffff80002b3b70 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xffffff80002b3ba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002b3bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002b3bf0 --- trap 0, rip = 0, rsp = 0xffffff80002b3cb0, rbp = 0 --- Tracing command kernel pid 0 tid 100018 td 0xfffffe000524a480 sched_switch() at sched_switch+0x1b4/frame 0xffffff80002a9a20 mi_switch() at mi_switch+0x238/frame 0xffffff80002a9a70 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff80002a9ab0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff80002a9ae0 _sleep() at _sleep+0x3e9/frame 0xffffff80002a9b70 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xffffff80002a9ba0 fork_exit() at fork_exit+0x139/frame 0xffffff80002a9bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff80002a9bf0 --- trap 0, rip = 0, rsp = 0xffffff80002a9cb0, rbp = 0 --- Tracing command kernel pid 0 tid 100016 td 0xfffffe000524c000 sched_switch() at sched_switch+0x1b4/frame 0xffffff800029ea20 mi_switch() at mi_switch+0x238/frame 0xffffff800029ea70 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffff800029eab0 sleepq_wait() at sleepq_wait+0x4d/frame 0xffffff800029eae0 _sleep() at _sleep+0x3e9/frame 0xffffff800029eb70 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xffffff800029eba0 fork_exit() at fork_exit+0x139/frame 0xffffff800029ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xffffff800029ebf0 --- trap 0, rip = 0, rsp = 0xffffff800029ecb0, rbp = 0 --- Tracing command kernel pid 0 tid 100000 td 0xffffffff81358110 sched_switch() at sched_switch+0x1b4/frame 0xffffffff818f2b00 mi_switch() at mi_switch+0x238/frame 0xffffffff818f2b50 sleepq_switch() at sleepq_switch+0xfe/frame 0xffffffff818f2b90 sleepq_timedwait() at sleepq_timedwait+0x4d/frame 0xffffffff818f2bc0 _sleep() at _sleep+0x29a/frame 0xffffffff818f2c50 scheduler() at scheduler+0x2b0/frame 0xffffffff818f2c90 mi_startup() at mi_startup+0x77/frame 0xffffffff818f2cb0 btext() at btext+0x2c db:0:allt> call doadump Dumping 482 out of 8040 MB:..4%..14%..24%..34%..44%..54%..63%..73%..83%..93% Dump complete = 0 db:0:doadump> reset cpu_reset: Restarting BSP cpu_reset_proxy: Stopped CPU 3 (kgdb) bt #0 doadump (textdump=0x5214000) at ../../../kern/kern_shutdown.c:263 #1 0xffffffff8034323c in db_fncall (dummy1=, dummy2=, dummy3=, dummy4=) at ../../../ddb/db_command.c:578 #2 0xffffffff803434ed in db_command (last_cmdp=0xffffffff8131f660, cmd_table=, dopager=0x0) at ../../../ddb/db_command.c:449 #3 0xffffffff80348083 in db_script_exec (scriptname=0xffffffff8131ff00 "doadump", warnifnotfound=0x1) at ../../../ddb/db_script.c:302 #4 0xffffffff80343571 in db_command (last_cmdp=0xffffffff8131f660, cmd_table=, dopager=0x1) at ../../../ddb/db_command.c:449 #5 0xffffffff803437c0 in db_command_loop () at ../../../ddb/db_command.c:502 #6 0xffffffff80345939 in db_trap (type=, code=) at ../../../ddb/db_main.c:231 #7 0xffffffff80916bb8 in kdb_trap (type=0x3, code=0x0, tf=0xffffff8247917d50) at ../../../kern/subr_kdb.c:654 #8 0xffffffff80c8070d in trap (frame=0xffffff8247917d50) at ../../../amd64/amd64/trap.c:579 #9 0xffffffff80c69373 in calltrap () at ../../../amd64/amd64/exception.S:228 #10 0xffffffff8091663b in kdb_enter (why=0xffffffff80ef274e "panic", msg=0x80
) at cpufunc.h:63 #11 0xffffffff808dc0d1 in vpanic (fmt=, ap=) at ../../../kern/kern_shutdown.c:746 #12 0xffffffff808dc1d7 in panic (fmt=) at ../../../kern/kern_shutdown.c:682 #13 0xffffffff808c04b9 in __lockmgr_args (lk=0xffffffff81295a60, flags=0x0, ilk=0xfffffe000b98f8b8, wmesg=, pri=, timo=, file=0xffffffff80f00eb8 "../../../kern/vfs_bio.c", line=0xbd5) at ../../../kern/kern_lock.c:747 #14 0xffffffff8096ad1f in getblk (vp=0xfffffe000b98f750, blkno=0x180100, size=0x4000, slpflag=0x0, slptimeo=0x0, flags=0x0) at lockmgr.h:97 #15 0xffffffff8096b8d0 in breadn_flags (vp=0xfffffe000b98f750, blkno=, size=, rablkno=0x0, rabsize=0x0, cnt=0x0, cred=0x0, flags=0x0, bpp=0xffffff8247918180) at ../../../kern/vfs_bio.c:969 #16 0xffffffff80b07752 in ffs_alloccg (ip=0xfffffe000b7ddd20, cg=0x3, bpref=0x30008, size=0x8000, rsize=0x8000) at ../../../ufs/ffs/ffs_alloc.c:1519 #17 0xffffffff80b05af2 in ffs_hashalloc (ip=0xfffffe000b7ddd20, cg=0x3, pref=0x30008, size=0x8000, rsize=0x8000, allocator=0xffffffff80b07640 ) at ../../../ufs/ffs/ffs_alloc.c:1376 #18 0xffffffff80b07ba0 in ffs_alloc (ip=0xfffffe000b7ddd20, lbn=, bpref=0x30008, size=0x8000, flags=0x2000, cred=0xfffffe00051ff000, bnp=0xffffff82479183f0) at ../../../ufs/ffs/ffs_alloc.c:200 #19 0xffffffff80b0bdbf in ffs_balloc_ufs2 (vp=0xfffffe00d2d2c4e0, startoffset=, size=, cred=0xfffffe00051ff000, flags=0x0, bpp=0xffffff82479184a8) at ../../../ufs/ffs/ffs_balloc.c:922 #20 0xffffffff80b13898 in ffs_copyonwrite (devvp=0xfffffe000b98f750, bp=0xffffff81e79e1fa0) at ../../../ufs/ffs/ffs_snapshot.c:2363 #21 0xffffffff80b2f31b in ffs_geom_strategy (bo=0xfffffe000b98f8b8, bp=0xffffff81e79e1fa0) at ../../../ufs/ffs/ffs_vfsops.c:2180 #22 0xffffffff8096ab05 in bufwrite (bp=0xffffff81e79e1fa0) at buf.h:409 #23 0xffffffff80b06cda in ffs_nodealloccg (ip=0xfffffe013766c738, cg=0x3, ipref=0x81, mode=0x41f8, unused=) at ../../../ufs/ffs/ffs_alloc.c:1887 #24 0xffffffff80b05af2 in ffs_hashalloc (ip=0xfffffe013766c738, cg=0x3, pref=0x18000, size=0x41f8, rsize=0x0, allocator=0xffffffff80b06810 ) at ../../../ufs/ffs/ffs_alloc.c:1376 #25 0xffffffff80b060c0 in ffs_valloc (pvp=0xfffffe01379244e0, mode=0x41f8, cred=0xfffffe000b185c00, vpp=0xffffff8247918788) at ../../../ufs/ffs/ffs_alloc.c:1008 #26 0xffffffff80b469c5 in ufs_mkdir (ap=0xffffff8247918a70) at ../../../ufs/ufs/ufs_vnops.c:1825 #27 0xffffffff80d1d36a in VOP_MKDIR_APV (vop=0xffffffff812eeae0, a=0xffffff8247918a70) at vnode_if.c:1561 #28 0xffffffff80987c62 in kern_mkdirat (td=0xfffffe00d2ea3000, fd=0xffffff9c, path=0xfffe5587
, segflg=, mode=) at vnode_if.h:665 #29 0xffffffff80cf8b3f in ia32_syscall (frame=0xffffff8247918c00) at subr_syscall.c:134 #30 0xffffffff80c69941 in Xint0x80_syscall () at ia32_exception.S:73 #31 0x000000002818266f in ?? () Previous frame inner to this frame (corrupt stack?) (kgdb) f 13 #13 0xffffffff808c04b9 in __lockmgr_args (lk=0xffffffff81295a60, flags=0x0, ilk=0xfffffe000b98f8b8, wmesg=, pri=, timo=, file=0xffffffff80f00eb8 "../../../kern/vfs_bio.c", line=0xbd5) at ../../../kern/kern_lock.c:747 747 panic("%s: recursing on non recursive lockmgr %s @ %s:%d\n", (kgdb) p *lk $1 = {lock_object = {lo_name = 0xffffffff80f37b2c "sleep mutex", lo_flags = 0x9, lo_data = 0x0, lo_witness = 0xffffffff808c7d00}, lk_lock = 0xffffffff808c7d60, lk_exslpfail = 0x808c8d50, lk_timo = 0xffffffff, lk_pri = 0x808c7bf0, lk_stack = {depth = 0x808c84d0, pcs = {0x0, 0xffffffff80ef0672, 0xa, 0xffffffff808c7d00, 0xffffffff808c7d60, 0xffffffff808c7d40, 0xffffffff808c7bf0, 0xffffffff808c7d20, 0x0, 0x202140000, 0xffffffff808cbca0, 0xffffffff81295a00, 0x0, 0x200000001, 0xffffffff808cbd50, 0xffffffff81295a00, 0x0, 0x2001}}} (kgdb) f 14 #14 0xffffffff8096ad1f in getblk (vp=0xfffffe000b98f750, blkno=0x180100, size=0x4000, slpflag=0x0, slptimeo=0x0, flags=0x0) at lockmgr.h:97 97 return (__lockmgr_args(lk, flags, (ilk != NULL) ? &ilk->lock_object : (kgdb) p *vp $2 = {v_tag = 0xffffffff80eecbfd "devfs", v_op = 0xffffffff81279e00, v_data = 0xfffffe000b0e8700, v_mount = 0xfffffe000b0d5000, v_nmntvnodes = {tqe_next = 0xfffffe013736d000, tqe_prev = 0xfffffe000b9fa500}, v_un = { vu_mount = 0xfffffe000b016000, vu_socket = 0xfffffe000b016000, vu_cdev = 0xfffffe000b016000, vu_fifoinfo = 0xfffffe000b016000}, v_hashlist = {le_next = 0x0, le_prev = 0x0}, v_cache_src = {lh_first = 0x0}, v_cache_dst = { tqh_first = 0x0, tqh_last = 0xfffffe000b98f7a0}, v_cache_dd = 0x0, v_lock = {lock_object = {lo_name = 0xffffffff80eecbfd "devfs", lo_flags = 0x5730000, lo_data = 0x0, lo_witness = 0xffffff80006d2100}, lk_lock = 0x1, lk_exslpfail = 0x0, lk_timo = 0x33, lk_pri = 0x60, lk_stack = {depth = 0xd, pcs = {0xffffffff808bf9ff, 0xffffffff80970739, 0xffffffff80d1ce58, 0xffffffff8099052e, 0xffffffff80b2c421, 0xffffffff80b3037e, 0xffffffff809902cd, 0xffffffff80b14f57, 0xffffffff80b31439, 0xffffffff8097a23d, 0xffffffff8097aaa6, 0xffffffff80c7f4e3, 0xffffffff80c69657, 0x0, 0x0, 0x0, 0x0, 0x0}}}, v_interlock = {lock_object = { lo_name = 0xffffffff80efb342 "vnode interlock", lo_flags = 0x1030000, lo_data = 0x0, lo_witness = 0xffffff80006c9600}, mtx_lock = 0x4}, v_vnlock = 0xfffffe000b98f7b8, v_actfreelist = {tqe_next = 0xfffffe000bac8270, tqe_prev = 0xfffffe013736d158}, v_bufobj = {bo_mtx = {lock_object = {lo_name = 0xffffffff80f04a35 "bufobj interlock", lo_flags = 0x1030000, lo_data = 0x0, lo_witness = 0xffffff80006d0200}, mtx_lock = 0x4}, bo_ops = 0xffffffff812ed960, bo_object = 0xfffffe000ba642d0, bo_synclist = {le_next = 0xfffffe000b1773d8, le_prev = 0xfffffe00052402b0}, bo_private = 0xfffffe00051d4800, __bo_vnode = 0xfffffe000b98f750, bo_clean = {bv_hd = { tqh_first = 0xffffff81e78a0ca0, tqh_last = 0xffffff81e79ac2f0}, bv_root = 0xffffff81e79432a0, bv_cnt = 0x8}, bo_dirty = {bv_hd = {tqh_first = 0xffffff81e78a06a0, tqh_last = 0xffffff81e795fdf0}, bv_root = 0xffffff81e78a09a0, bv_cnt = 0x8}, bo_numoutput = 0x1, bo_flag = 0x1, bo_bsize = 0x200}, v_pollinfo = 0x0, v_label = 0x0, v_lockf = 0x0, v_rl = {rl_waiters = {tqh_first = 0x0, tqh_last = 0xfffffe000b98f970}, rl_currdep = 0x0}, v_cstart = 0x0, v_lasta = 0x0, v_lastw = 0x0, v_clen = 0x0, v_holdcnt = 0x12, v_usecount = 0x1, v_iflag = 0x200, v_vflag = 0x40, v_writecount = 0x0, v_hash = 0x5cc7b, v_type = VCHR} (kgdb) git diff master diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index c6c62ae..ef4ad07 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -4274,6 +4274,30 @@ pmap_copy_page(vm_page_t msrc, vm_page_t mdst) pagecopy((void *)src, (void *)dst); } +void +pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], + vm_offset_t b_offset, int xfersize) +{ + void *a_cp, *b_cp; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + while (xfersize > 0) { + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + a_cp = (char *)PHYS_TO_DMAP(ma[a_offset >> PAGE_SHIFT]-> + phys_addr) + a_pg_offset; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + b_cp = (char *)PHYS_TO_DMAP(mb[b_offset >> PAGE_SHIFT]-> + phys_addr) + b_pg_offset; + bcopy(a_cp, b_cp, cnt); + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } +} + /* * Returns true if the pmap's pv is one of the first * 16 pvs linked to from this page. This count may diff --git a/sys/arm/arm/pmap-v6.c b/sys/arm/arm/pmap-v6.c index 72ef310..dd209ab 100644 --- a/sys/arm/arm/pmap-v6.c +++ b/sys/arm/arm/pmap-v6.c @@ -3314,6 +3314,42 @@ pmap_copy_page_generic(vm_paddr_t src, vm_paddr_t dst) } void +pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], + vm_offset_t b_offset, int xfersize) +{ + vm_page_t a_pg, b_pg; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + mtx_lock(&cmtx); + while (xfersize > 0) { + a_pg = ma[a_offset >> PAGE_SHIFT]; + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + b_pg = mb[b_offset >> PAGE_SHIFT]; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + *csrc_pte = L2_S_PROTO | VM_PAGE_TO_PHYS(a_pg) | + pte_l2_s_cache_mode; + pmap_set_prot(csrc_pte, VM_PROT_READ, 0); + PTE_SYNC(csrc_pte); + *cdst_pte = L2_S_PROTO | VM_PAGE_TO_PHYS(b_pg) | + pte_l2_s_cache_mode; + pmap_set_prot(cdst_pte, VM_PROT_READ | VM_PROT_WRITE, 0); + PTE_SYNC(cdst_pte); + cpu_tlb_flushD_SE(csrcp); + cpu_tlb_flushD_SE(cdstp); + cpu_cpwait(); + bcopy((char *)csrcp + a_pg_offset, (char *)cdstp + b_pg_offset, + cnt); + cpu_idcache_wbinv_range(cdstp + b_pg_offset, cnt); + pmap_l2cache_wbinv_range(cdstp + b_pg_offset, + VM_PAGE_TO_PHYS(b_pg) + b_pg_offset, cnt); + } + mtx_unlock(&cmtx); +} + +void pmap_copy_page(vm_page_t src, vm_page_t dst) { diff --git a/sys/arm/arm/pmap.c b/sys/arm/arm/pmap.c index 28b4912..9f2ec71 100644 --- a/sys/arm/arm/pmap.c +++ b/sys/arm/arm/pmap.c @@ -258,6 +258,9 @@ pt_entry_t pte_l1_c_proto; pt_entry_t pte_l2_s_proto; void (*pmap_copy_page_func)(vm_paddr_t, vm_paddr_t); +void (*pmap_copy_page_offs_func)(vm_paddr_t a_phys, + vm_offset_t a_offs, vm_paddr_t b_phys, vm_offset_t b_offs, + int cnt); void (*pmap_zero_page_func)(vm_paddr_t, int, int); struct msgbuf *msgbufp = 0; @@ -401,6 +404,13 @@ static struct vm_object pvzone_obj; static int pv_entry_count=0, pv_entry_max=0, pv_entry_high_water=0; static struct rwlock pvh_global_lock; +void pmap_copy_page_offs_generic(vm_paddr_t a_phys, vm_offset_t a_offs, + vm_paddr_t b_phys, vm_offset_t b_offs, int cnt); +#if ARM_MMU_XSCALE == 1 +void pmap_copy_page_offs_xscale(vm_paddr_t a_phys, vm_offset_t a_offs, + vm_paddr_t b_phys, vm_offset_t b_offs, int cnt); +#endif + /* * This list exists for the benefit of pmap_map_chunk(). It keeps track * of the kernel L2 tables during bootstrap, so that pmap_map_chunk() can @@ -485,6 +495,7 @@ pmap_pte_init_generic(void) pte_l2_s_proto = L2_S_PROTO_generic; pmap_copy_page_func = pmap_copy_page_generic; + pmap_copy_page_offs_func = pmap_copy_page_offs_generic; pmap_zero_page_func = pmap_zero_page_generic; } @@ -661,6 +672,7 @@ pmap_pte_init_xscale(void) #ifdef CPU_XSCALE_CORE3 pmap_copy_page_func = pmap_copy_page_generic; + pmap_copy_page_offs_func = pmap_copy_page_offs_generic; pmap_zero_page_func = pmap_zero_page_generic; xscale_use_minidata = 0; /* Make sure it is L2-cachable */ @@ -673,6 +685,7 @@ pmap_pte_init_xscale(void) #else pmap_copy_page_func = pmap_copy_page_xscale; + pmap_copy_page_offs_func = pmap_copy_page_offs_xscale; pmap_zero_page_func = pmap_zero_page_xscale; #endif @@ -4301,6 +4314,29 @@ pmap_copy_page_generic(vm_paddr_t src, vm_paddr_t dst) cpu_l2cache_inv_range(csrcp, PAGE_SIZE); cpu_l2cache_wbinv_range(cdstp, PAGE_SIZE); } + +void +pmap_copy_page_offs_generic(vm_paddr_t a_phys, vm_offset_t a_offs, + vm_paddr_t b_phys, vm_offset_t b_offs, int cnt) +{ + + mtx_lock(&cmtx); + *csrc_pte = L2_S_PROTO | a_phys | + L2_S_PROT(PTE_KERNEL, VM_PROT_READ) | pte_l2_s_cache_mode; + PTE_SYNC(csrc_pte); + *cdst_pte = L2_S_PROTO | b_phys | + L2_S_PROT(PTE_KERNEL, VM_PROT_WRITE) | pte_l2_s_cache_mode; + PTE_SYNC(cdst_pte); + cpu_tlb_flushD_SE(csrcp); + cpu_tlb_flushD_SE(cdstp); + cpu_cpwait(); + bcopy((char *)csrcp + a_offs, (char *)cdstp + b_offs, cnt); + mtx_unlock(&cmtx); + cpu_dcache_inv_range(csrcp + a_offs, cnt); + cpu_dcache_wbinv_range(cdstp + b_offs, cnt); + cpu_l2cache_inv_range(csrcp + a_offs, cnt); + cpu_l2cache_wbinv_range(cdstp + b_offs, cnt); +} #endif /* (ARM_MMU_GENERIC + ARM_MMU_SA1) != 0 */ #if ARM_MMU_XSCALE == 1 @@ -4345,6 +4381,28 @@ pmap_copy_page_xscale(vm_paddr_t src, vm_paddr_t dst) mtx_unlock(&cmtx); xscale_cache_clean_minidata(); } + +void +pmap_copy_page_offs_xscale(vm_paddr_t a_phys, vm_offset_t a_offs, + vm_paddr_t b_phys, vm_offset_t b_offs, int cnt) +{ + + mtx_lock(&cmtx); + *csrc_pte = L2_S_PROTO | a_phys | + L2_S_PROT(PTE_KERNEL, VM_PROT_READ) | + L2_C | L2_XSCALE_T_TEX(TEX_XSCALE_X); + PTE_SYNC(csrc_pte); + *cdst_pte = L2_S_PROTO | b_phys | + L2_S_PROT(PTE_KERNEL, VM_PROT_WRITE) | + L2_C | L2_XSCALE_T_TEX(TEX_XSCALE_X); + PTE_SYNC(cdst_pte); + cpu_tlb_flushD_SE(csrcp); + cpu_tlb_flushD_SE(cdstp); + cpu_cpwait(); + bcopy((char *)csrcp + a_offs, (char *)cdstp + b_offs, cnt); + mtx_unlock(&cmtx); + xscale_cache_clean_minidata(); +} #endif /* ARM_MMU_XSCALE == 1 */ void @@ -4371,8 +4429,38 @@ pmap_copy_page(vm_page_t src, vm_page_t dst) #endif } +void +pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], + vm_offset_t b_offset, int xfersize) +{ + vm_page_t a_pg, b_pg; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; +#ifdef ARM_USE_SMALL_ALLOC + vm_offset_t a_va, b_va; +#endif - + cpu_dcache_wbinv_all(); + cpu_l2cache_wbinv_all(); + while (xfersize > 0) { + a_pg = ma[a_offset >> PAGE_SHIFT]; + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + b_pg = mb[b_offset >> PAGE_SHIFT]; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); +#ifdef ARM_USE_SMALL_ALLOC + a_va = arm_ptovirt(VM_PAGE_TO_PHYS(a_pg)) + a_pg_offset; + b_va = arm_ptovirt(VM_PAGE_TO_PHYS(b_pg)) + b_pg_offset; + bcopy((char *)a_va, (char *)b_va, cnt); + cpu_dcache_wbinv_range(b_va, cnt); + cpu_l2cache_wbinv_range(b_va, cnt); +#else + pmap_copy_page_offs_func(VM_PAGE_TO_PHYS(a_pg), a_pg_offset, + VM_PAGE_TO_PHYS(b_pg), b_pg_offset, cnt); +#endif + } +} /* * this routine returns true if a physical page resides diff --git a/sys/arm/include/pmap.h b/sys/arm/include/pmap.h index 523499f..7c8d073 100644 --- a/sys/arm/include/pmap.h +++ b/sys/arm/include/pmap.h @@ -533,6 +533,8 @@ extern pt_entry_t pte_l1_c_proto; extern pt_entry_t pte_l2_s_proto; extern void (*pmap_copy_page_func)(vm_paddr_t, vm_paddr_t); +extern void (*pmap_copy_page_offs_func)(vm_paddr_t a_phys, + vm_offset_t a_offs, vm_paddr_t b_phys, vm_offset_t b_offs, int cnt); extern void (*pmap_zero_page_func)(vm_paddr_t, int, int); #if (ARM_MMU_GENERIC + ARM_MMU_V6 + ARM_MMU_V7 + ARM_MMU_SA1) != 0 || defined(CPU_XSCALE_81342) diff --git a/sys/cam/ata/ata_da.c b/sys/cam/ata/ata_da.c index 4252197..c700e7c 100644 --- a/sys/cam/ata/ata_da.c +++ b/sys/cam/ata/ata_da.c @@ -1167,6 +1167,8 @@ adaregister(struct cam_periph *periph, void *arg) ((softc->flags & ADA_FLAG_CAN_CFA) && !(softc->flags & ADA_FLAG_CAN_48BIT))) softc->disk->d_flags |= DISKFLAG_CANDELETE; + if ((cpi.hba_misc & PIM_UNMAPPED) != 0) + softc->disk->d_flags |= DISKFLAG_UNMAPPED_BIO; strlcpy(softc->disk->d_descr, cgd->ident_data.model, MIN(sizeof(softc->disk->d_descr), sizeof(cgd->ident_data.model))); strlcpy(softc->disk->d_ident, cgd->ident_data.serial, @@ -1431,13 +1433,19 @@ adastart(struct cam_periph *periph, union ccb *start_ccb) return; } #endif + KASSERT((bp->bio_flags & BIO_UNMAPPED) == 0 || + round_page(bp->bio_bcount + bp->bio_ma_offset) / + PAGE_SIZE == bp->bio_ma_n, + ("Short bio %p", bp)); cam_fill_ataio(ataio, ada_retry_count, adadone, - bp->bio_cmd == BIO_READ ? - CAM_DIR_IN : CAM_DIR_OUT, + (bp->bio_cmd == BIO_READ ? CAM_DIR_IN : + CAM_DIR_OUT) | ((bp->bio_flags & BIO_UNMAPPED) + != 0 ? CAM_DATA_BIO : 0), tag_code, - bp->bio_data, + ((bp->bio_flags & BIO_UNMAPPED) != 0) ? (void *)bp : + bp->bio_data, bp->bio_bcount, ada_default_timeout*1000); diff --git a/sys/cam/cam_ccb.h b/sys/cam/cam_ccb.h index a80880a..bcbf414 100644 --- a/sys/cam/cam_ccb.h +++ b/sys/cam/cam_ccb.h @@ -42,7 +42,6 @@ #include #include - /* General allocation length definitions for CCB structures */ #define IOCDBLEN CAM_MAX_CDBLEN /* Space for CDB bytes/pointer */ #define VUHBALEN 14 /* Vendor Unique HBA length */ @@ -572,7 +571,8 @@ typedef enum { PIM_NOINITIATOR = 0x20, /* Initiator role not supported. */ PIM_NOBUSRESET = 0x10, /* User has disabled initial BUS RESET */ PIM_NO_6_BYTE = 0x08, /* Do not send 6-byte commands */ - PIM_SEQSCAN = 0x04 /* Do bus scans sequentially, not in parallel */ + PIM_SEQSCAN = 0x04, /* Do bus scans sequentially, not in parallel */ + PIM_UNMAPPED = 0x02, } pi_miscflag; /* Path Inquiry CCB */ diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c index 523e549..fa4fa04 100644 --- a/sys/cam/cam_periph.c +++ b/sys/cam/cam_periph.c @@ -734,6 +734,8 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_map_info *mapinfo) case XPT_CONT_TARGET_IO: if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE) return(0); + KASSERT((ccb->ccb_h.flags & CAM_DATA_MASK) == CAM_DATA_VADDR, + ("not VADDR for SCSI_IO %p %x\n", ccb, ccb->ccb_h.flags)); data_ptrs[0] = &ccb->csio.data_ptr; lengths[0] = ccb->csio.dxfer_len; @@ -743,6 +745,8 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_map_info *mapinfo) case XPT_ATA_IO: if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE) return(0); + KASSERT((ccb->ccb_h.flags & CAM_DATA_MASK) == CAM_DATA_VADDR, + ("not VADDR for ATA_IO %p %x\n", ccb, ccb->ccb_h.flags)); data_ptrs[0] = &ccb->ataio.data_ptr; lengths[0] = ccb->ataio.dxfer_len; @@ -846,7 +850,7 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_map_info *mapinfo) * into a larger area of VM, or if userland races against * vmapbuf() after the useracc() check. */ - if (vmapbuf(mapinfo->bp[i]) < 0) { + if (vmapbuf(mapinfo->bp[i], 1) < 0) { for (j = 0; j < i; ++j) { *data_ptrs[j] = mapinfo->bp[j]->b_saveaddr; vunmapbuf(mapinfo->bp[j]); diff --git a/sys/cam/scsi/scsi_all.c b/sys/cam/scsi/scsi_all.c index 9dac9c0..14fb1c8 100644 --- a/sys/cam/scsi/scsi_all.c +++ b/sys/cam/scsi/scsi_all.c @@ -5771,7 +5771,9 @@ scsi_read_write(struct ccb_scsiio *csio, u_int32_t retries, cam_fill_csio(csio, retries, cbfcnp, - /*flags*/readop ? CAM_DIR_IN : CAM_DIR_OUT, + ((readop & SCSI_RW_DIRMASK) == SCSI_RW_READ ? + CAM_DIR_IN : CAM_DIR_OUT) | + ((readop & SCSI_RW_BIO) != 0 ? CAM_DATA_BIO : 0), tag_action, data_ptr, dxfer_len, diff --git a/sys/cam/scsi/scsi_all.h b/sys/cam/scsi/scsi_all.h index 0693e1c..330330d 100644 --- a/sys/cam/scsi/scsi_all.h +++ b/sys/cam/scsi/scsi_all.h @@ -2354,6 +2354,10 @@ void scsi_write_buffer(struct ccb_scsiio *csio, u_int32_t retries, uint8_t *data_ptr, uint32_t param_list_length, uint8_t sense_len, uint32_t timeout); +#define SCSI_RW_READ 0x0001 +#define SCSI_RW_WRITE 0x0002 +#define SCSI_RW_DIRMASK 0x0003 +#define SCSI_RW_BIO 0x1000 void scsi_read_write(struct ccb_scsiio *csio, u_int32_t retries, void (*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int readop, u_int8_t byte2, diff --git a/sys/cam/scsi/scsi_cd.c b/sys/cam/scsi/scsi_cd.c index a7c4c5b..a6d340f 100644 --- a/sys/cam/scsi/scsi_cd.c +++ b/sys/cam/scsi/scsi_cd.c @@ -1575,7 +1575,8 @@ cdstart(struct cam_periph *periph, union ccb *start_ccb) /*retries*/ cd_retry_count, /* cbfcnp */ cddone, MSG_SIMPLE_Q_TAG, - /* read */bp->bio_cmd == BIO_READ, + /* read */bp->bio_cmd == BIO_READ ? + SCSI_RW_READ : SCSI_RW_WRITE, /* byte2 */ 0, /* minimum_cmd_size */ 10, /* lba */ bp->bio_offset / diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index 7854215..c886e9e 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -1180,7 +1180,7 @@ dadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t leng /*retries*/0, dadone, MSG_ORDERED_Q_TAG, - /*read*/FALSE, + /*read*/SCSI_RW_WRITE, /*byte2*/0, /*minimum_cmd_size*/ softc->minimum_cmd_size, offset / secsize, @@ -1753,6 +1753,8 @@ daregister(struct cam_periph *periph, void *arg) softc->disk->d_flags = 0; if ((softc->quirks & DA_Q_NO_SYNC_CACHE) == 0) softc->disk->d_flags |= DISKFLAG_CANFLUSHCACHE; + if ((cpi.hba_misc & PIM_UNMAPPED) != 0) + softc->disk->d_flags |= DISKFLAG_UNMAPPED_BIO; cam_strvis(softc->disk->d_descr, cgd->inq_data.vendor, sizeof(cgd->inq_data.vendor), sizeof(softc->disk->d_descr)); strlcat(softc->disk->d_descr, " ", sizeof(softc->disk->d_descr)); @@ -1981,14 +1983,18 @@ dastart(struct cam_periph *periph, union ccb *start_ccb) /*retries*/da_retry_count, /*cbfcnp*/dadone, /*tag_action*/tag_code, - /*read_op*/bp->bio_cmd - == BIO_READ, + /*read_op*/(bp->bio_cmd == BIO_READ ? + SCSI_RW_READ : SCSI_RW_WRITE) | + ((bp->bio_flags & BIO_UNMAPPED) != 0 ? + SCSI_RW_BIO : 0), /*byte2*/0, softc->minimum_cmd_size, /*lba*/bp->bio_pblkno, /*block_count*/bp->bio_bcount / softc->params.secsize, - /*data_ptr*/ bp->bio_data, + /*data_ptr*/ (bp->bio_flags & + BIO_UNMAPPED) != 0 ? (void *)bp : + bp->bio_data, /*dxfer_len*/ bp->bio_bcount, /*sense_len*/SSD_FULL_SIZE, da_default_timeout * 1000); diff --git a/sys/dev/ahci/ahci.c b/sys/dev/ahci/ahci.c index 8e692bd..d03c8af 100644 --- a/sys/dev/ahci/ahci.c +++ b/sys/dev/ahci/ahci.c @@ -2903,7 +2903,7 @@ ahciaction(struct cam_sim *sim, union ccb *ccb) if (ch->caps & AHCI_CAP_SPM) cpi->hba_inquiry |= PI_SATAPM; cpi->target_sprt = 0; - cpi->hba_misc = PIM_SEQSCAN; + cpi->hba_misc = PIM_SEQSCAN | PIM_UNMAPPED; cpi->hba_eng_cnt = 0; if (ch->caps & AHCI_CAP_SPM) cpi->max_target = 15; diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c index b72f294..eccb1ee 100644 --- a/sys/dev/md/md.c +++ b/sys/dev/md/md.c @@ -110,6 +110,19 @@ static int md_malloc_wait; SYSCTL_INT(_vm, OID_AUTO, md_malloc_wait, CTLFLAG_RW, &md_malloc_wait, 0, "Allow malloc to wait for memory allocations"); +static int md_unmapped_swap; +SYSCTL_INT(_debug, OID_AUTO, md_unmapped_swap, CTLFLAG_RD, + &md_unmapped_swap, 0, + ""); +static int md_unmapped_vnode; +SYSCTL_INT(_debug, OID_AUTO, md_unmapped_vnode, CTLFLAG_RD, + &md_unmapped_vnode, 0, + ""); +static int md_unmapped_malloc; +SYSCTL_INT(_debug, OID_AUTO, md_unmapped_malloc, CTLFLAG_RD, + &md_unmapped_malloc, 0, + ""); + #if defined(MD_ROOT) && !defined(MD_ROOT_FSTYPE) #define MD_ROOT_FSTYPE "ufs" #endif @@ -414,13 +427,103 @@ g_md_start(struct bio *bp) wakeup(sc); } +#define MD_MALLOC_MOVE_ZERO 1 +#define MD_MALLOC_MOVE_FILL 2 +#define MD_MALLOC_MOVE_READ 3 +#define MD_MALLOC_MOVE_WRITE 4 +#define MD_MALLOC_MOVE_CMP 5 + +static int +md_malloc_move(vm_page_t **mp, vm_offset_t *ma_offs, unsigned sectorsize, + void *ptr, u_char fill, int op) +{ + struct sf_buf *sf; + vm_page_t m, *mp1; + char *p, first; + vm_offset_t ma_offs1; + off_t *uc; + unsigned n; + int error, i, sz, first_read; + + m = NULL; + error = 0; + sf = NULL; + /* if (op == MD_MALLOC_MOVE_CMP) { gcc */ + first = 0; + first_read = 0; + uc = ptr; + mp1 = *mp; + ma_offs1 = *ma_offs; + /* } */ + sched_pin(); + for (n = sectorsize; n != 0; n -= sz) { + sz = imin(PAGE_SIZE - *ma_offs, n); + if (m != **mp) { + if (sf != NULL) + sf_buf_free(sf); + m = **mp; + sf = sf_buf_alloc(m, SFB_CPUPRIVATE | + (md_malloc_wait ? 0 : SFB_NOWAIT)); + if (sf == NULL) { + error = ENOMEM; + break; + } + } + p = (char *)sf_buf_kva(sf) + *ma_offs; + switch (op) { + case MD_MALLOC_MOVE_ZERO: + bzero(p, sz); + break; + case MD_MALLOC_MOVE_FILL: + memset(p, fill, sz); + break; + case MD_MALLOC_MOVE_READ: + bcopy(ptr, p, sz); + cpu_flush_dcache(p, sz); + break; + case MD_MALLOC_MOVE_WRITE: + bcopy(p, ptr, sz); + break; + case MD_MALLOC_MOVE_CMP: + for (i = 0; i < sz; i++, p++) { + if (!first_read) { + *uc = (u_char)*p; + first = (u_char)*p; + first_read = 1; + } else if (*p != first) { + error = EDOOFUS; + break; + } + } + break; + } + if (error != 0) + break; + *ma_offs += sz; + *ma_offs %= PAGE_SIZE; + if (*ma_offs == 0) + (*mp)++; + } + + if (sf != NULL) + sf_buf_free(sf); + sched_unpin(); + if (op == MD_MALLOC_MOVE_CMP && error != 0) { + *mp = mp1; + *ma_offs = ma_offs1; + } + return (error); +} + static int mdstart_malloc(struct md_s *sc, struct bio *bp) { - int i, error; u_char *dst; + vm_page_t *m; + int i, error, error1, notmapped; off_t secno, nsec, uc; uintptr_t sp, osp; + vm_offset_t ma_offs; switch (bp->bio_cmd) { case BIO_READ: @@ -431,9 +534,17 @@ mdstart_malloc(struct md_s *sc, struct bio *bp) return (EOPNOTSUPP); } + notmapped = (bp->bio_flags & BIO_UNMAPPED) != 0; + if (notmapped) { + m = bp->bio_ma; + ma_offs = bp->bio_ma_offset; + dst = NULL; + } else { + dst = bp->bio_data; + } + nsec = bp->bio_length / sc->sectorsize; secno = bp->bio_offset / sc->sectorsize; - dst = bp->bio_data; error = 0; while (nsec--) { osp = s_read(sc->indir, secno); @@ -441,21 +552,45 @@ mdstart_malloc(struct md_s *sc, struct bio *bp) if (osp != 0) error = s_write(sc->indir, secno, 0); } else if (bp->bio_cmd == BIO_READ) { - if (osp == 0) - bzero(dst, sc->sectorsize); - else if (osp <= 255) - memset(dst, osp, sc->sectorsize); - else { - bcopy((void *)osp, dst, sc->sectorsize); - cpu_flush_dcache(dst, sc->sectorsize); + if (osp == 0) { + if (notmapped) { + error = md_malloc_move(&m, &ma_offs, + sc->sectorsize, NULL, 0, + MD_MALLOC_MOVE_ZERO); + } else + bzero(dst, sc->sectorsize); + } else if (osp <= 255) { + if (notmapped) { + error = md_malloc_move(&m, &ma_offs, + sc->sectorsize, NULL, osp, + MD_MALLOC_MOVE_FILL); + } else + memset(dst, osp, sc->sectorsize); + } else { + if (notmapped) { + error = md_malloc_move(&m, &ma_offs, + sc->sectorsize, (void *)osp, 0, + MD_MALLOC_MOVE_READ); + } else { + bcopy((void *)osp, dst, sc->sectorsize); + cpu_flush_dcache(dst, sc->sectorsize); + } } osp = 0; } else if (bp->bio_cmd == BIO_WRITE) { if (sc->flags & MD_COMPRESS) { - uc = dst[0]; - for (i = 1; i < sc->sectorsize; i++) - if (dst[i] != uc) - break; + if (notmapped) { + error1 = md_malloc_move(&m, &ma_offs, + sc->sectorsize, &uc, 0, + MD_MALLOC_MOVE_CMP); + i = error1 == 0 ? sc->sectorsize : 0; + } else { + uc = dst[0]; + for (i = 1; i < sc->sectorsize; i++) { + if (dst[i] != uc) + break; + } + } } else { i = 0; uc = 0; @@ -472,10 +607,26 @@ mdstart_malloc(struct md_s *sc, struct bio *bp) error = ENOSPC; break; } - bcopy(dst, (void *)sp, sc->sectorsize); + if (notmapped) { + error = md_malloc_move(&m, + &ma_offs, sc->sectorsize, + (void *)sp, 0, + MD_MALLOC_MOVE_WRITE); + } else { + bcopy(dst, (void *)sp, + sc->sectorsize); + } error = s_write(sc->indir, secno, sp); } else { - bcopy(dst, (void *)osp, sc->sectorsize); + if (notmapped) { + error = md_malloc_move(&m, + &ma_offs, sc->sectorsize, + (void *)osp, 0, + MD_MALLOC_MOVE_WRITE); + } else { + bcopy(dst, (void *)osp, + sc->sectorsize); + } osp = 0; } } @@ -487,7 +638,8 @@ mdstart_malloc(struct md_s *sc, struct bio *bp) if (error != 0) break; secno++; - dst += sc->sectorsize; + if (!notmapped) + dst += sc->sectorsize; } bp->bio_resid = 0; return (error); @@ -628,11 +780,10 @@ mdstart_vnode(struct md_s *sc, struct bio *bp) static int mdstart_swap(struct md_s *sc, struct bio *bp) { - struct sf_buf *sf; - int rv, offs, len, lastend; - vm_pindex_t i, lastp; vm_page_t m; u_char *p; + vm_pindex_t i, lastp; + int rv, ma_offs, offs, len, lastend; switch (bp->bio_cmd) { case BIO_READ: @@ -644,6 +795,12 @@ mdstart_swap(struct md_s *sc, struct bio *bp) } p = bp->bio_data; + if ((bp->bio_flags & BIO_UNMAPPED) == 0) { + ma_offs = 0; + } else { + atomic_add_int(&md_unmapped_swap, 1); + ma_offs = bp->bio_ma_offset; + } /* * offs is the offset at which to start operating on the @@ -661,19 +818,12 @@ mdstart_swap(struct md_s *sc, struct bio *bp) vm_object_pip_add(sc->object, 1); for (i = bp->bio_offset / PAGE_SIZE; i <= lastp; i++) { len = ((i == lastp) ? lastend : PAGE_SIZE) - offs; - - m = vm_page_grab(sc->object, i, - VM_ALLOC_NORMAL|VM_ALLOC_RETRY); - VM_OBJECT_UNLOCK(sc->object); - sched_pin(); - sf = sf_buf_alloc(m, SFB_CPUPRIVATE); - VM_OBJECT_LOCK(sc->object); + m = vm_page_grab(sc->object, i, VM_ALLOC_NORMAL | + VM_ALLOC_RETRY); if (bp->bio_cmd == BIO_READ) { if (m->valid != VM_PAGE_BITS_ALL) rv = vm_pager_get_pages(sc->object, &m, 1, 0); if (rv == VM_PAGER_ERROR) { - sf_buf_free(sf); - sched_unpin(); vm_page_wakeup(m); break; } else if (rv == VM_PAGER_FAIL) { @@ -683,40 +833,44 @@ mdstart_swap(struct md_s *sc, struct bio *bp) * valid. Do not set dirty, the page * can be recreated if thrown out. */ - bzero((void *)sf_buf_kva(sf), PAGE_SIZE); + pmap_zero_page(m); m->valid = VM_PAGE_BITS_ALL; } - bcopy((void *)(sf_buf_kva(sf) + offs), p, len); - cpu_flush_dcache(p, len); + if ((bp->bio_flags & BIO_UNMAPPED) != 0) { + pmap_copy_pages(&m, offs, bp->bio_ma, + ma_offs, len); + } else { + physcopyout(VM_PAGE_TO_PHYS(m) + offs, p, len); + cpu_flush_dcache(p, len); + } } else if (bp->bio_cmd == BIO_WRITE) { if (len != PAGE_SIZE && m->valid != VM_PAGE_BITS_ALL) rv = vm_pager_get_pages(sc->object, &m, 1, 0); if (rv == VM_PAGER_ERROR) { - sf_buf_free(sf); - sched_unpin(); vm_page_wakeup(m); break; } - bcopy(p, (void *)(sf_buf_kva(sf) + offs), len); + if ((bp->bio_flags & BIO_UNMAPPED) != 0) { + pmap_copy_pages(bp->bio_ma, ma_offs, &m, + offs, len); + } else { + physcopyin(p, VM_PAGE_TO_PHYS(m) + offs, len); + } m->valid = VM_PAGE_BITS_ALL; } else if (bp->bio_cmd == BIO_DELETE) { if (len != PAGE_SIZE && m->valid != VM_PAGE_BITS_ALL) rv = vm_pager_get_pages(sc->object, &m, 1, 0); if (rv == VM_PAGER_ERROR) { - sf_buf_free(sf); - sched_unpin(); vm_page_wakeup(m); break; } if (len != PAGE_SIZE) { - bzero((void *)(sf_buf_kva(sf) + offs), len); + pmap_zero_page_area(m, offs, len); vm_page_clear_dirty(m, offs, len); m->valid = VM_PAGE_BITS_ALL; } else vm_pager_page_unswapped(m); } - sf_buf_free(sf); - sched_unpin(); vm_page_wakeup(m); vm_page_lock(m); if (bp->bio_cmd == BIO_DELETE && len == PAGE_SIZE) @@ -730,6 +884,7 @@ mdstart_swap(struct md_s *sc, struct bio *bp) /* Actions on further pages start at offset 0 */ p += PAGE_SIZE - offs; offs = 0; + ma_offs += len; } vm_object_pip_subtract(sc->object, 1); VM_OBJECT_UNLOCK(sc->object); @@ -845,6 +1000,14 @@ mdinit(struct md_s *sc) pp = g_new_providerf(gp, "md%d", sc->unit); pp->mediasize = sc->mediasize; pp->sectorsize = sc->sectorsize; + switch (sc->type) { + case MD_SWAP: + case MD_MALLOC: + pp->flags |= G_PF_ACCEPT_UNMAPPED; + break; + default: + break; + } sc->gp = gp; sc->pp = pp; g_error_provider(pp, 0); diff --git a/sys/fs/cd9660/cd9660_vnops.c b/sys/fs/cd9660/cd9660_vnops.c index 21ee0fc..47d4f75 100644 --- a/sys/fs/cd9660/cd9660_vnops.c +++ b/sys/fs/cd9660/cd9660_vnops.c @@ -329,7 +329,7 @@ cd9660_read(ap) if (lblktosize(imp, rablock) < ip->i_size) error = cluster_read(vp, (off_t)ip->i_size, lbn, size, NOCRED, uio->uio_resid, - (ap->a_ioflag >> 16), &bp); + (ap->a_ioflag >> 16), 0, &bp); else error = bread(vp, lbn, size, NOCRED, &bp); } else { diff --git a/sys/fs/ext2fs/ext2_balloc.c b/sys/fs/ext2fs/ext2_balloc.c index 1c0cc0e..88ad710 100644 --- a/sys/fs/ext2fs/ext2_balloc.c +++ b/sys/fs/ext2fs/ext2_balloc.c @@ -276,7 +276,7 @@ ext2_balloc(struct inode *ip, int32_t lbn, int size, struct ucred *cred, if (seqcount && (vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) { error = cluster_read(vp, ip->i_size, lbn, (int)fs->e2fs_bsize, NOCRED, - MAXBSIZE, seqcount, &nbp); + MAXBSIZE, seqcount, 0, &nbp); } else { error = bread(vp, lbn, (int)fs->e2fs_bsize, NOCRED, &nbp); } diff --git a/sys/fs/ext2fs/ext2_vnops.c b/sys/fs/ext2fs/ext2_vnops.c index 1c0b7a1..77eb74b 100644 --- a/sys/fs/ext2fs/ext2_vnops.c +++ b/sys/fs/ext2fs/ext2_vnops.c @@ -1618,10 +1618,11 @@ ext2_read(struct vop_read_args *ap) if (lblktosize(fs, nextlbn) >= ip->i_size) error = bread(vp, lbn, size, NOCRED, &bp); - else if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) + else if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) { error = cluster_read(vp, ip->i_size, lbn, size, - NOCRED, blkoffset + uio->uio_resid, seqcount, &bp); - else if (seqcount > 1) { + NOCRED, blkoffset + uio->uio_resid, seqcount, + 0, &bp); + } else if (seqcount > 1) { int nextsize = blksize(fs, ip, nextlbn); error = breadn(vp, lbn, size, &nextlbn, &nextsize, 1, NOCRED, &bp); @@ -1831,7 +1832,7 @@ ext2_write(struct vop_write_args *ap) } else if (xfersize + blkoffset == fs->e2fs_fsize) { if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERW) == 0) { bp->b_flags |= B_CLUSTEROK; - cluster_write(vp, bp, ip->i_size, seqcount); + cluster_write(vp, bp, ip->i_size, seqcount, 0); } else { bawrite(bp); } diff --git a/sys/fs/msdosfs/msdosfs_vnops.c b/sys/fs/msdosfs/msdosfs_vnops.c index 8e045cb..213ae81 100644 --- a/sys/fs/msdosfs/msdosfs_vnops.c +++ b/sys/fs/msdosfs/msdosfs_vnops.c @@ -600,7 +600,7 @@ msdosfs_read(ap) error = bread(vp, lbn, blsize, NOCRED, &bp); } else if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) { error = cluster_read(vp, dep->de_FileSize, lbn, blsize, - NOCRED, on + uio->uio_resid, seqcount, &bp); + NOCRED, on + uio->uio_resid, seqcount, 0, &bp); } else if (seqcount > 1) { rasize = blsize; error = breadn(vp, lbn, @@ -820,7 +820,7 @@ msdosfs_write(ap) else if (n + croffset == pmp->pm_bpcluster) { if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERW) == 0) cluster_write(vp, bp, dep->de_FileSize, - seqcount); + seqcount, 0); else bawrite(bp); } else diff --git a/sys/fs/udf/udf_vnops.c b/sys/fs/udf/udf_vnops.c index b1a3b1d..abe073e 100644 --- a/sys/fs/udf/udf_vnops.c +++ b/sys/fs/udf/udf_vnops.c @@ -478,8 +478,9 @@ udf_read(struct vop_read_args *ap) rablock = lbn + 1; if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) { if (lblktosize(udfmp, rablock) < fsize) { - error = cluster_read(vp, fsize, lbn, size, NOCRED, - uio->uio_resid, (ap->a_ioflag >> 16), &bp); + error = cluster_read(vp, fsize, lbn, size, + NOCRED, uio->uio_resid, + (ap->a_ioflag >> 16), 0, &bp); } else { error = bread(vp, lbn, size, NOCRED, &bp); } diff --git a/sys/geom/geom.h b/sys/geom/geom.h index 351b05d..660bf6e 100644 --- a/sys/geom/geom.h +++ b/sys/geom/geom.h @@ -205,6 +205,7 @@ struct g_provider { u_int flags; #define G_PF_WITHER 0x2 #define G_PF_ORPHAN 0x4 +#define G_PF_ACCEPT_UNMAPPED 0x8 /* Two fields for the implementing class to use */ void *private; diff --git a/sys/geom/geom_disk.c b/sys/geom/geom_disk.c index 72e9162..7fec9da 100644 --- a/sys/geom/geom_disk.c +++ b/sys/geom/geom_disk.c @@ -320,13 +320,29 @@ g_disk_start(struct bio *bp) do { bp2->bio_offset += off; bp2->bio_length -= off; - bp2->bio_data += off; + if ((bp->bio_flags & BIO_UNMAPPED) == 0) { + bp2->bio_data += off; + } else { + KASSERT((dp->d_flags & DISKFLAG_UNMAPPED_BIO) + != 0, + ("unmapped bio not supported by disk %s", + dp->d_name)); + bp2->bio_ma += off / PAGE_SIZE; + bp2->bio_ma_offset += off; + bp2->bio_ma_offset %= PAGE_SIZE; + bp2->bio_ma_n -= off / PAGE_SIZE; + } if (bp2->bio_length > dp->d_maxsize) { /* * XXX: If we have a stripesize we should really * use it here. */ bp2->bio_length = dp->d_maxsize; + if ((bp->bio_flags & BIO_UNMAPPED) != 0) { + bp2->bio_ma_n = howmany( + bp2->bio_ma_offset + + bp2->bio_length, PAGE_SIZE); + } off += dp->d_maxsize; /* * To avoid a race, we need to grab the next bio @@ -488,6 +504,8 @@ g_disk_create(void *arg, int flag) pp->sectorsize = dp->d_sectorsize; pp->stripeoffset = dp->d_stripeoffset; pp->stripesize = dp->d_stripesize; + if ((dp->d_flags & DISKFLAG_UNMAPPED_BIO) != 0) + pp->flags |= G_PF_ACCEPT_UNMAPPED; if (bootverbose) printf("GEOM: new disk %s\n", gp->name); sysctl_ctx_init(&sc->sysctl_ctx); diff --git a/sys/geom/geom_disk.h b/sys/geom/geom_disk.h index 33d8eb2..246fc49 100644 --- a/sys/geom/geom_disk.h +++ b/sys/geom/geom_disk.h @@ -103,6 +103,7 @@ struct disk { #define DISKFLAG_OPEN 0x2 #define DISKFLAG_CANDELETE 0x4 #define DISKFLAG_CANFLUSHCACHE 0x8 +#define DISKFLAG_UNMAPPED_BIO 0x10 struct disk *disk_alloc(void); void disk_create(struct disk *disk, int version); diff --git a/sys/geom/geom_io.c b/sys/geom/geom_io.c index c6a5da8..4c84bcc 100644 --- a/sys/geom/geom_io.c +++ b/sys/geom/geom_io.c @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -51,6 +52,13 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include +#include +#include +#include +#include static struct g_bioq g_bio_run_down; static struct g_bioq g_bio_run_up; @@ -180,12 +188,17 @@ g_clone_bio(struct bio *bp) /* * BIO_ORDERED flag may be used by disk drivers to enforce * ordering restrictions, so this flag needs to be cloned. + * BIO_UNMAPPED should be inherited, to properly indicate + * which way the buffer is passed. * Other bio flags are not suitable for cloning. */ - bp2->bio_flags = bp->bio_flags & BIO_ORDERED; + bp2->bio_flags = bp->bio_flags & (BIO_ORDERED | BIO_UNMAPPED); bp2->bio_length = bp->bio_length; bp2->bio_offset = bp->bio_offset; bp2->bio_data = bp->bio_data; + bp2->bio_ma = bp->bio_ma; + bp2->bio_ma_n = bp->bio_ma_n; + bp2->bio_ma_offset = bp->bio_ma_offset; bp2->bio_attribute = bp->bio_attribute; /* Inherit classification info from the parent */ bp2->bio_classifier1 = bp->bio_classifier1; @@ -210,11 +223,15 @@ g_duplicate_bio(struct bio *bp) struct bio *bp2; bp2 = uma_zalloc(biozone, M_WAITOK | M_ZERO); + bp2->bio_flags = bp->bio_flags & BIO_UNMAPPED; bp2->bio_parent = bp; bp2->bio_cmd = bp->bio_cmd; bp2->bio_length = bp->bio_length; bp2->bio_offset = bp->bio_offset; bp2->bio_data = bp->bio_data; + bp2->bio_ma = bp->bio_ma; + bp2->bio_ma_n = bp->bio_ma_n; + bp2->bio_ma_offset = bp->bio_ma_offset; bp2->bio_attribute = bp->bio_attribute; bp->bio_children++; #ifdef KTR @@ -575,6 +592,76 @@ g_io_deliver(struct bio *bp, int error) return; } +SYSCTL_DECL(_kern_geom); + +static long transient_maps; +SYSCTL_LONG(_kern_geom, OID_AUTO, transient_maps, CTLFLAG_RD, + &transient_maps, 0, + ""); +int transient_map_retries; +SYSCTL_INT(_kern_geom, OID_AUTO, transient_map_retries, CTLFLAG_RD, + &transient_map_retries, 0, + ""); +int transient_map_failures; +SYSCTL_INT(_kern_geom, OID_AUTO, transient_map_failures, CTLFLAG_RD, + &transient_map_failures, 0, + ""); +int inflight_transient_maps; +SYSCTL_INT(_kern_geom, OID_AUTO, inflight_transient_maps, CTLFLAG_RD, + &inflight_transient_maps, 0, + ""); + +static int +g_io_transient_map_bio(struct bio *bp) +{ + vm_offset_t addr; + long size; + int retried, rv; + + size = round_page(bp->bio_ma_offset + bp->bio_length); + KASSERT(size / PAGE_SIZE == bp->bio_ma_n, ("Bio too short %p", bp)); + addr = 0; + retried = 0; + atomic_add_long(&transient_maps, 1); +retry: + vm_map_lock(bio_transient_map); + if (vm_map_findspace(bio_transient_map, vm_map_min(bio_transient_map), + size, &addr)) { + vm_map_unlock(bio_transient_map); + if (retried >= 3) { + g_io_deliver(bp, EDEADLK/* XXXKIB */); + CTR2(KTR_GEOM, "g_down cannot map bp %p provider %s", + bp, bp->bio_to->name); + atomic_add_int(&transient_map_failures, 1); + return (1); + } else { + /* + * Naive attempt to quisce the I/O to get more + * in-flight requests completed and defragment + * the bio_transient_map. + */ + CTR3(KTR_GEOM, "g_down retrymap bp %p provider %s r %d", + bp, bp->bio_to->name, retried); + pause("g_d_tra", hz / 10); + retried++; + atomic_add_int(&transient_map_retries, 1); + goto retry; + } + } + rv = vm_map_insert(bio_transient_map, NULL, 0, addr, addr + size, + VM_PROT_RW, VM_PROT_RW, MAP_NOFAULT); + KASSERT(rv == KERN_SUCCESS, + ("vm_map_insert(bio_transient_map) rv %d %jx %lx", + rv, (uintmax_t)addr, size)); + vm_map_unlock(bio_transient_map); + atomic_add_int(&inflight_transient_maps, 1); + pmap_qenter((vm_offset_t)addr, bp->bio_ma, OFF_TO_IDX(size)); + bp->bio_data = (caddr_t)addr + bp->bio_ma_offset; + bp->bio_flags |= BIO_TRANSIENT_MAPPING; + bp->bio_flags &= ~BIO_UNMAPPED; + return (0); +} + void g_io_schedule_down(struct thread *tp __unused) { @@ -636,6 +723,12 @@ g_io_schedule_down(struct thread *tp __unused) default: break; } + if ((bp->bio_flags & BIO_UNMAPPED) != 0 && + (bp->bio_to->flags & G_PF_ACCEPT_UNMAPPED) == 0 && + (bp->bio_cmd == BIO_READ || bp->bio_cmd == BIO_WRITE)) { + if (g_io_transient_map_bio(bp)) + continue; + } THREAD_NO_SLEEPING(); CTR4(KTR_GEOM, "g_down starting bp %p provider %s off %ld " "len %ld", bp, bp->bio_to->name, bp->bio_offset, diff --git a/sys/geom/geom_vfs.c b/sys/geom/geom_vfs.c index bbed550..92f1ad2 100644 --- a/sys/geom/geom_vfs.c +++ b/sys/geom/geom_vfs.c @@ -188,14 +188,14 @@ g_vfs_strategy(struct bufobj *bo, struct buf *bp) bip = g_alloc_bio(); bip->bio_cmd = bp->b_iocmd; bip->bio_offset = bp->b_iooffset; - bip->bio_data = bp->b_data; - bip->bio_done = g_vfs_done; - bip->bio_caller2 = bp; bip->bio_length = bp->b_bcount; - if (bp->b_flags & B_BARRIER) { + bdata2bio(bp, bip); + if ((bp->b_flags & B_BARRIER) != 0) { bip->bio_flags |= BIO_ORDERED; bp->b_flags &= ~B_BARRIER; } + bip->bio_done = g_vfs_done; + bip->bio_caller2 = bp; g_io_request(bip, cp); } diff --git a/sys/geom/part/g_part.c b/sys/geom/part/g_part.c index e2ba79e..7650499 100644 --- a/sys/geom/part/g_part.c +++ b/sys/geom/part/g_part.c @@ -427,6 +427,7 @@ g_part_new_provider(struct g_geom *gp, struct g_part_table *table, entry->gpe_pp->stripeoffset = pp->stripeoffset + entry->gpe_offset; if (pp->stripesize > 0) entry->gpe_pp->stripeoffset %= pp->stripesize; + entry->gpe_pp->flags |= pp->flags & G_PF_ACCEPT_UNMAPPED; g_error_provider(entry->gpe_pp, 0); } diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 5fee565..27548dc 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -4240,6 +4240,49 @@ pmap_copy_page(vm_page_t src, vm_page_t dst) mtx_unlock(&sysmaps->lock); } +void +pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], + vm_offset_t b_offset, int xfersize) +{ + struct sysmaps *sysmaps; + vm_page_t a_pg, b_pg; + char *a_cp, *b_cp; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)]; + mtx_lock(&sysmaps->lock); + if (*sysmaps->CMAP1 != 0) + panic("pmap_copy_pages: CMAP1 busy"); + if (*sysmaps->CMAP2 != 0) + panic("pmap_copy_pages: CMAP2 busy"); + sched_pin(); + while (xfersize > 0) { + invlpg((u_int)sysmaps->CADDR1); + invlpg((u_int)sysmaps->CADDR2); + a_pg = ma[a_offset >> PAGE_SHIFT]; + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + b_pg = mb[b_offset >> PAGE_SHIFT]; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + *sysmaps->CMAP1 = PG_V | VM_PAGE_TO_PHYS(a_pg) | PG_A | + pmap_cache_bits(b_pg->md.pat_mode, 0); + *sysmaps->CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(b_pg) | PG_A | + PG_M | pmap_cache_bits(b_pg->md.pat_mode, 0); + a_cp = sysmaps->CADDR1 + a_pg_offset; + b_cp = sysmaps->CADDR2 + b_pg_offset; + bcopy(a_cp, b_cp, cnt); + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } + *sysmaps->CMAP1 = 0; + *sysmaps->CMAP2 = 0; + sched_unpin(); + mtx_unlock(&sysmaps->lock); +} + /* * Returns true if the pmap's pv is one of the first * 16 pvs linked to from this page. This count may diff --git a/sys/i386/xen/pmap.c b/sys/i386/xen/pmap.c index a8f11a4..28ba21b 100644 --- a/sys/i386/xen/pmap.c +++ b/sys/i386/xen/pmap.c @@ -3448,6 +3448,46 @@ pmap_copy_page(vm_page_t src, vm_page_t dst) mtx_unlock(&sysmaps->lock); } +void +pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], + vm_offset_t b_offset, int xfersize) +{ + struct sysmaps *sysmaps; + vm_page_t a_pg, b_pg; + char *a_cp, *b_cp; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)]; + mtx_lock(&sysmaps->lock); + if (*sysmaps->CMAP1 != 0) + panic("pmap_copy_pages: CMAP1 busy"); + if (*sysmaps->CMAP2 != 0) + panic("pmap_copy_pages: CMAP2 busy"); + sched_pin(); + while (xfersize > 0) { + a_pg = ma[a_offset >> PAGE_SHIFT]; + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + b_pg = mb[b_offset >> PAGE_SHIFT]; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + PT_SET_MA(sysmaps->CADDR1, PG_V | VM_PAGE_TO_MACH(a_pg) | PG_A); + PT_SET_MA(sysmaps->CADDR2, PG_V | PG_RW | + VM_PAGE_TO_MACH(b_pg) | PG_A | PG_M); + a_cp = sysmaps->CADDR1 + a_pg_offset; + b_cp = sysmaps->CADDR2 + b_pg_offset; + bcopy(a_cp, b_cp, cnt); + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } + PT_SET_MA(sysmaps->CADDR1, 0); + PT_SET_MA(sysmaps->CADDR2, 0); + sched_unpin(); + mtx_unlock(&sysmaps->lock); +} + /* * Returns true if the pmap's pv is one of the first * 16 pvs linked to from this page. This count may diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c index 594f8c6..28610c6 100644 --- a/sys/ia64/ia64/pmap.c +++ b/sys/ia64/ia64/pmap.c @@ -2014,6 +2014,30 @@ pmap_copy_page(vm_page_t msrc, vm_page_t mdst) bcopy(src, dst, PAGE_SIZE); } +void +pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], + vm_offset_t b_offset, int xfersize) +{ + void *a_cp, *b_cp; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + while (xfersize > 0) { + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + a_cp = (char *)pmap_page_to_va(ma[a_offset >> PAGE_SHIFT]) + + a_pg_offset; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + b_cp = (char *)pmap_page_to_va(mb[b_offset >> PAGE_SHIFT]) + + b_pg_offset; + bcopy(a_cp, b_cp, cnt); + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } +} + /* * Returns true if the pmap's pv is one of the first * 16 pvs linked to from this page. This count may diff --git a/sys/kern/kern_physio.c b/sys/kern/kern_physio.c index 34072f3..922ebb6 100644 --- a/sys/kern/kern_physio.c +++ b/sys/kern/kern_physio.c @@ -92,7 +92,7 @@ physio(struct cdev *dev, struct uio *uio, int ioflag) bp->b_blkno = btodb(bp->b_offset); if (uio->uio_segflg == UIO_USERSPACE) - if (vmapbuf(bp) < 0) { + if (vmapbuf(bp, 0) < 0) { error = EFAULT; goto doerror; } diff --git a/sys/kern/subr_bus_dma.c b/sys/kern/subr_bus_dma.c index 773d01a..1ca1f89 100644 --- a/sys/kern/subr_bus_dma.c +++ b/sys/kern/subr_bus_dma.c @@ -126,11 +126,27 @@ static int _bus_dmamap_load_bio(bus_dma_tag_t dmat, bus_dmamap_t map, struct bio *bio, int *nsegs, int flags) { - int error; + vm_paddr_t paddr; + bus_size_t len, tlen; + int error, i, ma_offs; - error = _bus_dmamap_load_buffer(dmat, map, bio->bio_data, - bio->bio_bcount, kernel_pmap, flags, NULL, nsegs); + if ((bio->bio_flags & BIO_UNMAPPED) == 0) { + error = _bus_dmamap_load_buffer(dmat, map, bio->bio_data, + bio->bio_bcount, kernel_pmap, flags, NULL, nsegs); + return (error); + } + tlen = bio->bio_bcount; + ma_offs = bio->bio_ma_offset; + for (i = 0; tlen > 0; i++, tlen -= len) { + len = min(PAGE_SIZE - ma_offs, tlen); + paddr = VM_PAGE_TO_PHYS(bio->bio_ma[i]) + ma_offs; + error = _bus_dmamap_load_phys(dmat, map, paddr, len, + flags, NULL, nsegs); + if (error != 0) + break; + ma_offs = 0; + } return (error); } diff --git a/sys/kern/subr_param.c b/sys/kern/subr_param.c index f36c769..1fb344e 100644 --- a/sys/kern/subr_param.c +++ b/sys/kern/subr_param.c @@ -91,6 +91,7 @@ int maxfilesperproc; /* per-proc open files limit */ int msgbufsize; /* size of kernel message buffer */ int ncallout; /* maximum # of timer events */ int nbuf; +int bio_transient_maxcnt; int ngroups_max; /* max # groups per process */ int nswbuf; pid_t pid_max = PID_MAX; @@ -119,6 +120,9 @@ SYSCTL_LONG(_kern, OID_AUTO, maxswzone, CTLFLAG_RDTUN, &maxswzone, 0, "Maximum memory for swap metadata"); SYSCTL_LONG(_kern, OID_AUTO, maxbcache, CTLFLAG_RDTUN, &maxbcache, 0, "Maximum value of vfs.maxbufspace"); +SYSCTL_INT(_kern, OID_AUTO, bio_transient_maxcnt, CTLFLAG_RDTUN, + &bio_transient_maxcnt, 0, + "Maximum number of transient BIOs mappings"); SYSCTL_ULONG(_kern, OID_AUTO, maxtsiz, CTLFLAG_RW | CTLFLAG_TUN, &maxtsiz, 0, "Maximum text size"); SYSCTL_ULONG(_kern, OID_AUTO, dfldsiz, CTLFLAG_RW | CTLFLAG_TUN, &dfldsiz, 0, @@ -321,6 +325,7 @@ init_param2(long physpages) */ nbuf = NBUF; TUNABLE_INT_FETCH("kern.nbuf", &nbuf); + TUNABLE_INT_FETCH("kern.bio_transient_maxcnt", &bio_transient_maxcnt); /* * XXX: Does the callout wheel have to be so big? diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c index 99b0197..ae6ae8e 100644 --- a/sys/kern/vfs_aio.c +++ b/sys/kern/vfs_aio.c @@ -1322,7 +1322,7 @@ aio_qphysio(struct proc *p, struct aiocblist *aiocbe) /* * Bring buffer into kernel space. */ - if (vmapbuf(bp) < 0) { + if (vmapbuf(bp, 1) < 0) { error = EFAULT; goto doerror; } diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 6393399..eb3141c 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -91,6 +91,7 @@ struct buf_ops buf_ops_bio = { * carnal knowledge of buffers. This knowledge should be moved to vfs_bio.c. */ struct buf *buf; /* buffer header pool */ +caddr_t unmapped_buf; static struct proc *bufdaemonproc; @@ -131,6 +132,10 @@ SYSCTL_PROC(_vfs, OID_AUTO, bufspace, CTLTYPE_LONG|CTLFLAG_MPSAFE|CTLFLAG_RD, SYSCTL_LONG(_vfs, OID_AUTO, bufspace, CTLFLAG_RD, &bufspace, 0, "Virtual memory used for buffers"); #endif +static long unmapped_bufspace; +SYSCTL_LONG(_vfs, OID_AUTO, unmapped_bufspace, CTLFLAG_RD, + &unmapped_bufspace, 0, + "Amount of unmapped buffers, inclusive in the bufspace"); static long maxbufspace; SYSCTL_LONG(_vfs, OID_AUTO, maxbufspace, CTLFLAG_RD, &maxbufspace, 0, "Maximum allowed value of bufspace (including buf_daemon)"); @@ -200,6 +205,10 @@ SYSCTL_INT(_vfs, OID_AUTO, getnewbufcalls, CTLFLAG_RW, &getnewbufcalls, 0, static int getnewbufrestarts; SYSCTL_INT(_vfs, OID_AUTO, getnewbufrestarts, CTLFLAG_RW, &getnewbufrestarts, 0, "Number of times getnewbuf has had to restart a buffer aquisition"); +static int mappingrestarts; +SYSCTL_INT(_vfs, OID_AUTO, mappingrestarts, CTLFLAG_RW, &mappingrestarts, 0, + "Number of times getblk has had to restart a buffer mapping for " + "unmapped buffer"); static int flushbufqtarget = 100; SYSCTL_INT(_vfs, OID_AUTO, flushbufqtarget, CTLFLAG_RW, &flushbufqtarget, 0, "Amount of work to do in flushbufqueues when helping bufdaemon"); @@ -280,6 +289,9 @@ static struct mtx nblock; /* Queues for free buffers with various properties */ static TAILQ_HEAD(bqueues, buf) bufqueues[BUFFER_QUEUES] = { { 0 } }; +#ifdef INVARIANTS +static int bq_len[BUFFER_QUEUES]; +#endif /* Lock for the bufqueues */ static struct mtx bqlock; @@ -510,7 +522,7 @@ caddr_t kern_vfs_bio_buffer_alloc(caddr_t v, long physmem_est) { int tuned_nbuf; - long maxbuf; + long maxbuf, maxbuf_sz, buf_sz, biotmap_sz; /* * physmem_est is in pages. Convert it to kilobytes (assumes @@ -554,6 +566,52 @@ kern_vfs_bio_buffer_alloc(caddr_t v, long physmem_est) } /* + * Ideal allocation size for the transient bio submap if 10% + * of the maximal space buffer map. This roughly corresponds + * to the amount of the buffer mapped for typical UFS load. + * + * Clip the buffer map to reserve space for the transient + * BIOs, if its extent is bigger than 90% of the maximum + * buffer map extent on the platform. + * + * The fall-back to the maxbuf in case of maxbcache unset, + * allows to not trim the buffer KVA for the architectures + * with ample KVA space. + */ + if (bio_transient_maxcnt == 0) { + maxbuf_sz = maxbcache != 0 ? maxbcache : maxbuf * BKVASIZE; + buf_sz = nbuf * BKVASIZE; + if (buf_sz < maxbuf_sz / 10 * 9) { + /* + * There is more KVA than memory. Do not + * adjust buffer map size, and assign the rest + * of maxbuf to transient map. + */ + biotmap_sz = maxbuf_sz - buf_sz; + } else { + /* + * Buffer map spans all KVA we could afford on + * this platform. Give 10% of the buffer map + * to the transient bio map. + */ + biotmap_sz = buf_sz / 10; + buf_sz -= biotmap_sz; + } + if (biotmap_sz / INT_MAX > MAXPHYS) + bio_transient_maxcnt = INT_MAX; + else + bio_transient_maxcnt = biotmap_sz / MAXPHYS; + /* + * Artifically limit to 1024 simultaneous in-flight I/Os + * using the transient mapping. + */ + if (bio_transient_maxcnt > 1024) + bio_transient_maxcnt = 1024; + if (tuned_nbuf) + nbuf = buf_sz / BKVASIZE; + } + + /* * swbufs are used as temporary holders for I/O, such as paging I/O. * We have no less then 16 and no more then 256. */ @@ -606,6 +664,9 @@ bufinit(void) LIST_INIT(&bp->b_dep); BUF_LOCKINIT(bp); TAILQ_INSERT_TAIL(&bufqueues[QUEUE_EMPTY], bp, b_freelist); +#ifdef INVARIANTS + bq_len[QUEUE_EMPTY]++; +#endif } /* @@ -674,6 +735,55 @@ bufinit(void) bogus_page = vm_page_alloc(NULL, 0, VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED); + unmapped_buf = (caddr_t)kmem_alloc_nofault(kernel_map, MAXPHYS); +} + +#ifdef INVARIANTS +static inline void +vfs_buf_check_mapped(struct buf *bp) +{ + + KASSERT((bp->b_flags & B_UNMAPPED) == 0, + ("mapped buf %p %x", bp, bp->b_flags)); + KASSERT(bp->b_kvabase != unmapped_buf, + ("mapped buf: b_kvabase was not updated %p", bp)); + KASSERT(bp->b_data != unmapped_buf, + ("mapped buf: b_data was not updated %p", bp)); +} + +static inline void +vfs_buf_check_unmapped(struct buf *bp) +{ + + KASSERT((bp->b_flags & B_UNMAPPED) == B_UNMAPPED, + ("unmapped buf %p %x", bp, bp->b_flags)); + KASSERT(bp->b_kvabase == unmapped_buf, + ("unmapped buf: corrupted b_kvabase %p", bp)); + KASSERT(bp->b_data == unmapped_buf, + ("unmapped buf: corrupted b_data %p", bp)); +} + +#define BUF_CHECK_MAPPED(bp) vfs_buf_check_mapped(bp) +#define BUF_CHECK_UNMAPPED(bp) vfs_buf_check_unmapped(bp) +#else +#define BUF_CHECK_MAPPED(bp) do {} while (0) +#define BUF_CHECK_UNMAPPED(bp) do {} while (0) +#endif + +static void +bpmap_qenter(struct buf *bp) +{ + + BUF_CHECK_MAPPED(bp); + + /* + * bp->b_data is relative to bp->b_offset, but + * bp->b_offset may be offset into the first page. + */ + bp->b_data = (caddr_t)trunc_page((vm_offset_t)bp->b_data); + pmap_qenter((vm_offset_t)bp->b_data, bp->b_pages, bp->b_npages); + bp->b_data = (caddr_t)((vm_offset_t)bp->b_data | + (vm_offset_t)(bp->b_offset & PAGE_MASK)); } /* @@ -685,14 +795,26 @@ static void bfreekva(struct buf *bp) { - if (bp->b_kvasize) { - atomic_add_int(&buffreekvacnt, 1); - atomic_subtract_long(&bufspace, bp->b_kvasize); - vm_map_remove(buffer_map, (vm_offset_t) bp->b_kvabase, - (vm_offset_t) bp->b_kvabase + bp->b_kvasize); - bp->b_kvasize = 0; - bufspacewakeup(); + if (bp->b_kvasize == 0) + return; + + atomic_add_int(&buffreekvacnt, 1); + atomic_subtract_long(&bufspace, bp->b_kvasize); + if ((bp->b_flags & B_UNMAPPED) == 0) { + BUF_CHECK_MAPPED(bp); + vm_map_remove(buffer_map, (vm_offset_t)bp->b_kvabase, + (vm_offset_t)bp->b_kvabase + bp->b_kvasize); + } else { + BUF_CHECK_UNMAPPED(bp); + if ((bp->b_flags & B_KVAALLOC) != 0) { + vm_map_remove(buffer_map, (vm_offset_t)bp->b_kvaalloc, + (vm_offset_t)bp->b_kvaalloc + bp->b_kvasize); + } + atomic_subtract_long(&unmapped_bufspace, bp->b_kvasize); + bp->b_flags &= ~(B_UNMAPPED | B_KVAALLOC); } + bp->b_kvasize = 0; + bufspacewakeup(); } /* @@ -759,6 +881,11 @@ bremfreel(struct buf *bp) mtx_assert(&bqlock, MA_OWNED); TAILQ_REMOVE(&bufqueues[bp->b_qindex], bp, b_freelist); +#ifdef INVARIANTS + KASSERT(bq_len[bp->b_qindex] >= 1, ("queue %d underflow", + bp->b_qindex)); + bq_len[bp->b_qindex]--; +#endif bp->b_qindex = QUEUE_NONE; /* * If this was a delayed bremfree() we only need to remove the buffer @@ -829,9 +956,8 @@ breada(struct vnode * vp, daddr_t * rablkno, int * rabsize, * getblk(). Also starts asynchronous I/O on read-ahead blocks. */ int -breadn_flags(struct vnode * vp, daddr_t blkno, int size, - daddr_t * rablkno, int *rabsize, int cnt, - struct ucred * cred, int flags, struct buf **bpp) +breadn_flags(struct vnode *vp, daddr_t blkno, int size, daddr_t *rablkno, + int *rabsize, int cnt, struct ucred *cred, int flags, struct buf **bpp) { struct buf *bp; int rv = 0, readwait = 0; @@ -1268,6 +1394,15 @@ brelse(struct buf *bp) KASSERT(!(bp->b_flags & (B_CLUSTER|B_PAGING)), ("brelse: inappropriate B_PAGING or B_CLUSTER bp %p", bp)); + if (BUF_LOCKRECURSED(bp)) { + /* + * Do not process, in particular, do not handle the + * B_INVAL/B_RELBUF and do not release to free list. + */ + BUF_UNLOCK(bp); + return; + } + if (bp->b_flags & B_MANAGED) { bqrelse(bp); return; @@ -1405,7 +1540,8 @@ brelse(struct buf *bp) } } - if ((bp->b_flags & B_INVAL) == 0) { + if ((bp->b_flags & (B_INVAL | B_UNMAPPED)) == 0) { + BUF_CHECK_MAPPED(bp); pmap_qenter( trunc_page((vm_offset_t)bp->b_data), bp->b_pages, bp->b_npages); @@ -1444,12 +1580,6 @@ brelse(struct buf *bp) brelvp(bp); } - if (BUF_LOCKRECURSED(bp)) { - /* do not release to free list */ - BUF_UNLOCK(bp); - return; - } - /* enqueue */ mtx_lock(&bqlock); /* Handle delayed bremfree() processing. */ @@ -1506,11 +1636,17 @@ brelse(struct buf *bp) bp->b_qindex = QUEUE_DIRTY; else bp->b_qindex = QUEUE_CLEAN; - if (bp->b_flags & B_AGE) - TAILQ_INSERT_HEAD(&bufqueues[bp->b_qindex], bp, b_freelist); - else - TAILQ_INSERT_TAIL(&bufqueues[bp->b_qindex], bp, b_freelist); + if (bp->b_flags & B_AGE) { + TAILQ_INSERT_HEAD(&bufqueues[bp->b_qindex], bp, + b_freelist); + } else { + TAILQ_INSERT_TAIL(&bufqueues[bp->b_qindex], bp, + b_freelist); + } } +#ifdef INVARIANTS + bq_len[bp->b_qindex]++; +#endif mtx_unlock(&bqlock); /* @@ -1601,6 +1737,9 @@ bqrelse(struct buf *bp) if (bp->b_flags & B_DELWRI) { bp->b_qindex = QUEUE_DIRTY; TAILQ_INSERT_TAIL(&bufqueues[bp->b_qindex], bp, b_freelist); +#ifdef INVARIANTS + bq_len[bp->b_qindex]++; +#endif } else { /* * The locking of the BO_LOCK for checking of the @@ -1613,6 +1752,9 @@ bqrelse(struct buf *bp) bp->b_qindex = QUEUE_CLEAN; TAILQ_INSERT_TAIL(&bufqueues[QUEUE_CLEAN], bp, b_freelist); +#ifdef INVARIANTS + bq_len[QUEUE_CLEAN]++; +#endif } else { /* * We are too low on memory, we have to try to free @@ -1654,7 +1796,11 @@ vfs_vmio_release(struct buf *bp) int i; vm_page_t m; - pmap_qremove(trunc_page((vm_offset_t)bp->b_data), bp->b_npages); + if ((bp->b_flags & B_UNMAPPED) == 0) { + BUF_CHECK_MAPPED(bp); + pmap_qremove(trunc_page((vm_offset_t)bp->b_data), bp->b_npages); + } else + BUF_CHECK_UNMAPPED(bp); VM_OBJECT_LOCK(bp->b_bufobj->bo_object); for (i = 0; i < bp->b_npages; i++) { m = bp->b_pages[i]; @@ -1758,8 +1904,10 @@ vfs_bio_awrite(struct buf *bp) int nwritten; int size; int maxcl; + int gbflags; bo = &vp->v_bufobj; + gbflags = (bp->b_flags & B_UNMAPPED) != 0 ? GB_UNMAPPED : 0; /* * right now we support clustered writing only to regular files. If * we find a clusterable block we could be in the middle of a cluster @@ -1790,8 +1938,9 @@ vfs_bio_awrite(struct buf *bp) */ if (ncl != 1) { BUF_UNLOCK(bp); - nwritten = cluster_wbuild(vp, size, lblkno - j, ncl); - return nwritten; + nwritten = cluster_wbuild(vp, size, lblkno - j, ncl, + gbflags); + return (nwritten); } } bremfree(bp); @@ -1807,46 +1956,206 @@ vfs_bio_awrite(struct buf *bp) return nwritten; } +static void +setbufkva(struct buf *bp, vm_offset_t addr, int maxsize, int gbflags) +{ + + KASSERT((bp->b_flags & (B_UNMAPPED | B_KVAALLOC)) == 0 && + bp->b_kvasize == 0, ("call bfreekva(%p)", bp)); + if ((gbflags & GB_UNMAPPED) == 0) { + bp->b_kvabase = (caddr_t)addr; + } else if ((gbflags & GB_KVAALLOC) != 0) { + KASSERT((gbflags & GB_UNMAPPED) != 0, + ("GB_KVAALLOC without GB_UNMAPPED")); + bp->b_kvaalloc = (caddr_t)addr; + bp->b_flags |= B_UNMAPPED | B_KVAALLOC; + atomic_add_long(&unmapped_bufspace, bp->b_kvasize); + } + bp->b_kvasize = maxsize; +} + /* - * getnewbuf: - * - * Find and initialize a new buffer header, freeing up existing buffers - * in the bufqueues as necessary. The new buffer is returned locked. - * - * Important: B_INVAL is not set. If the caller wishes to throw the - * buffer away, the caller must set B_INVAL prior to calling brelse(). - * - * We block if: - * We have insufficient buffer headers - * We have insufficient buffer space - * buffer_map is too fragmented ( space reservation fails ) - * If we have to flush dirty buffers ( but we try to avoid this ) - * - * To avoid VFS layer recursion we do not flush dirty buffers ourselves. - * Instead we ask the buf daemon to do it for us. We attempt to - * avoid piecemeal wakeups of the pageout daemon. + * Allocate the buffer KVA and set b_kvasize. Also set b_kvabase if + * needed. */ +static int +allocbufkva(struct buf *bp, int maxsize, int gbflags) +{ + vm_offset_t addr; + int rv; -static struct buf * -getnewbuf(struct vnode *vp, int slpflag, int slptimeo, int size, int maxsize, - int gbflags) + bfreekva(bp); + addr = 0; + + vm_map_lock(buffer_map); + if (vm_map_findspace(buffer_map, vm_map_min(buffer_map), maxsize, + &addr)) { + vm_map_unlock(buffer_map); + /* + * Buffer map is too fragmented. Request the caller + * to defragment the map. + */ + atomic_add_int(&bufdefragcnt, 1); + return (1); + } + rv = vm_map_insert(buffer_map, NULL, 0, addr, addr + maxsize, + VM_PROT_RW, VM_PROT_RW, MAP_NOFAULT); + KASSERT(rv == KERN_SUCCESS, ("vm_map_insert(buffer_map) rv %d", rv)); + vm_map_unlock(buffer_map); + setbufkva(bp, addr, maxsize, gbflags); + atomic_add_long(&bufspace, bp->b_kvasize); + return (0); +} + +/* + * Ask the bufdaemon for help, or act as bufdaemon itself, when a + * locked vnode is supplied. + */ +static void +getnewbuf_bufd_help(struct vnode *vp, int gbflags, int slpflag, int slptimeo, + int defrag) { struct thread *td; - struct buf *bp; - struct buf *nbp; - int defrag = 0; - int nqindex; - static int flushingbufs; + char *waitmsg; + int fl, flags, norunbuf; + + mtx_assert(&bqlock, MA_OWNED); + + if (defrag) { + flags = VFS_BIO_NEED_BUFSPACE; + waitmsg = "nbufkv"; + } else if (bufspace >= hibufspace) { + waitmsg = "nbufbs"; + flags = VFS_BIO_NEED_BUFSPACE; + } else { + waitmsg = "newbuf"; + flags = VFS_BIO_NEED_ANY; + } + mtx_lock(&nblock); + needsbuffer |= flags; + mtx_unlock(&nblock); + mtx_unlock(&bqlock); + + bd_speedup(); /* heeeelp */ + if ((gbflags & GB_NOWAIT_BD) != 0) + return; td = curthread; + mtx_lock(&nblock); + while (needsbuffer & flags) { + if (vp != NULL && (td->td_pflags & TDP_BUFNEED) == 0) { + mtx_unlock(&nblock); + /* + * getblk() is called with a vnode locked, and + * some majority of the dirty buffers may as + * well belong to the vnode. Flushing the + * buffers there would make a progress that + * cannot be achieved by the buf_daemon, that + * cannot lock the vnode. + */ + norunbuf = ~(TDP_BUFNEED | TDP_NORUNNINGBUF) | + (td->td_pflags & TDP_NORUNNINGBUF); + /* play bufdaemon */ + td->td_pflags |= TDP_BUFNEED | TDP_NORUNNINGBUF; + fl = buf_do_flush(vp); + td->td_pflags &= norunbuf; + mtx_lock(&nblock); + if (fl != 0) + continue; + if ((needsbuffer & flags) == 0) + break; + } + if (msleep(&needsbuffer, &nblock, (PRIBIO + 4) | slpflag, + waitmsg, slptimeo)) + break; + } + mtx_unlock(&nblock); +} + +static void +getnewbuf_reuse_bp(struct buf *bp, int qindex) +{ + + CTR6(KTR_BUF, "getnewbuf(%p) vp %p flags %X kvasize %d bufsize %d " + "queue %d (recycling)", bp, bp->b_vp, bp->b_flags, + bp->b_kvasize, bp->b_bufsize, qindex); + mtx_assert(&bqlock, MA_NOTOWNED); + /* - * We can't afford to block since we might be holding a vnode lock, - * which may prevent system daemons from running. We deal with - * low-memory situations by proactively returning memory and running - * async I/O rather then sync I/O. + * Note: we no longer distinguish between VMIO and non-VMIO + * buffers. */ - atomic_add_int(&getnewbufcalls, 1); - atomic_subtract_int(&getnewbufrestarts, 1); + KASSERT((bp->b_flags & B_DELWRI) == 0, + ("delwri buffer %p found in queue %d", bp, qindex)); + + if (qindex == QUEUE_CLEAN) { + if (bp->b_flags & B_VMIO) { + bp->b_flags &= ~B_ASYNC; + vfs_vmio_release(bp); + } + if (bp->b_vp != NULL) + brelvp(bp); + } + + /* + * Get the rest of the buffer freed up. b_kva* is still valid + * after this operation. + */ + + if (bp->b_rcred != NOCRED) { + crfree(bp->b_rcred); + bp->b_rcred = NOCRED; + } + if (bp->b_wcred != NOCRED) { + crfree(bp->b_wcred); + bp->b_wcred = NOCRED; + } + if (!LIST_EMPTY(&bp->b_dep)) + buf_deallocate(bp); + if (bp->b_vflags & BV_BKGRDINPROG) + panic("losing buffer 3"); + KASSERT(bp->b_vp == NULL, ("bp: %p still has vnode %p. qindex: %d", + bp, bp->b_vp, qindex)); + KASSERT((bp->b_xflags & (BX_VNCLEAN|BX_VNDIRTY)) == 0, + ("bp: %p still on a buffer list. xflags %X", bp, bp->b_xflags)); + + if (bp->b_bufsize) + allocbuf(bp, 0); + + bp->b_flags &= B_UNMAPPED | B_KVAALLOC; + bp->b_ioflags = 0; + bp->b_xflags = 0; + KASSERT((bp->b_vflags & BV_INFREECNT) == 0, + ("buf %p still counted as free?", bp)); + bp->b_vflags = 0; + bp->b_vp = NULL; + bp->b_blkno = bp->b_lblkno = 0; + bp->b_offset = NOOFFSET; + bp->b_iodone = 0; + bp->b_error = 0; + bp->b_resid = 0; + bp->b_bcount = 0; + bp->b_npages = 0; + bp->b_dirtyoff = bp->b_dirtyend = 0; + bp->b_bufobj = NULL; + bp->b_pin_count = 0; + bp->b_fsprivate1 = NULL; + bp->b_fsprivate2 = NULL; + bp->b_fsprivate3 = NULL; + + LIST_INIT(&bp->b_dep); +} + +static int flushingbufs; + +static struct buf * +getnewbuf_scan(int maxsize, int defrag, int unmapped) +{ + struct buf *bp, *nbp; + int nqindex, qindex; + + KASSERT(!unmapped || !defrag, ("both unmapped and defrag")); + restart: atomic_add_int(&getnewbufrestarts, 1); @@ -1856,63 +2165,80 @@ restart: * that if we are specially marked process, we are allowed to * dip into our reserves. * - * The scanning sequence is nominally: EMPTY->EMPTYKVA->CLEAN + * The scanning sequence is nominally: EMPTY->EMPTYKVA->CLEAN + * for the allocation of the mapped buffer. For unmapped, the + * easiest is to start with EMPTY outright. * * We start with EMPTYKVA. If the list is empty we backup to EMPTY. * However, there are a number of cases (defragging, reusing, ...) * where we cannot backup. */ + nbp = NULL; mtx_lock(&bqlock); - nqindex = QUEUE_EMPTYKVA; - nbp = TAILQ_FIRST(&bufqueues[QUEUE_EMPTYKVA]); - + if (!defrag && unmapped) { + nqindex = QUEUE_EMPTY; + nbp = TAILQ_FIRST(&bufqueues[QUEUE_EMPTY]); + } if (nbp == NULL) { - /* - * If no EMPTYKVA buffers and we are either - * defragging or reusing, locate a CLEAN buffer - * to free or reuse. If bufspace useage is low - * skip this step so we can allocate a new buffer. - */ - if (defrag || bufspace >= lobufspace) { - nqindex = QUEUE_CLEAN; - nbp = TAILQ_FIRST(&bufqueues[QUEUE_CLEAN]); - } + nqindex = QUEUE_EMPTYKVA; + nbp = TAILQ_FIRST(&bufqueues[QUEUE_EMPTYKVA]); + } - /* - * If we could not find or were not allowed to reuse a - * CLEAN buffer, check to see if it is ok to use an EMPTY - * buffer. We can only use an EMPTY buffer if allocating - * its KVA would not otherwise run us out of buffer space. - */ - if (nbp == NULL && defrag == 0 && - bufspace + maxsize < hibufspace) { - nqindex = QUEUE_EMPTY; - nbp = TAILQ_FIRST(&bufqueues[QUEUE_EMPTY]); - } + /* + * If no EMPTYKVA buffers and we are either defragging or + * reusing, locate a CLEAN buffer to free or reuse. If + * bufspace useage is low skip this step so we can allocate a + * new buffer. + */ + if (nbp == NULL && (defrag || bufspace >= lobufspace)) { + nqindex = QUEUE_CLEAN; + nbp = TAILQ_FIRST(&bufqueues[QUEUE_CLEAN]); + } + + /* + * If we could not find or were not allowed to reuse a CLEAN + * buffer, check to see if it is ok to use an EMPTY buffer. + * We can only use an EMPTY buffer if allocating its KVA would + * not otherwise run us out of buffer space. No KVA is needed + * for the unmapped allocation. + */ + if (nbp == NULL && defrag == 0 && bufspace + maxsize < hibufspace) { + nqindex = QUEUE_EMPTY; + nbp = TAILQ_FIRST(&bufqueues[QUEUE_EMPTY]); + } + + /* + * All available buffers might be clean, retry ignoring the + * lobufspace as the last resort. + */ + if (nbp == NULL && !TAILQ_EMPTY(&bufqueues[QUEUE_CLEAN])) { + nqindex = QUEUE_CLEAN; + nbp = TAILQ_FIRST(&bufqueues[QUEUE_CLEAN]); } /* * Run scan, possibly freeing data and/or kva mappings on the fly * depending. */ - while ((bp = nbp) != NULL) { - int qindex = nqindex; + qindex = nqindex; /* - * Calculate next bp ( we can only use it if we do not block - * or do other fancy things ). + * Calculate next bp (we can only use it if we do not + * block or do other fancy things). */ if ((nbp = TAILQ_NEXT(bp, b_freelist)) == NULL) { switch(qindex) { case QUEUE_EMPTY: nqindex = QUEUE_EMPTYKVA; - if ((nbp = TAILQ_FIRST(&bufqueues[QUEUE_EMPTYKVA]))) + nbp = TAILQ_FIRST(&bufqueues[QUEUE_EMPTYKVA]); + if (nbp != NULL) break; /* FALLTHROUGH */ case QUEUE_EMPTYKVA: nqindex = QUEUE_CLEAN; - if ((nbp = TAILQ_FIRST(&bufqueues[QUEUE_CLEAN]))) + nbp = TAILQ_FIRST(&bufqueues[QUEUE_CLEAN]); + if (nbp != NULL) break; /* FALLTHROUGH */ case QUEUE_CLEAN: @@ -1948,22 +2274,9 @@ restart: } BO_UNLOCK(bp->b_bufobj); } - CTR6(KTR_BUF, - "getnewbuf(%p) vp %p flags %X kvasize %d bufsize %d " - "queue %d (recycling)", bp, bp->b_vp, bp->b_flags, - bp->b_kvasize, bp->b_bufsize, qindex); - - /* - * Sanity Checks - */ - KASSERT(bp->b_qindex == qindex, ("getnewbuf: inconsistant queue %d bp %p", qindex, bp)); - - /* - * Note: we no longer distinguish between VMIO and non-VMIO - * buffers. - */ - KASSERT((bp->b_flags & B_DELWRI) == 0, ("delwri buffer %p found in queue %d", bp, qindex)); + KASSERT(bp->b_qindex == qindex, + ("getnewbuf: inconsistent queue %d bp %p", qindex, bp)); if (bp->b_bufobj != NULL) BO_LOCK(bp->b_bufobj); @@ -1971,68 +2284,13 @@ restart: if (bp->b_bufobj != NULL) BO_UNLOCK(bp->b_bufobj); mtx_unlock(&bqlock); - - if (qindex == QUEUE_CLEAN) { - if (bp->b_flags & B_VMIO) { - bp->b_flags &= ~B_ASYNC; - vfs_vmio_release(bp); - } - if (bp->b_vp) - brelvp(bp); - } - /* * NOTE: nbp is now entirely invalid. We can only restart * the scan from this point on. - * - * Get the rest of the buffer freed up. b_kva* is still - * valid after this operation. */ - if (bp->b_rcred != NOCRED) { - crfree(bp->b_rcred); - bp->b_rcred = NOCRED; - } - if (bp->b_wcred != NOCRED) { - crfree(bp->b_wcred); - bp->b_wcred = NOCRED; - } - if (!LIST_EMPTY(&bp->b_dep)) - buf_deallocate(bp); - if (bp->b_vflags & BV_BKGRDINPROG) - panic("losing buffer 3"); - KASSERT(bp->b_vp == NULL, - ("bp: %p still has vnode %p. qindex: %d", - bp, bp->b_vp, qindex)); - KASSERT((bp->b_xflags & (BX_VNCLEAN|BX_VNDIRTY)) == 0, - ("bp: %p still on a buffer list. xflags %X", - bp, bp->b_xflags)); - - if (bp->b_bufsize) - allocbuf(bp, 0); - - bp->b_flags = 0; - bp->b_ioflags = 0; - bp->b_xflags = 0; - KASSERT((bp->b_vflags & BV_INFREECNT) == 0, - ("buf %p still counted as free?", bp)); - bp->b_vflags = 0; - bp->b_vp = NULL; - bp->b_blkno = bp->b_lblkno = 0; - bp->b_offset = NOOFFSET; - bp->b_iodone = 0; - bp->b_error = 0; - bp->b_resid = 0; - bp->b_bcount = 0; - bp->b_npages = 0; - bp->b_dirtyoff = bp->b_dirtyend = 0; - bp->b_bufobj = NULL; - bp->b_pin_count = 0; - bp->b_fsprivate1 = NULL; - bp->b_fsprivate2 = NULL; - bp->b_fsprivate3 = NULL; - - LIST_INIT(&bp->b_dep); + getnewbuf_reuse_bp(bp, qindex); + mtx_assert(&bqlock, MA_NOTOWNED); /* * If we are defragging then free the buffer. @@ -2073,6 +2331,52 @@ restart: flushingbufs = 0; break; } + return (bp); +} + +/* + * getnewbuf: + * + * Find and initialize a new buffer header, freeing up existing buffers + * in the bufqueues as necessary. The new buffer is returned locked. + * + * Important: B_INVAL is not set. If the caller wishes to throw the + * buffer away, the caller must set B_INVAL prior to calling brelse(). + * + * We block if: + * We have insufficient buffer headers + * We have insufficient buffer space + * buffer_map is too fragmented ( space reservation fails ) + * If we have to flush dirty buffers ( but we try to avoid this ) + * + * To avoid VFS layer recursion we do not flush dirty buffers ourselves. + * Instead we ask the buf daemon to do it for us. We attempt to + * avoid piecemeal wakeups of the pageout daemon. + */ +static struct buf * +getnewbuf(struct vnode *vp, int slpflag, int slptimeo, int size, int maxsize, + int gbflags) +{ + struct buf *bp; + int defrag; + + KASSERT((gbflags & (GB_UNMAPPED | GB_KVAALLOC)) != GB_KVAALLOC, + ("GB_KVAALLOC only makes sense with GB_UNMAPPED")); + + defrag = 0; + /* + * We can't afford to block since we might be holding a vnode lock, + * which may prevent system daemons from running. We deal with + * low-memory situations by proactively returning memory and running + * async I/O rather then sync I/O. + */ + atomic_add_int(&getnewbufcalls, 1); + atomic_subtract_int(&getnewbufrestarts, 1); +restart: + bp = getnewbuf_scan(maxsize, defrag, (gbflags & (GB_UNMAPPED | + GB_KVAALLOC)) == GB_UNMAPPED); + if (bp != NULL) + defrag = 0; /* * If we exhausted our list, sleep as appropriate. We may have to @@ -2080,65 +2384,23 @@ restart: * * Generally we are sleeping due to insufficient buffer space. */ - if (bp == NULL) { - int flags, norunbuf; - char *waitmsg; - int fl; - - if (defrag) { - flags = VFS_BIO_NEED_BUFSPACE; - waitmsg = "nbufkv"; - } else if (bufspace >= hibufspace) { - waitmsg = "nbufbs"; - flags = VFS_BIO_NEED_BUFSPACE; - } else { - waitmsg = "newbuf"; - flags = VFS_BIO_NEED_ANY; - } - mtx_lock(&nblock); - needsbuffer |= flags; - mtx_unlock(&nblock); - mtx_unlock(&bqlock); - - bd_speedup(); /* heeeelp */ - if (gbflags & GB_NOWAIT_BD) - return (NULL); - - mtx_lock(&nblock); - while (needsbuffer & flags) { - if (vp != NULL && (td->td_pflags & TDP_BUFNEED) == 0) { - mtx_unlock(&nblock); - /* - * getblk() is called with a vnode - * locked, and some majority of the - * dirty buffers may as well belong to - * the vnode. Flushing the buffers - * there would make a progress that - * cannot be achieved by the - * buf_daemon, that cannot lock the - * vnode. - */ - norunbuf = ~(TDP_BUFNEED | TDP_NORUNNINGBUF) | - (td->td_pflags & TDP_NORUNNINGBUF); - /* play bufdaemon */ - td->td_pflags |= TDP_BUFNEED | TDP_NORUNNINGBUF; - fl = buf_do_flush(vp); - td->td_pflags &= norunbuf; - mtx_lock(&nblock); - if (fl != 0) - continue; - if ((needsbuffer & flags) == 0) - break; - } - if (msleep(&needsbuffer, &nblock, - (PRIBIO + 4) | slpflag, waitmsg, slptimeo)) { - mtx_unlock(&nblock); - return (NULL); - } - } - mtx_unlock(&nblock); + mtx_assert(&bqlock, MA_OWNED); + getnewbuf_bufd_help(vp, gbflags, slpflag, slptimeo, defrag); + mtx_assert(&bqlock, MA_NOTOWNED); + } else if ((gbflags & (GB_UNMAPPED | GB_KVAALLOC)) == GB_UNMAPPED) { + mtx_assert(&bqlock, MA_NOTOWNED); + + bfreekva(bp); + bp->b_flags |= B_UNMAPPED; + bp->b_kvabase = bp->b_data = unmapped_buf; + bp->b_kvasize = maxsize; + atomic_add_long(&bufspace, bp->b_kvasize); + atomic_add_long(&unmapped_bufspace, bp->b_kvasize); + atomic_add_int(&bufreusecnt, 1); } else { + mtx_assert(&bqlock, MA_NOTOWNED); + /* * We finally have a valid bp. We aren't quite out of the * woods, we still have to reserve kva space. In order @@ -2147,39 +2409,46 @@ restart: */ maxsize = (maxsize + BKVAMASK) & ~BKVAMASK; - if (maxsize != bp->b_kvasize) { - vm_offset_t addr = 0; - int rv; - - bfreekva(bp); - - vm_map_lock(buffer_map); - if (vm_map_findspace(buffer_map, - vm_map_min(buffer_map), maxsize, &addr)) { - /* - * Buffer map is too fragmented. - * We must defragment the map. - */ - atomic_add_int(&bufdefragcnt, 1); - vm_map_unlock(buffer_map); + if (maxsize != bp->b_kvasize || (bp->b_flags & (B_UNMAPPED | + B_KVAALLOC)) == B_UNMAPPED) { + if (allocbufkva(bp, maxsize, gbflags)) { defrag = 1; bp->b_flags |= B_INVAL; brelse(bp); goto restart; } - rv = vm_map_insert(buffer_map, NULL, 0, addr, - addr + maxsize, VM_PROT_ALL, VM_PROT_ALL, - MAP_NOFAULT); - KASSERT(rv == KERN_SUCCESS, - ("vm_map_insert(buffer_map) rv %d", rv)); - vm_map_unlock(buffer_map); - bp->b_kvabase = (caddr_t)addr; - bp->b_kvasize = maxsize; - atomic_add_long(&bufspace, bp->b_kvasize); + atomic_add_int(&bufreusecnt, 1); + } else if ((bp->b_flags & B_KVAALLOC) != 0 && + (gbflags & (GB_UNMAPPED | GB_KVAALLOC)) == 0) { + /* + * If the reused buffer has KVA allocated, + * reassign b_kvaalloc to b_kvabase. + */ + bp->b_kvabase = bp->b_kvaalloc; + bp->b_flags &= ~B_KVAALLOC; + atomic_subtract_long(&unmapped_bufspace, + bp->b_kvasize); + atomic_add_int(&bufreusecnt, 1); + } else if ((bp->b_flags & (B_UNMAPPED | B_KVAALLOC)) == 0 && + (gbflags & (GB_UNMAPPED | GB_KVAALLOC)) == GB_KVAALLOC) { + /* + * The case of reused buffer already have KVA + * mapped, but the request is for unmapped + * buffer with KVA allocated. + */ + bp->b_kvaalloc = bp->b_kvabase; + bp->b_data = bp->b_kvabase = unmapped_buf; + bp->b_flags |= B_UNMAPPED | B_KVAALLOC; + atomic_add_long(&unmapped_bufspace, + bp->b_kvasize); atomic_add_int(&bufreusecnt, 1); } - bp->b_saveaddr = bp->b_kvabase; - bp->b_data = bp->b_saveaddr; + if ((gbflags & GB_UNMAPPED) == 0) { + bp->b_saveaddr = bp->b_kvabase; + bp->b_data = bp->b_saveaddr; + bp->b_flags &= ~B_UNMAPPED; + BUF_CHECK_MAPPED(bp); + } } return (bp); } @@ -2590,6 +2859,90 @@ vfs_setdirty_locked_object(struct buf *bp) } /* + * Allocate the KVA mapping for an existing buffer. It handles the + * cases of both B_UNMAPPED buffer, and buffer with the preallocated + * KVA which is not mapped (B_KVAALLOC). + */ +static void +bp_unmapped_get_kva(struct buf *bp, daddr_t blkno, int size, int gbflags) +{ + struct buf *scratch_bp; + int bsize, maxsize, need_mapping, need_kva; + off_t offset; + + need_mapping = (bp->b_flags & B_UNMAPPED) != 0 && + (gbflags & GB_UNMAPPED) == 0; + need_kva = (bp->b_flags & (B_KVAALLOC | B_UNMAPPED)) == B_UNMAPPED && + (gbflags & GB_KVAALLOC) != 0; + if (!need_mapping && !need_kva) + return; + + BUF_CHECK_UNMAPPED(bp); + + if (need_mapping && (bp->b_flags & B_KVAALLOC) != 0) { + /* + * Buffer is not mapped, but the KVA was already + * reserved at the time of the instantiation. Use the + * allocated space. + */ + bp->b_flags &= ~B_KVAALLOC; + KASSERT(bp->b_kvaalloc != 0, ("kvaalloc == 0")); + bp->b_kvabase = bp->b_kvaalloc; + atomic_subtract_long(&unmapped_bufspace, bp->b_kvasize); + goto has_addr; + } + + /* + * Calculate the amount of the address space we would reserve + * if the buffer was mapped. + */ + bsize = vn_isdisk(bp->b_vp, NULL) ? DEV_BSIZE : bp->b_bufobj->bo_bsize; + offset = blkno * bsize; + maxsize = size + (offset & PAGE_MASK); + maxsize = imax(maxsize, bsize); + +mapping_loop: + if (allocbufkva(bp, maxsize, gbflags)) { + /* + * Request defragmentation. getnewbuf() returns us the + * allocated space by the scratch buffer KVA. + */ + scratch_bp = getnewbuf(bp->b_vp, 0, 0, size, maxsize, gbflags | + (GB_UNMAPPED | GB_KVAALLOC)); + if (scratch_bp == NULL) { + if ((gbflags & GB_NOWAIT_BD) != 0) { + /* + * XXXKIB: defragmentation cannot + * succeed, not sure what else to do. + */ + panic("GB_NOWAIT_BD and B_UNMAPPED %p", bp); + } + atomic_add_int(&mappingrestarts, 1); + goto mapping_loop; + } + KASSERT((scratch_bp->b_flags & B_KVAALLOC) != 0, + ("scratch bp !B_KVAALLOC %p", scratch_bp)); + setbufkva(bp, (vm_offset_t)scratch_bp->b_kvaalloc, + scratch_bp->b_kvasize, gbflags); + + /* Get rid of the scratch buffer. */ + scratch_bp->b_kvasize = 0; + scratch_bp->b_flags |= B_INVAL | B_UNMAPPED; + scratch_bp->b_flags &= ~B_KVAALLOC; + brelse(scratch_bp); + } + if (!need_mapping) + return; + +has_addr: + bp->b_saveaddr = bp->b_kvabase; + bp->b_data = bp->b_saveaddr; /* b_offset is handled by bpmap_qenter */ + bp->b_flags &= ~B_UNMAPPED; + BUF_CHECK_MAPPED(bp); + bpmap_qenter(bp); +} + +/* * getblk: * * Get a block given a specified block and offset into a file/device. @@ -2626,14 +2979,17 @@ vfs_setdirty_locked_object(struct buf *bp) * prior to issuing the READ. biodone() will *not* clear B_INVAL. */ struct buf * -getblk(struct vnode * vp, daddr_t blkno, int size, int slpflag, int slptimeo, +getblk(struct vnode *vp, daddr_t blkno, int size, int slpflag, int slptimeo, int flags) { struct buf *bp; struct bufobj *bo; - int error; + int bsize, error, maxsize, vmio; + off_t offset; CTR3(KTR_BUF, "getblk(%p, %ld, %d)", vp, (long)blkno, size); + KASSERT((flags & (GB_UNMAPPED | GB_KVAALLOC)) != GB_KVAALLOC, + ("GB_KVAALLOC only makes sense with GB_UNMAPPED")); ASSERT_VOP_LOCKED(vp, "getblk"); if (size > MAXBSIZE) panic("getblk: size(%d) > MAXBSIZE(%d)\n", size, MAXBSIZE); @@ -2701,9 +3057,8 @@ loop: } /* - * check for size inconsistancies for non-VMIO case. + * check for size inconsistencies for non-VMIO case. */ - if (bp->b_bcount != size) { if ((bp->b_flags & B_VMIO) == 0 || (size > bp->b_kvasize)) { @@ -2737,12 +3092,18 @@ loop: } /* + * Handle the case of unmapped buffer which should + * become mapped, or the buffer for which KVA + * reservation is requested. + */ + bp_unmapped_get_kva(bp, blkno, size, flags); + + /* * If the size is inconsistant in the VMIO case, we can resize * the buffer. This might lead to B_CACHE getting set or * cleared. If the size has not changed, B_CACHE remains * unchanged from its previous state. */ - if (bp->b_bcount != size) allocbuf(bp, size); @@ -2783,9 +3144,6 @@ loop: } bp->b_flags &= ~B_DONE; } else { - int bsize, maxsize, vmio; - off_t offset; - /* * Buffer is not in-core, create new buffer. The buffer * returned by getnewbuf() is locked. Note that the returned @@ -2801,7 +3159,13 @@ loop: bsize = vn_isdisk(vp, NULL) ? DEV_BSIZE : bo->bo_bsize; offset = blkno * bsize; vmio = vp->v_object != NULL; - maxsize = vmio ? size + (offset & PAGE_MASK) : size; + if (vmio) { + maxsize = size + (offset & PAGE_MASK); + } else { + maxsize = size; + /* Do not allow non-VMIO notmapped buffers. */ + flags &= ~GB_UNMAPPED; + } maxsize = imax(maxsize, bsize); bp = getnewbuf(vp, slpflag, slptimeo, size, maxsize, flags); @@ -2857,6 +3221,7 @@ loop: KASSERT(bp->b_bufobj->bo_object == NULL, ("ARGH! has b_bufobj->bo_object %p %p\n", bp, bp->b_bufobj->bo_object)); + BUF_CHECK_MAPPED(bp); } allocbuf(bp, size); @@ -3031,10 +3396,14 @@ allocbuf(struct buf *bp, int size) if (desiredpages < bp->b_npages) { vm_page_t m; - pmap_qremove((vm_offset_t)trunc_page( - (vm_offset_t)bp->b_data) + - (desiredpages << PAGE_SHIFT), - (bp->b_npages - desiredpages)); + if ((bp->b_flags & B_UNMAPPED) == 0) { + BUF_CHECK_MAPPED(bp); + pmap_qremove((vm_offset_t)trunc_page( + (vm_offset_t)bp->b_data) + + (desiredpages << PAGE_SHIFT), + (bp->b_npages - desiredpages)); + } else + BUF_CHECK_UNMAPPED(bp); VM_OBJECT_LOCK(bp->b_bufobj->bo_object); for (i = desiredpages; i < bp->b_npages; i++) { /* @@ -3140,21 +3509,12 @@ allocbuf(struct buf *bp, int size) VM_OBJECT_UNLOCK(obj); /* - * Step 3, fixup the KVM pmap. Remember that - * bp->b_data is relative to bp->b_offset, but - * bp->b_offset may be offset into the first page. + * Step 3, fixup the KVM pmap. */ - - bp->b_data = (caddr_t) - trunc_page((vm_offset_t)bp->b_data); - pmap_qenter( - (vm_offset_t)bp->b_data, - bp->b_pages, - bp->b_npages - ); - - bp->b_data = (caddr_t)((vm_offset_t)bp->b_data | - (vm_offset_t)(bp->b_offset & PAGE_MASK)); + if ((bp->b_flags & B_UNMAPPED) == 0) + bpmap_qenter(bp); + else + BUF_CHECK_UNMAPPED(bp); } } if (newbsize < bp->b_bufsize) @@ -3164,21 +3524,38 @@ allocbuf(struct buf *bp, int size) return 1; } +extern int inflight_transient_maps; + void biodone(struct bio *bp) { struct mtx *mtxp; void (*done)(struct bio *); + vm_offset_t start, end; + int transient; mtxp = mtx_pool_find(mtxpool_sleep, bp); mtx_lock(mtxp); bp->bio_flags |= BIO_DONE; + if ((bp->bio_flags & BIO_TRANSIENT_MAPPING) != 0) { + start = trunc_page((vm_offset_t)bp->bio_data); + end = round_page((vm_offset_t)bp->bio_data + bp->bio_length); + transient = 1; + } else { + transient = 0; + start = end = 0; + } done = bp->bio_done; if (done == NULL) wakeup(bp); mtx_unlock(mtxp); if (done != NULL) done(bp); + if (transient) { + pmap_qremove(start, OFF_TO_IDX(end - start)); + vm_map_remove(bio_transient_map, start, end); + atomic_add_int(&inflight_transient_maps, -1); + } } /* @@ -3281,7 +3658,7 @@ dev_strategy(struct cdev *dev, struct buf *bp) bip->bio_offset = bp->b_iooffset; bip->bio_length = bp->b_bcount; bip->bio_bcount = bp->b_bcount; /* XXX: remove */ - bip->bio_data = bp->b_data; + bdata2bio(bp, bip); bip->bio_done = bufdonebio; bip->bio_caller2 = bp; bip->bio_dev = dev; @@ -3435,9 +3812,11 @@ bufdone_finish(struct buf *bp) } vm_object_pip_wakeupn(obj, 0); VM_OBJECT_UNLOCK(obj); - if (bogus) + if (bogus && (bp->b_flags & B_UNMAPPED) == 0) { + BUF_CHECK_MAPPED(bp); pmap_qenter(trunc_page((vm_offset_t)bp->b_data), bp->b_pages, bp->b_npages); + } } /* @@ -3480,8 +3859,12 @@ vfs_unbusy_pages(struct buf *bp) if (!m) panic("vfs_unbusy_pages: page missing\n"); bp->b_pages[i] = m; - pmap_qenter(trunc_page((vm_offset_t)bp->b_data), - bp->b_pages, bp->b_npages); + if ((bp->b_flags & B_UNMAPPED) == 0) { + BUF_CHECK_MAPPED(bp); + pmap_qenter(trunc_page((vm_offset_t)bp->b_data), + bp->b_pages, bp->b_npages); + } else + BUF_CHECK_UNMAPPED(bp); } vm_object_pip_subtract(obj, 1); vm_page_io_finish(m); @@ -3646,9 +4029,11 @@ vfs_busy_pages(struct buf *bp, int clear_modify) foff = (foff + PAGE_SIZE) & ~(off_t)PAGE_MASK; } VM_OBJECT_UNLOCK(obj); - if (bogus) + if (bogus && (bp->b_flags & B_UNMAPPED) == 0) { + BUF_CHECK_MAPPED(bp); pmap_qenter(trunc_page((vm_offset_t)bp->b_data), bp->b_pages, bp->b_npages); + } } /* @@ -3704,8 +4089,7 @@ vfs_bio_set_valid(struct buf *bp, int base, int size) void vfs_bio_clrbuf(struct buf *bp) { - int i, j, mask; - caddr_t sa, ea; + int i, j, mask, sa, ea, slide; if ((bp->b_flags & (B_VMIO | B_MALLOC)) != B_VMIO) { clrbuf(bp); @@ -3723,39 +4107,69 @@ vfs_bio_clrbuf(struct buf *bp) if ((bp->b_pages[0]->valid & mask) == mask) goto unlock; if ((bp->b_pages[0]->valid & mask) == 0) { - bzero(bp->b_data, bp->b_bufsize); + pmap_zero_page_area(bp->b_pages[0], 0, bp->b_bufsize); bp->b_pages[0]->valid |= mask; goto unlock; } } - ea = sa = bp->b_data; - for(i = 0; i < bp->b_npages; i++, sa = ea) { - ea = (caddr_t)trunc_page((vm_offset_t)sa + PAGE_SIZE); - ea = (caddr_t)(vm_offset_t)ulmin( - (u_long)(vm_offset_t)ea, - (u_long)(vm_offset_t)bp->b_data + bp->b_bufsize); + sa = bp->b_offset & PAGE_MASK; + slide = 0; + for (i = 0; i < bp->b_npages; i++) { + slide = imin(slide + PAGE_SIZE, bp->b_bufsize + sa); + ea = slide & PAGE_MASK; + if (ea == 0) + ea = PAGE_SIZE; if (bp->b_pages[i] == bogus_page) continue; - j = ((vm_offset_t)sa & PAGE_MASK) / DEV_BSIZE; + j = sa / DEV_BSIZE; mask = ((1 << ((ea - sa) / DEV_BSIZE)) - 1) << j; VM_OBJECT_LOCK_ASSERT(bp->b_pages[i]->object, MA_OWNED); if ((bp->b_pages[i]->valid & mask) == mask) continue; if ((bp->b_pages[i]->valid & mask) == 0) - bzero(sa, ea - sa); + pmap_zero_page_area(bp->b_pages[i], sa, ea - sa); else { for (; sa < ea; sa += DEV_BSIZE, j++) { - if ((bp->b_pages[i]->valid & (1 << j)) == 0) - bzero(sa, DEV_BSIZE); + if ((bp->b_pages[i]->valid & (1 << j)) == 0) { + pmap_zero_page_area(bp->b_pages[i], + sa, DEV_BSIZE); + } } } bp->b_pages[i]->valid |= mask; + sa = 0; } unlock: VM_OBJECT_UNLOCK(bp->b_bufobj->bo_object); bp->b_resid = 0; } +void +vfs_bio_bzero_buf(struct buf *bp, int base, int size) +{ + vm_page_t m; + int i, n; + + if ((bp->b_flags & B_UNMAPPED) == 0) { + BUF_CHECK_MAPPED(bp); + bzero(bp->b_data + base, size); + } else { + BUF_CHECK_UNMAPPED(bp); + n = PAGE_SIZE - (base & PAGE_MASK); + VM_OBJECT_LOCK(bp->b_bufobj->bo_object); + for (i = base / PAGE_SIZE; size > 0 && i < bp->b_npages; ++i) { + m = bp->b_pages[i]; + if (n > size) + n = size; + pmap_zero_page_area(m, base & PAGE_MASK, n); + base += n; + size -= n; + n = PAGE_SIZE; + } + VM_OBJECT_UNLOCK(bp->b_bufobj->bo_object); + } +} + /* * vm_hold_load_pages and vm_hold_free_pages get pages into * a buffers address space. The pages are anonymous and are @@ -3768,6 +4182,8 @@ vm_hold_load_pages(struct buf *bp, vm_offset_t from, vm_offset_t to) vm_page_t p; int index; + BUF_CHECK_MAPPED(bp); + to = round_page(to); from = round_page(from); index = (from - trunc_page((vm_offset_t)bp->b_data)) >> PAGE_SHIFT; @@ -3799,6 +4215,8 @@ vm_hold_free_pages(struct buf *bp, int newbsize) vm_page_t p; int index, newnpages; + BUF_CHECK_MAPPED(bp); + from = round_page((vm_offset_t)bp->b_data + newbsize); newnpages = (from - trunc_page((vm_offset_t)bp->b_data)) >> PAGE_SHIFT; if (bp->b_npages > newnpages) @@ -3829,7 +4247,7 @@ vm_hold_free_pages(struct buf *bp, int newbsize) * check the return value. */ int -vmapbuf(struct buf *bp) +vmapbuf(struct buf *bp, int mapbuf) { caddr_t kva; vm_prot_t prot; @@ -3844,12 +4262,19 @@ vmapbuf(struct buf *bp) (vm_offset_t)bp->b_data, bp->b_bufsize, prot, bp->b_pages, btoc(MAXPHYS))) < 0) return (-1); - pmap_qenter((vm_offset_t)bp->b_saveaddr, bp->b_pages, pidx); - - kva = bp->b_saveaddr; bp->b_npages = pidx; - bp->b_saveaddr = bp->b_data; - bp->b_data = kva + (((vm_offset_t) bp->b_data) & PAGE_MASK); + if (mapbuf) { + pmap_qenter((vm_offset_t)bp->b_saveaddr, bp->b_pages, pidx); + kva = bp->b_saveaddr; + bp->b_saveaddr = bp->b_data; + bp->b_data = kva + (((vm_offset_t)bp->b_data) & PAGE_MASK); + bp->b_flags &= ~B_UNMAPPED; + } else { + bp->b_flags |= B_UNMAPPED; + bp->b_offset = ((vm_offset_t)bp->b_data) & PAGE_MASK; + bp->b_saveaddr = bp->b_data; + bp->b_data = unmapped_buf; + } return(0); } @@ -3863,7 +4288,10 @@ vunmapbuf(struct buf *bp) int npages; npages = bp->b_npages; - pmap_qremove(trunc_page((vm_offset_t)bp->b_data), npages); + if (bp->b_flags & B_UNMAPPED) + bp->b_flags &= ~B_UNMAPPED; + else + pmap_qremove(trunc_page((vm_offset_t)bp->b_data), npages); vm_page_unhold_pages(bp->b_pages, npages); bp->b_data = bp->b_saveaddr; @@ -4000,6 +4428,55 @@ bunpin_wait(struct buf *bp) mtx_unlock(mtxp); } +/* + * Set bio_data or bio_ma for struct bio from the struct buf. + */ +void +bdata2bio(struct buf *bp, struct bio *bip) +{ + + if ((bp->b_flags & B_UNMAPPED) != 0) { + bip->bio_ma = bp->b_pages; + bip->bio_ma_n = bp->b_npages; + bip->bio_data = unmapped_buf; + bip->bio_ma_offset = (vm_offset_t)bp->b_offset & PAGE_MASK; + bip->bio_flags |= BIO_UNMAPPED; + KASSERT(round_page(bip->bio_ma_offset + bip->bio_length) / + PAGE_SIZE == bp->b_npages, + ("Buffer %p too short: %d %d %d", bp, bip->bio_ma_offset, + bip->bio_length, bip->bio_ma_n)); + } else { + bip->bio_data = bp->b_data; + bip->bio_ma = NULL; + } +} + +void +bufallowrecurse(struct buf *bp) +{ + struct buf *tbp; + + if ((bp->b_flags & B_CLUSTER) != 0) { + TAILQ_FOREACH(tbp, &bp->b_cluster.cluster_head, + b_cluster.cluster_entry) + lockallowrecurse(&tbp->b_lock); + } + lockallowrecurse(&bp->b_lock); +} + +void +bufdisablerecurse(struct buf *bp) +{ + struct buf *tbp; + + if ((bp->b_flags & B_CLUSTER) != 0) { + TAILQ_FOREACH(tbp, &bp->b_cluster.cluster_head, + b_cluster.cluster_entry) + lockdisablerecurse(&tbp->b_lock); + } + lockdisablerecurse(&bp->b_lock); +} + #include "opt_ddb.h" #ifdef DDB #include diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c index 663b66f..60338b2 100644 --- a/sys/kern/vfs_cluster.c +++ b/sys/kern/vfs_cluster.c @@ -60,11 +60,11 @@ SYSCTL_INT(_debug, OID_AUTO, rcluster, CTLFLAG_RW, &rcluster, 0, static MALLOC_DEFINE(M_SEGMENT, "cl_savebuf", "cluster_save buffer"); -static struct cluster_save * - cluster_collectbufs(struct vnode *vp, struct buf *last_bp); -static struct buf * - cluster_rbuild(struct vnode *vp, u_quad_t filesize, daddr_t lbn, - daddr_t blkno, long size, int run, struct buf *fbp); +static struct cluster_save *cluster_collectbufs(struct vnode *vp, + struct buf *last_bp, int gbflags); +static struct buf *cluster_rbuild(struct vnode *vp, u_quad_t filesize, + daddr_t lbn, daddr_t blkno, long size, int run, int gbflags, + struct buf *fbp); static void cluster_callback(struct buf *); static int write_behind = 1; @@ -83,15 +83,9 @@ extern vm_page_t bogus_page; * cluster_read replaces bread. */ int -cluster_read(vp, filesize, lblkno, size, cred, totread, seqcount, bpp) - struct vnode *vp; - u_quad_t filesize; - daddr_t lblkno; - long size; - struct ucred *cred; - long totread; - int seqcount; - struct buf **bpp; +cluster_read(struct vnode *vp, u_quad_t filesize, daddr_t lblkno, long size, + struct ucred *cred, long totread, int seqcount, int gbflags, + struct buf **bpp) { struct buf *bp, *rbp, *reqbp; struct bufobj *bo; @@ -117,7 +111,7 @@ cluster_read(vp, filesize, lblkno, size, cred, totread, seqcount, bpp) /* * get the requested block */ - *bpp = reqbp = bp = getblk(vp, lblkno, size, 0, 0, 0); + *bpp = reqbp = bp = getblk(vp, lblkno, size, 0, 0, gbflags); origblkno = lblkno; /* @@ -208,7 +202,7 @@ cluster_read(vp, filesize, lblkno, size, cred, totread, seqcount, bpp) if (ncontig < nblks) nblks = ncontig; bp = cluster_rbuild(vp, filesize, lblkno, - blkno, size, nblks, bp); + blkno, size, nblks, gbflags, bp); lblkno += (bp->b_bufsize / size); } else { bp->b_flags |= B_RAM; @@ -252,14 +246,14 @@ cluster_read(vp, filesize, lblkno, size, cred, totread, seqcount, bpp) if (ncontig) { ncontig = min(ncontig + 1, racluster); rbp = cluster_rbuild(vp, filesize, lblkno, blkno, - size, ncontig, NULL); + size, ncontig, gbflags, NULL); lblkno += (rbp->b_bufsize / size); if (rbp->b_flags & B_DELWRI) { bqrelse(rbp); continue; } } else { - rbp = getblk(vp, lblkno, size, 0, 0, 0); + rbp = getblk(vp, lblkno, size, 0, 0, gbflags); lblkno += 1; if (rbp->b_flags & B_DELWRI) { bqrelse(rbp); @@ -298,14 +292,8 @@ cluster_read(vp, filesize, lblkno, size, cred, totread, seqcount, bpp) * and then parcel them up into logical blocks in the buffer hash table. */ static struct buf * -cluster_rbuild(vp, filesize, lbn, blkno, size, run, fbp) - struct vnode *vp; - u_quad_t filesize; - daddr_t lbn; - daddr_t blkno; - long size; - int run; - struct buf *fbp; +cluster_rbuild(struct vnode *vp, u_quad_t filesize, daddr_t lbn, + daddr_t blkno, long size, int run, int gbflags, struct buf *fbp) { struct bufobj *bo; struct buf *bp, *tbp; @@ -329,7 +317,7 @@ cluster_rbuild(vp, filesize, lbn, blkno, size, run, fbp) tbp = fbp; tbp->b_iocmd = BIO_READ; } else { - tbp = getblk(vp, lbn, size, 0, 0, 0); + tbp = getblk(vp, lbn, size, 0, 0, gbflags); if (tbp->b_flags & B_CACHE) return tbp; tbp->b_flags |= B_ASYNC | B_RAM; @@ -350,9 +338,14 @@ cluster_rbuild(vp, filesize, lbn, blkno, size, run, fbp) * address may not be either. Inherit the b_data offset * from the original buffer. */ - bp->b_data = (char *)((vm_offset_t)bp->b_data | - ((vm_offset_t)tbp->b_data & PAGE_MASK)); bp->b_flags = B_ASYNC | B_CLUSTER | B_VMIO; + if ((gbflags & GB_UNMAPPED) != 0) { + bp->b_flags |= B_UNMAPPED; + bp->b_data = unmapped_buf; + } else { + bp->b_data = (char *)((vm_offset_t)bp->b_data | + ((vm_offset_t)tbp->b_data & PAGE_MASK)); + } bp->b_iocmd = BIO_READ; bp->b_iodone = cluster_callback; bp->b_blkno = blkno; @@ -376,7 +369,8 @@ cluster_rbuild(vp, filesize, lbn, blkno, size, run, fbp) break; } - tbp = getblk(vp, lbn + i, size, 0, 0, GB_LOCK_NOWAIT); + tbp = getblk(vp, lbn + i, size, 0, 0, GB_LOCK_NOWAIT | + (gbflags & GB_UNMAPPED)); /* Don't wait around for locked bufs. */ if (tbp == NULL) @@ -499,8 +493,10 @@ cluster_rbuild(vp, filesize, lbn, blkno, size, run, fbp) bp->b_bufsize, bp->b_kvasize); bp->b_kvasize = bp->b_bufsize; - pmap_qenter(trunc_page((vm_offset_t) bp->b_data), - (vm_page_t *)bp->b_pages, bp->b_npages); + if ((bp->b_flags & B_UNMAPPED) == 0) { + pmap_qenter(trunc_page((vm_offset_t) bp->b_data), + (vm_page_t *)bp->b_pages, bp->b_npages); + } return (bp); } @@ -523,7 +519,10 @@ cluster_callback(bp) if (bp->b_ioflags & BIO_ERROR) error = bp->b_error; - pmap_qremove(trunc_page((vm_offset_t) bp->b_data), bp->b_npages); + if ((bp->b_flags & B_UNMAPPED) == 0) { + pmap_qremove(trunc_page((vm_offset_t) bp->b_data), + bp->b_npages); + } /* * Move memory from the large cluster buffer into the component * buffers and mark IO as done on these. @@ -565,18 +564,19 @@ cluster_callback(bp) */ static __inline int -cluster_wbuild_wb(struct vnode *vp, long size, daddr_t start_lbn, int len) +cluster_wbuild_wb(struct vnode *vp, long size, daddr_t start_lbn, int len, + int gbflags) { int r = 0; - switch(write_behind) { + switch (write_behind) { case 2: if (start_lbn < len) break; start_lbn -= len; /* FALLTHROUGH */ case 1: - r = cluster_wbuild(vp, size, start_lbn, len); + r = cluster_wbuild(vp, size, start_lbn, len, gbflags); /* FALLTHROUGH */ default: /* FALLTHROUGH */ @@ -596,7 +596,8 @@ cluster_wbuild_wb(struct vnode *vp, long size, daddr_t start_lbn, int len) * 4. end of a cluster - asynchronously write cluster */ void -cluster_write(struct vnode *vp, struct buf *bp, u_quad_t filesize, int seqcount) +cluster_write(struct vnode *vp, struct buf *bp, u_quad_t filesize, int seqcount, + int gbflags) { daddr_t lbn; int maxclen, cursize; @@ -642,13 +643,13 @@ cluster_write(struct vnode *vp, struct buf *bp, u_quad_t filesize, int seqcount) lbn != vp->v_lastw + 1 || vp->v_clen <= cursize) { if (!async && seqcount > 0) { cluster_wbuild_wb(vp, lblocksize, - vp->v_cstart, cursize); + vp->v_cstart, cursize, gbflags); } } else { struct buf **bpp, **endbp; struct cluster_save *buflist; - buflist = cluster_collectbufs(vp, bp); + buflist = cluster_collectbufs(vp, bp, gbflags); endbp = &buflist->bs_children [buflist->bs_nchildren - 1]; if (VOP_REALLOCBLKS(vp, buflist)) { @@ -667,7 +668,7 @@ cluster_write(struct vnode *vp, struct buf *bp, u_quad_t filesize, int seqcount) if (seqcount > 1) { cluster_wbuild_wb(vp, lblocksize, vp->v_cstart, - cursize); + cursize, gbflags); } } else { /* @@ -715,8 +716,10 @@ cluster_write(struct vnode *vp, struct buf *bp, u_quad_t filesize, int seqcount) * update daemon handle it. */ bdwrite(bp); - if (seqcount > 1) - cluster_wbuild_wb(vp, lblocksize, vp->v_cstart, vp->v_clen + 1); + if (seqcount > 1) { + cluster_wbuild_wb(vp, lblocksize, vp->v_cstart, + vp->v_clen + 1, gbflags); + } vp->v_clen = 0; vp->v_cstart = lbn + 1; } else if (vm_page_count_severe()) { @@ -742,11 +745,8 @@ cluster_write(struct vnode *vp, struct buf *bp, u_quad_t filesize, int seqcount) * the current block (if last_bp == NULL). */ int -cluster_wbuild(vp, size, start_lbn, len) - struct vnode *vp; - long size; - daddr_t start_lbn; - int len; +cluster_wbuild(struct vnode *vp, long size, daddr_t start_lbn, int len, + int gbflags) { struct buf *bp, *tbp; struct bufobj *bo; @@ -832,10 +832,16 @@ cluster_wbuild(vp, size, start_lbn, len) * address may not be either. Inherit the b_data offset * from the original buffer. */ - bp->b_data = (char *)((vm_offset_t)bp->b_data | - ((vm_offset_t)tbp->b_data & PAGE_MASK)); - bp->b_flags |= B_CLUSTER | - (tbp->b_flags & (B_VMIO | B_NEEDCOMMIT)); + if ((gbflags & GB_UNMAPPED) == 0 || + (tbp->b_flags & B_VMIO) == 0) { + bp->b_data = (char *)((vm_offset_t)bp->b_data | + ((vm_offset_t)tbp->b_data & PAGE_MASK)); + } else { + bp->b_flags |= B_UNMAPPED; + bp->b_data = unmapped_buf; + } + bp->b_flags |= B_CLUSTER | (tbp->b_flags & (B_VMIO | + B_NEEDCOMMIT)); bp->b_iodone = cluster_callback; pbgetvp(vp, bp); /* @@ -962,8 +968,10 @@ cluster_wbuild(vp, size, start_lbn, len) tbp, b_cluster.cluster_entry); } finishcluster: - pmap_qenter(trunc_page((vm_offset_t) bp->b_data), - (vm_page_t *) bp->b_pages, bp->b_npages); + if ((bp->b_flags & B_UNMAPPED) == 0) { + pmap_qenter(trunc_page((vm_offset_t) bp->b_data), + (vm_page_t *)bp->b_pages, bp->b_npages); + } if (bp->b_bufsize > bp->b_kvasize) panic( "cluster_wbuild: b_bufsize(%ld) > b_kvasize(%d)\n", @@ -984,9 +992,7 @@ cluster_wbuild(vp, size, start_lbn, len) * Plus add one additional buffer. */ static struct cluster_save * -cluster_collectbufs(vp, last_bp) - struct vnode *vp; - struct buf *last_bp; +cluster_collectbufs(struct vnode *vp, struct buf *last_bp, int gbflags) { struct cluster_save *buflist; struct buf *bp; @@ -999,7 +1005,8 @@ cluster_collectbufs(vp, last_bp) buflist->bs_nchildren = 0; buflist->bs_children = (struct buf **) (buflist + 1); for (lbn = vp->v_cstart, i = 0; i < len; lbn++, i++) { - (void) bread(vp, lbn, last_bp->b_bcount, NOCRED, &bp); + (void)bread_gb(vp, lbn, last_bp->b_bcount, NOCRED, + gbflags, &bp); buflist->bs_children[i] = bp; if (bp->b_blkno == bp->b_lblkno) VOP_BMAP(vp, bp->b_lblkno, NULL, &bp->b_blkno, diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 32c0978..6b28580 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -1121,6 +1121,45 @@ vn_io_fault_uiomove(char *data, int xfersize, struct uio *uio) return (error); } +int +vn_io_fault_pgmove(vm_page_t ma[], vm_offset_t offset, int xfersize, + struct uio *uio) +{ + struct thread *td; + vm_offset_t iov_base; + int cnt, pgadv; + + td = curthread; + if ((td->td_pflags & TDP_UIOHELD) == 0 || + uio->uio_segflg != UIO_USERSPACE) + return (uiomove_fromphys(ma, offset, xfersize, uio)); + + KASSERT(uio->uio_iovcnt == 1, ("uio_iovcnt %d", uio->uio_iovcnt)); + cnt = xfersize > uio->uio_resid ? uio->uio_resid : xfersize; + iov_base = (vm_offset_t)uio->uio_iov->iov_base; + switch (uio->uio_rw) { + case UIO_WRITE: + pmap_copy_pages(td->td_ma, iov_base & PAGE_MASK, ma, + offset, cnt); + break; + case UIO_READ: + pmap_copy_pages(ma, offset, td->td_ma, iov_base & PAGE_MASK, + cnt); + break; + } + pgadv = ((iov_base + cnt) >> PAGE_SHIFT) - (iov_base >> PAGE_SHIFT); + td->td_ma += pgadv; + KASSERT(td->td_ma_cnt >= pgadv, ("consumed pages %d %d", td->td_ma_cnt, + pgadv)); + td->td_ma_cnt -= pgadv; + uio->uio_iov->iov_base = (char *)(iov_base + cnt); + uio->uio_iov->iov_len -= cnt; + uio->uio_resid -= cnt; + uio->uio_offset += cnt; + return (0); +} + + /* * File table truncate routine. */ diff --git a/sys/mips/mips/pmap.c b/sys/mips/mips/pmap.c index 7925b8c..4fdc88d 100644 --- a/sys/mips/mips/pmap.c +++ b/sys/mips/mips/pmap.c @@ -2576,6 +2576,51 @@ pmap_copy_page(vm_page_t src, vm_page_t dst) } } +void +pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], + vm_offset_t b_offset, int xfersize) +{ + char *a_cp, *b_cp; + vm_page_t a_m, b_m; + vm_offset_t a_pg_offset, b_pg_offset; + vm_paddr_t a_phys, b_phys; + int cnt; + + while (xfersize > 0) { + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + a_m = ma[a_offset >> PAGE_SHIFT]; + a_phys = VM_PAGE_TO_PHYS(a_m); + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + b_m = mb[b_offset >> PAGE_SHIFT]; + b_phys = VM_PAGE_TO_PHYS(b_m); + if (MIPS_DIRECT_MAPPABLE(a_phys) && + MIPS_DIRECT_MAPPABLE(b_phys)) { + pmap_flush_pvcache(a_m); + mips_dcache_wbinv_range_index( + MIPS_PHYS_TO_DIRECT(b_phys), PAGE_SIZE); + a_cp = (char *)MIPS_PHYS_TO_DIRECT(a_phys) + + a_pg_offset; + b_cp = (char *)MIPS_PHYS_TO_DIRECT(b_phys) + + b_pg_offset; + bcopy(a_cp, b_cp, cnt); + mips_dcache_wbinv_range((vm_offset_t)b_cp, cnt); + } else { + a_cp = (char *)pmap_lmem_map2(a_phys, b_phys); + b_cp = (char *)a_cp + PAGE_SIZE; + a_cp += a_pg_offset; + b_cp += b_pg_offset; + bcopy(a_cp, b_cp, cnt); + mips_dcache_wbinv_range((vm_offset_t)b_cp, cnt); + pmap_lmem_unmap(); + } + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } +} + /* * Returns true if the pmap's pv is one of the first * 16 pvs linked to from this page. This count may diff --git a/sys/powerpc/aim/mmu_oea.c b/sys/powerpc/aim/mmu_oea.c index b173760..9b496ac 100644 --- a/sys/powerpc/aim/mmu_oea.c +++ b/sys/powerpc/aim/mmu_oea.c @@ -276,6 +276,8 @@ void moea_change_wiring(mmu_t, pmap_t, vm_offset_t, boolean_t); void moea_clear_modify(mmu_t, vm_page_t); void moea_clear_reference(mmu_t, vm_page_t); void moea_copy_page(mmu_t, vm_page_t, vm_page_t); +void moea_copy_pages(mmu_t mmu, vm_page_t *ma, vm_offset_t a_offset, + vm_page_t *mb, vm_offset_t b_offset, int xfersize); void moea_enter(mmu_t, pmap_t, vm_offset_t, vm_page_t, vm_prot_t, boolean_t); void moea_enter_object(mmu_t, pmap_t, vm_offset_t, vm_offset_t, vm_page_t, vm_prot_t); @@ -321,6 +323,7 @@ static mmu_method_t moea_methods[] = { MMUMETHOD(mmu_clear_modify, moea_clear_modify), MMUMETHOD(mmu_clear_reference, moea_clear_reference), MMUMETHOD(mmu_copy_page, moea_copy_page), + MMUMETHOD(mmu_copy_pages, moea_copy_pages), MMUMETHOD(mmu_enter, moea_enter), MMUMETHOD(mmu_enter_object, moea_enter_object), MMUMETHOD(mmu_enter_quick, moea_enter_quick), @@ -1044,6 +1047,30 @@ moea_copy_page(mmu_t mmu, vm_page_t msrc, vm_page_t mdst) bcopy((void *)src, (void *)dst, PAGE_SIZE); } +void +moea_copy_pages(mmu_t mmu, vm_page_t *ma, vm_offset_t a_offset, + vm_page_t *mb, vm_offset_t b_offset, int xfersize) +{ + void *a_cp, *b_cp; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + while (xfersize > 0) { + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + a_cp = (char *)VM_PAGE_TO_PHYS(ma[a_offset >> PAGE_SHIFT]) + + a_pg_offset; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + b_cp = (char *)VM_PAGE_TO_PHYS(mb[b_offset >> PAGE_SHIFT]) + + b_pg_offset; + bcopy(a_cp, b_cp, cnt); + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } +} + /* * Zero a page of physical memory by temporarily mapping it into the tlb. */ diff --git a/sys/powerpc/aim/mmu_oea64.c b/sys/powerpc/aim/mmu_oea64.c index 00dab9b..a7bacf4 100644 --- a/sys/powerpc/aim/mmu_oea64.c +++ b/sys/powerpc/aim/mmu_oea64.c @@ -291,6 +291,8 @@ void moea64_change_wiring(mmu_t, pmap_t, vm_offset_t, boolean_t); void moea64_clear_modify(mmu_t, vm_page_t); void moea64_clear_reference(mmu_t, vm_page_t); void moea64_copy_page(mmu_t, vm_page_t, vm_page_t); +void moea64_copy_pages(mmu_t mmu, vm_page_t *ma, vm_offset_t a_offset, + vm_page_t *mb, vm_offset_t b_offset, int xfersize); void moea64_enter(mmu_t, pmap_t, vm_offset_t, vm_page_t, vm_prot_t, boolean_t); void moea64_enter_object(mmu_t, pmap_t, vm_offset_t, vm_offset_t, vm_page_t, vm_prot_t); @@ -335,6 +337,7 @@ static mmu_method_t moea64_methods[] = { MMUMETHOD(mmu_clear_modify, moea64_clear_modify), MMUMETHOD(mmu_clear_reference, moea64_clear_reference), MMUMETHOD(mmu_copy_page, moea64_copy_page), + MMUMETHOD(mmu_copy_pages, moea64_copy_pages), MMUMETHOD(mmu_enter, moea64_enter), MMUMETHOD(mmu_enter_object, moea64_enter_object), MMUMETHOD(mmu_enter_quick, moea64_enter_quick), @@ -1105,6 +1108,72 @@ moea64_copy_page(mmu_t mmu, vm_page_t msrc, vm_page_t mdst) } } +static inline void +moea64_copy_pages_dmap(mmu_t mmu, vm_page_t *ma, vm_offset_t a_offset, + vm_page_t *mb, vm_offset_t b_offset, int xfersize) +{ + void *a_cp, *b_cp; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + while (xfersize > 0) { + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + a_cp = (char *)VM_PAGE_TO_PHYS(ma[a_offset >> PAGE_SHIFT]) + + a_pg_offset; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + b_cp = (char *)VM_PAGE_TO_PHYS(mb[b_offset >> PAGE_SHIFT]) + + b_pg_offset; + bcopy(a_cp, b_cp, cnt); + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } +} + +static inline void +moea64_copy_pages_nodmap(mmu_t mmu, vm_page_t *ma, vm_offset_t a_offset, + vm_page_t *mb, vm_offset_t b_offset, int xfersize) +{ + void *a_cp, *b_cp; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + mtx_lock(&moea64_scratchpage_mtx); + while (xfersize > 0) { + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + moea64_set_scratchpage_pa(mmu, 0, + VM_PAGE_TO_PHYS(ma[a_offset >> PAGE_SHIFT])); + a_cp = (char *)moea64_scratchpage_va[0] + a_pg_offset; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + moea64_set_scratchpage_pa(mmu, 1, + VM_PAGE_TO_PHYS(mb[b_offset >> PAGE_SHIFT])); + b_cp = (char *)moea64_scratchpage_va[1] + b_pg_offset; + bcopy(a_cp, b_cp, cnt); + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } + mtx_unlock(&moea64_scratchpage_mtx); +} + +void +moea64_copy_pages(mmu_t mmu, vm_page_t *ma, vm_offset_t a_offset, + vm_page_t *mb, vm_offset_t b_offset, int xfersize) +{ + + if (hw_direct_map) { + moea64_copy_pages_dmap(mmu, ma, a_offset, mb, b_offset, + xfersize); + } else { + moea64_copy_pages_nodmap(mmu, ma, a_offset, mb, b_offset, + xfersize); + } +} + void moea64_zero_page_area(mmu_t mmu, vm_page_t m, int off, int size) { diff --git a/sys/powerpc/booke/pmap.c b/sys/powerpc/booke/pmap.c index f6e5f9c..233e1e0 100644 --- a/sys/powerpc/booke/pmap.c +++ b/sys/powerpc/booke/pmap.c @@ -275,6 +275,8 @@ static void mmu_booke_clear_reference(mmu_t, vm_page_t); static void mmu_booke_copy(mmu_t, pmap_t, pmap_t, vm_offset_t, vm_size_t, vm_offset_t); static void mmu_booke_copy_page(mmu_t, vm_page_t, vm_page_t); +static void mmu_booke_copy_pages(mmu_t, vm_page_t *, + vm_offset_t, vm_page_t *, vm_offset_t, int); static void mmu_booke_enter(mmu_t, pmap_t, vm_offset_t, vm_page_t, vm_prot_t, boolean_t); static void mmu_booke_enter_object(mmu_t, pmap_t, vm_offset_t, vm_offset_t, @@ -335,6 +337,7 @@ static mmu_method_t mmu_booke_methods[] = { MMUMETHOD(mmu_clear_reference, mmu_booke_clear_reference), MMUMETHOD(mmu_copy, mmu_booke_copy), MMUMETHOD(mmu_copy_page, mmu_booke_copy_page), + MMUMETHOD(mmu_copy_pages, mmu_booke_copy_pages), MMUMETHOD(mmu_enter, mmu_booke_enter), MMUMETHOD(mmu_enter_object, mmu_booke_enter_object), MMUMETHOD(mmu_enter_quick, mmu_booke_enter_quick), @@ -2138,6 +2141,36 @@ mmu_booke_copy_page(mmu_t mmu, vm_page_t sm, vm_page_t dm) mtx_unlock(©_page_mutex); } +static inline void +mmu_booke_copy_pages(mmu_t mmu, vm_page_t *ma, vm_offset_t a_offset, + vm_page_t *mb, vm_offset_t b_offset, int xfersize) +{ + void *a_cp, *b_cp; + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + mtx_lock(©_page_mutex); + while (xfersize > 0) { + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + mmu_booke_kenter(mmu, copy_page_src_va, + VM_PAGE_TO_PHYS(ma[a_offset >> PAGE_SHIFT])); + a_cp = (char *)copy_page_src_va + a_pg_offset; + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + mmu_booke_kenter(mmu, copy_page_dst_va, + VM_PAGE_TO_PHYS(mb[b_offset >> PAGE_SHIFT])); + b_cp = (char *)copy_page_dst_va + b_pg_offset; + bcopy(a_cp, b_cp, cnt); + mmu_booke_kremove(mmu, copy_page_dst_va); + mmu_booke_kremove(mmu, copy_page_src_va); + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } + mtx_unlock(©_page_mutex); +} + /* * mmu_booke_zero_page_idle zeros the specified hardware page by mapping it * into virtual memory and using bzero to clear its contents. This is intended diff --git a/sys/powerpc/powerpc/mmu_if.m b/sys/powerpc/powerpc/mmu_if.m index 8cd6e52..0382bd8 100644 --- a/sys/powerpc/powerpc/mmu_if.m +++ b/sys/powerpc/powerpc/mmu_if.m @@ -215,6 +215,14 @@ METHOD void copy_page { vm_page_t _dst; }; +METHOD void copy_pages { + mmu_t _mmu; + vm_page_t *_ma; + vm_offset_t _a_offset; + vm_page_t *_mb; + vm_offset_t _b_offset; + int _xfersize; +}; /** * @brief Create a mapping between a virtual/physical address pair in the diff --git a/sys/powerpc/powerpc/pmap_dispatch.c b/sys/powerpc/powerpc/pmap_dispatch.c index c919196..42f1a39 100644 --- a/sys/powerpc/powerpc/pmap_dispatch.c +++ b/sys/powerpc/powerpc/pmap_dispatch.c @@ -133,6 +133,16 @@ pmap_copy_page(vm_page_t src, vm_page_t dst) } void +pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], + vm_offset_t b_offset, int xfersize) +{ + + CTR6(KTR_PMAP, "%s(%p, %#x, %p, %#x, %#x)", __func__, ma, + a_offset, mb, b_offset, xfersize); + MMU_COPY_PAGES(mmu_obj, ma, a_offset, mb, b_offset, xfersize); +} + +void pmap_enter(pmap_t pmap, vm_offset_t va, vm_prot_t access, vm_page_t p, vm_prot_t prot, boolean_t wired) { diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c index 08f008c..27947dd 100644 --- a/sys/sparc64/sparc64/pmap.c +++ b/sys/sparc64/sparc64/pmap.c @@ -1835,8 +1835,9 @@ pmap_zero_page_idle(vm_page_t m) } } -void -pmap_copy_page(vm_page_t msrc, vm_page_t mdst) +static void +pmap_copy_page_offs(vm_page_t msrc, int src_off, vm_page_t mdst, int dst_off, + int cnt) { vm_offset_t vdst; vm_offset_t vsrc; @@ -1857,16 +1858,17 @@ pmap_copy_page(vm_page_t msrc, vm_page_t mdst) PMAP_STATS_INC(pmap_ncopy_page_c); vdst = TLB_PHYS_TO_DIRECT(pdst); vsrc = TLB_PHYS_TO_DIRECT(psrc); - cpu_block_copy((void *)vsrc, (void *)vdst, PAGE_SIZE); + cpu_block_copy((char *)vsrc + src_off, (char *)vdst + dst_off, + cnt); } else if (msrc->md.color == -1 && mdst->md.color == -1) { PMAP_STATS_INC(pmap_ncopy_page_nc); - ascopy(ASI_PHYS_USE_EC, psrc, pdst, PAGE_SIZE); + ascopy(ASI_PHYS_USE_EC, psrc + src_off, pdst + dst_off, cnt); } else if (msrc->md.color == -1) { if (mdst->md.color == DCACHE_COLOR(pdst)) { PMAP_STATS_INC(pmap_ncopy_page_dc); vdst = TLB_PHYS_TO_DIRECT(pdst); - ascopyfrom(ASI_PHYS_USE_EC, psrc, (void *)vdst, - PAGE_SIZE); + ascopyfrom(ASI_PHYS_USE_EC, psrc + src_off, + (char *)vdst + dst_off, cnt); } else { PMAP_STATS_INC(pmap_ncopy_page_doc); PMAP_LOCK(kernel_pmap); @@ -1875,8 +1877,8 @@ pmap_copy_page(vm_page_t msrc, vm_page_t mdst) tp->tte_data = TD_V | TD_8K | TD_PA(pdst) | TD_CP | TD_CV | TD_W; tp->tte_vpn = TV_VPN(vdst, TS_8K); - ascopyfrom(ASI_PHYS_USE_EC, psrc, (void *)vdst, - PAGE_SIZE); + ascopyfrom(ASI_PHYS_USE_EC, psrc + src_off, + (char *)vdst + dst_off, cnt); tlb_page_demap(kernel_pmap, vdst); PMAP_UNLOCK(kernel_pmap); } @@ -1884,8 +1886,8 @@ pmap_copy_page(vm_page_t msrc, vm_page_t mdst) if (msrc->md.color == DCACHE_COLOR(psrc)) { PMAP_STATS_INC(pmap_ncopy_page_sc); vsrc = TLB_PHYS_TO_DIRECT(psrc); - ascopyto((void *)vsrc, ASI_PHYS_USE_EC, pdst, - PAGE_SIZE); + ascopyto((char *)vsrc + src_off, ASI_PHYS_USE_EC, + pdst + dst_off, cnt); } else { PMAP_STATS_INC(pmap_ncopy_page_soc); PMAP_LOCK(kernel_pmap); @@ -1894,8 +1896,8 @@ pmap_copy_page(vm_page_t msrc, vm_page_t mdst) tp->tte_data = TD_V | TD_8K | TD_PA(psrc) | TD_CP | TD_CV | TD_W; tp->tte_vpn = TV_VPN(vsrc, TS_8K); - ascopyto((void *)vsrc, ASI_PHYS_USE_EC, pdst, - PAGE_SIZE); + ascopyto((char *)vsrc + src_off, ASI_PHYS_USE_EC, + pdst + dst_off, cnt); tlb_page_demap(kernel_pmap, vsrc); PMAP_UNLOCK(kernel_pmap); } @@ -1912,13 +1914,41 @@ pmap_copy_page(vm_page_t msrc, vm_page_t mdst) tp->tte_data = TD_V | TD_8K | TD_PA(psrc) | TD_CP | TD_CV | TD_W; tp->tte_vpn = TV_VPN(vsrc, TS_8K); - cpu_block_copy((void *)vsrc, (void *)vdst, PAGE_SIZE); + cpu_block_copy((char *)vsrc + src_off, (char *)vdst + dst_off, + cnt); tlb_page_demap(kernel_pmap, vdst); tlb_page_demap(kernel_pmap, vsrc); PMAP_UNLOCK(kernel_pmap); } } +void +pmap_copy_page(vm_page_t msrc, vm_page_t mdst) +{ + + pmap_copy_page_offs(msrc, 0, mdst, 0, PAGE_SIZE); +} + +void +pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[], + vm_offset_t b_offset, int xfersize) +{ + vm_offset_t a_pg_offset, b_pg_offset; + int cnt; + + while (xfersize > 0) { + a_pg_offset = a_offset & PAGE_MASK; + cnt = min(xfersize, PAGE_SIZE - a_pg_offset); + b_pg_offset = b_offset & PAGE_MASK; + cnt = min(cnt, PAGE_SIZE - b_pg_offset); + pmap_copy_page_offs(ma[a_offset >> PAGE_SHIFT], a_pg_offset, + mb[b_offset >> PAGE_SHIFT], b_pg_offset, cnt); + a_offset += cnt; + b_offset += cnt; + xfersize -= cnt; + } +} + /* * Returns true if the pmap's pv is one of the first * 16 pvs linked to from this page. This count may diff --git a/sys/sys/bio.h b/sys/sys/bio.h index c016ee6..7678f5a 100644 --- a/sys/sys/bio.h +++ b/sys/sys/bio.h @@ -55,10 +55,13 @@ #define BIO_DONE 0x02 #define BIO_ONQUEUE 0x04 #define BIO_ORDERED 0x08 +#define BIO_UNMAPPED 0x10 +#define BIO_TRANSIENT_MAPPING 0x20 #ifdef _KERNEL struct disk; struct bio; +struct vm_map; /* Empty classifier tag, to prevent further classification. */ #define BIO_NOTCLASSIFIED (void *)(~0UL) @@ -78,6 +81,9 @@ struct bio { off_t bio_offset; /* Offset into file. */ long bio_bcount; /* Valid bytes in buffer. */ caddr_t bio_data; /* Memory, superblocks, indirect etc. */ + struct vm_page **bio_ma; /* Or unmapped. */ + int bio_ma_offset; /* Offset in the first page of bio_ma. */ + int bio_ma_n; /* Number of pages in bio_ma. */ int bio_error; /* Errno for BIO_ERROR. */ long bio_resid; /* Remaining I/O in bytes. */ void (*bio_done)(struct bio *); @@ -121,6 +127,9 @@ struct bio_queue_head { struct bio *insert_point; }; +extern struct vm_map *bio_transient_map; +extern int bio_transient_maxcnt; + void biodone(struct bio *bp); void biofinish(struct bio *bp, struct devstat *stat, int error); int biowait(struct bio *bp, const char *wchan); diff --git a/sys/sys/buf.h b/sys/sys/buf.h index 672ef5a..6954bb0 100644 --- a/sys/sys/buf.h +++ b/sys/sys/buf.h @@ -117,6 +117,7 @@ struct buf { long b_bufsize; /* Allocated buffer size. */ long b_runningbufspace; /* when I/O is running, pipelining */ caddr_t b_kvabase; /* base kva for buffer */ + caddr_t b_kvaalloc; /* allocated kva for B_KVAALLOC */ int b_kvasize; /* size of kva for buffer */ daddr_t b_lblkno; /* Logical block number. */ struct vnode *b_vp; /* Device vnode. */ @@ -202,8 +203,8 @@ struct buf { #define B_PERSISTENT 0x00000100 /* Perm. ref'ed while EXT2FS mounted. */ #define B_DONE 0x00000200 /* I/O completed. */ #define B_EINTR 0x00000400 /* I/O was interrupted */ -#define B_00000800 0x00000800 /* Available flag. */ -#define B_00001000 0x00001000 /* Available flag. */ +#define B_UNMAPPED 0x00000800 /* KVA is not mapped. */ +#define B_KVAALLOC 0x00001000 /* But allocated. */ #define B_INVAL 0x00002000 /* Does not contain valid info. */ #define B_BARRIER 0x00004000 /* Write this and all preceeding first. */ #define B_NOCACHE 0x00008000 /* Do not cache block after use. */ @@ -453,7 +454,9 @@ buf_countdeps(struct buf *bp, int i) */ #define GB_LOCK_NOWAIT 0x0001 /* Fail if we block on a buf lock. */ #define GB_NOCREAT 0x0002 /* Don't create a buf if not found. */ -#define GB_NOWAIT_BD 0x0004 /* Do not wait for bufdaemon */ +#define GB_NOWAIT_BD 0x0004 /* Do not wait for bufdaemon. */ +#define GB_UNMAPPED 0x0008 /* Do not mmap buffer pages. */ +#define GB_KVAALLOC 0x0010 /* But allocate KVA. */ #ifdef _KERNEL extern int nbuf; /* The number of buffer headers */ @@ -470,17 +473,22 @@ extern struct buf *swbuf; /* Swap I/O buffer headers. */ extern int nswbuf; /* Number of swap I/O buffer headers. */ extern int cluster_pbuf_freecnt; /* Number of pbufs for clusters */ extern int vnode_pbuf_freecnt; /* Number of pbufs for vnode pager */ +extern caddr_t unmapped_buf; void runningbufwakeup(struct buf *); void waitrunningbufspace(void); caddr_t kern_vfs_bio_buffer_alloc(caddr_t v, long physmem_est); void bufinit(void); +void bdata2bio(struct buf *bp, struct bio *bip); void bwillwrite(void); int buf_dirty_count_severe(void); void bremfree(struct buf *); void bremfreef(struct buf *); /* XXX Force bremfree, only for nfs. */ #define bread(vp, blkno, size, cred, bpp) \ - breadn_flags(vp, blkno, size, 0, 0, 0, cred, 0, bpp) + breadn_flags(vp, blkno, size, NULL, NULL, 0, cred, 0, bpp) +#define bread_gb(vp, blkno, size, cred, gbflags, bpp) \ + breadn_flags(vp, blkno, size, NULL, NULL, 0, cred, \ + gbflags, bpp) #define breadn(vp, blkno, size, rablkno, rabsize, cnt, cred, bpp) \ breadn_flags(vp, blkno, size, rablkno, rabsize, cnt, cred, 0, bpp) int breadn_flags(struct vnode *, daddr_t, int, daddr_t *, int *, int, @@ -508,14 +516,15 @@ void bufdone_finish(struct buf *); void bd_speedup(void); int cluster_read(struct vnode *, u_quad_t, daddr_t, long, - struct ucred *, long, int, struct buf **); -int cluster_wbuild(struct vnode *, long, daddr_t, int); -void cluster_write(struct vnode *, struct buf *, u_quad_t, int); + struct ucred *, long, int, int, struct buf **); +int cluster_wbuild(struct vnode *, long, daddr_t, int, int); +void cluster_write(struct vnode *, struct buf *, u_quad_t, int, int); +void vfs_bio_bzero_buf(struct buf *bp, int base, int size); void vfs_bio_set_valid(struct buf *, int base, int size); void vfs_bio_clrbuf(struct buf *); void vfs_busy_pages(struct buf *, int clear_modify); void vfs_unbusy_pages(struct buf *); -int vmapbuf(struct buf *); +int vmapbuf(struct buf *, int); void vunmapbuf(struct buf *); void relpbuf(struct buf *, int *); void brelvp(struct buf *); @@ -533,6 +542,9 @@ void bpin(struct buf *); void bunpin(struct buf *); void bunpin_wait(struct buf *); +void bufallowrecurse(struct buf *); +void bufdisablerecurse(struct buf *); + #endif /* _KERNEL */ #endif /* !_SYS_BUF_H_ */ diff --git a/sys/sys/mount.h b/sys/sys/mount.h index bbbc569..f8e7662 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -351,6 +351,7 @@ void __mnt_vnode_markerfree_active(struct vnode **mvp, struct mount *); #define MNTK_VGONE_WAITER 0x00000400 #define MNTK_LOOKUP_EXCL_DOTDOT 0x00000800 #define MNTK_MARKER 0x00001000 +#define MNTK_UNMAPPED_BUFS 0x00002000 #define MNTK_NOASYNC 0x00800000 /* disable async */ #define MNTK_UNMOUNT 0x01000000 /* unmount in progress */ #define MNTK_MWAIT 0x02000000 /* waiting for unmount to finish */ diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index b54dc04..e6a41a4 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -692,6 +692,8 @@ int vn_vget_ino(struct vnode *vp, ino_t ino, int lkflags, struct vnode **rvp); int vn_io_fault_uiomove(char *data, int xfersize, struct uio *uio); +int vn_io_fault_pgmove(vm_page_t ma[], vm_offset_t offset, int xfersize, + struct uio *uio); #define vn_rangelock_unlock(vp, cookie) \ rangelock_unlock(&(vp)->v_rl, (cookie), VI_MTX(vp)) diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c index abe4073..0bdbbae 100644 --- a/sys/ufs/ffs/ffs_alloc.c +++ b/sys/ufs/ffs/ffs_alloc.c @@ -254,7 +254,7 @@ ffs_realloccg(ip, lbprev, bprev, bpref, osize, nsize, flags, cred, bpp) struct buf *bp; struct ufsmount *ump; u_int cg, request, reclaimed; - int error; + int error, gbflags; ufs2_daddr_t bno; static struct timeval lastfail; static int curfail; @@ -265,6 +265,8 @@ ffs_realloccg(ip, lbprev, bprev, bpref, osize, nsize, flags, cred, bpp) fs = ip->i_fs; bp = NULL; ump = ip->i_ump; + gbflags = (flags & BA_UNMAPPED) != 0 ? GB_UNMAPPED : 0; + mtx_assert(UFS_MTX(ump), MA_OWNED); #ifdef INVARIANTS if (vp->v_mount->mnt_kern_flag & MNTK_SUSPENDED) @@ -296,7 +298,7 @@ retry: /* * Allocate the extra space in the buffer. */ - error = bread(vp, lbprev, osize, NOCRED, &bp); + error = bread_gb(vp, lbprev, osize, NOCRED, gbflags, &bp); if (error) { brelse(bp); return (error); @@ -332,7 +334,7 @@ retry: ip->i_flag |= IN_CHANGE | IN_UPDATE; allocbuf(bp, nsize); bp->b_flags |= B_DONE; - bzero(bp->b_data + osize, nsize - osize); + vfs_bio_bzero_buf(bp, osize, nsize - osize); if ((bp->b_flags & (B_MALLOC | B_VMIO)) == B_VMIO) vfs_bio_set_valid(bp, osize, nsize - osize); *bpp = bp; @@ -400,7 +402,7 @@ retry: ip->i_flag |= IN_CHANGE | IN_UPDATE; allocbuf(bp, nsize); bp->b_flags |= B_DONE; - bzero(bp->b_data + osize, nsize - osize); + vfs_bio_bzero_buf(bp, osize, nsize - osize); if ((bp->b_flags & (B_MALLOC | B_VMIO)) == B_VMIO) vfs_bio_set_valid(bp, osize, nsize - osize); *bpp = bp; diff --git a/sys/ufs/ffs/ffs_balloc.c b/sys/ufs/ffs/ffs_balloc.c index 0e29be87f..d20df77 100644 --- a/sys/ufs/ffs/ffs_balloc.c +++ b/sys/ufs/ffs/ffs_balloc.c @@ -107,7 +107,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size, int saved_inbdflush; static struct timeval lastfail; static int curfail; - int reclaimed; + int gbflags, reclaimed; ip = VTOI(vp); dp = ip->i_din1; @@ -123,6 +123,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size, return (EOPNOTSUPP); if (lbn < 0) return (EFBIG); + gbflags = (flags & BA_UNMAPPED) != 0 ? GB_UNMAPPED : 0; if (DOINGSOFTDEP(vp)) softdep_prealloc(vp, MNT_WAIT); @@ -211,7 +212,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size, nsize, flags, cred, &newb); if (error) return (error); - bp = getblk(vp, lbn, nsize, 0, 0, 0); + bp = getblk(vp, lbn, nsize, 0, 0, gbflags); bp->b_blkno = fsbtodb(fs, newb); if (flags & BA_CLRBUF) vfs_bio_clrbuf(bp); @@ -255,7 +256,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size, nb = newb; *allocblk++ = nb; *lbns_remfree++ = indirs[1].in_lbn; - bp = getblk(vp, indirs[1].in_lbn, fs->fs_bsize, 0, 0, 0); + bp = getblk(vp, indirs[1].in_lbn, fs->fs_bsize, 0, 0, gbflags); bp->b_blkno = fsbtodb(fs, nb); vfs_bio_clrbuf(bp); if (DOINGSOFTDEP(vp)) { @@ -389,7 +390,7 @@ retry: nb = newb; *allocblk++ = nb; *lbns_remfree++ = lbn; - nbp = getblk(vp, lbn, fs->fs_bsize, 0, 0, 0); + nbp = getblk(vp, lbn, fs->fs_bsize, 0, 0, gbflags); nbp->b_blkno = fsbtodb(fs, nb); if (flags & BA_CLRBUF) vfs_bio_clrbuf(nbp); @@ -418,16 +419,17 @@ retry: if (seqcount && (vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) { error = cluster_read(vp, ip->i_size, lbn, (int)fs->fs_bsize, NOCRED, - MAXBSIZE, seqcount, &nbp); + MAXBSIZE, seqcount, gbflags, &nbp); } else { - error = bread(vp, lbn, (int)fs->fs_bsize, NOCRED, &nbp); + error = bread_gb(vp, lbn, (int)fs->fs_bsize, NOCRED, + gbflags, &nbp); } if (error) { brelse(nbp); goto fail; } } else { - nbp = getblk(vp, lbn, fs->fs_bsize, 0, 0, 0); + nbp = getblk(vp, lbn, fs->fs_bsize, 0, 0, gbflags); nbp->b_blkno = fsbtodb(fs, nb); } curthread_pflags_restore(saved_inbdflush); @@ -539,7 +541,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, int saved_inbdflush; static struct timeval lastfail; static int curfail; - int reclaimed; + int gbflags, reclaimed; ip = VTOI(vp); dp = ip->i_din2; @@ -553,6 +555,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, *bpp = NULL; if (lbn < 0) return (EFBIG); + gbflags = (flags & BA_UNMAPPED) != 0 ? GB_UNMAPPED : 0; if (DOINGSOFTDEP(vp)) softdep_prealloc(vp, MNT_WAIT); @@ -603,7 +606,8 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, panic("ffs_balloc_ufs2: BA_METAONLY for ext block"); nb = dp->di_extb[lbn]; if (nb != 0 && dp->di_extsize >= smalllblktosize(fs, lbn + 1)) { - error = bread(vp, -1 - lbn, fs->fs_bsize, NOCRED, &bp); + error = bread_gb(vp, -1 - lbn, fs->fs_bsize, NOCRED, + gbflags, &bp); if (error) { brelse(bp); return (error); @@ -620,7 +624,8 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, osize = fragroundup(fs, blkoff(fs, dp->di_extsize)); nsize = fragroundup(fs, size); if (nsize <= osize) { - error = bread(vp, -1 - lbn, osize, NOCRED, &bp); + error = bread_gb(vp, -1 - lbn, osize, NOCRED, + gbflags, &bp); if (error) { brelse(bp); return (error); @@ -653,7 +658,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, nsize, flags, cred, &newb); if (error) return (error); - bp = getblk(vp, -1 - lbn, nsize, 0, 0, 0); + bp = getblk(vp, -1 - lbn, nsize, 0, 0, gbflags); bp->b_blkno = fsbtodb(fs, newb); bp->b_xflags |= BX_ALTDATA; if (flags & BA_CLRBUF) @@ -679,9 +684,9 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, if (osize < fs->fs_bsize && osize > 0) { UFS_LOCK(ump); error = ffs_realloccg(ip, nb, dp->di_db[nb], - ffs_blkpref_ufs2(ip, lastlbn, (int)nb, - &dp->di_db[0]), osize, (int)fs->fs_bsize, - flags, cred, &bp); + ffs_blkpref_ufs2(ip, lastlbn, (int)nb, + &dp->di_db[0]), osize, (int)fs->fs_bsize, + flags, cred, &bp); if (error) return (error); if (DOINGSOFTDEP(vp)) @@ -707,7 +712,8 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, panic("ffs_balloc_ufs2: BA_METAONLY for direct block"); nb = dp->di_db[lbn]; if (nb != 0 && ip->i_size >= smalllblktosize(fs, lbn + 1)) { - error = bread(vp, lbn, fs->fs_bsize, NOCRED, &bp); + error = bread_gb(vp, lbn, fs->fs_bsize, NOCRED, + gbflags, &bp); if (error) { brelse(bp); return (error); @@ -723,7 +729,8 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, osize = fragroundup(fs, blkoff(fs, ip->i_size)); nsize = fragroundup(fs, size); if (nsize <= osize) { - error = bread(vp, lbn, osize, NOCRED, &bp); + error = bread_gb(vp, lbn, osize, NOCRED, + gbflags, &bp); if (error) { brelse(bp); return (error); @@ -733,7 +740,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, UFS_LOCK(ump); error = ffs_realloccg(ip, lbn, dp->di_db[lbn], ffs_blkpref_ufs2(ip, lbn, (int)lbn, - &dp->di_db[0]), osize, nsize, flags, + &dp->di_db[0]), osize, nsize, flags, cred, &bp); if (error) return (error); @@ -753,7 +760,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, &dp->di_db[0]), nsize, flags, cred, &newb); if (error) return (error); - bp = getblk(vp, lbn, nsize, 0, 0, 0); + bp = getblk(vp, lbn, nsize, 0, 0, gbflags); bp->b_blkno = fsbtodb(fs, newb); if (flags & BA_CLRBUF) vfs_bio_clrbuf(bp); @@ -797,7 +804,8 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size, nb = newb; *allocblk++ = nb; *lbns_remfree++ = indirs[1].in_lbn; - bp = getblk(vp, indirs[1].in_lbn, fs->fs_bsize, 0, 0, 0); + bp = getblk(vp, indirs[1].in_lbn, fs->fs_bsize, 0, 0, + GB_UNMAPPED); bp->b_blkno = fsbtodb(fs, nb); vfs_bio_clrbuf(bp); if (DOINGSOFTDEP(vp)) { @@ -862,7 +870,8 @@ retry: nb = newb; *allocblk++ = nb; *lbns_remfree++ = indirs[i].in_lbn; - nbp = getblk(vp, indirs[i].in_lbn, fs->fs_bsize, 0, 0, 0); + nbp = getblk(vp, indirs[i].in_lbn, fs->fs_bsize, 0, 0, + GB_UNMAPPED); nbp->b_blkno = fsbtodb(fs, nb); vfs_bio_clrbuf(nbp); if (DOINGSOFTDEP(vp)) { @@ -931,7 +940,7 @@ retry: nb = newb; *allocblk++ = nb; *lbns_remfree++ = lbn; - nbp = getblk(vp, lbn, fs->fs_bsize, 0, 0, 0); + nbp = getblk(vp, lbn, fs->fs_bsize, 0, 0, gbflags); nbp->b_blkno = fsbtodb(fs, nb); if (flags & BA_CLRBUF) vfs_bio_clrbuf(nbp); @@ -966,16 +975,17 @@ retry: if (seqcount && (vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) { error = cluster_read(vp, ip->i_size, lbn, (int)fs->fs_bsize, NOCRED, - MAXBSIZE, seqcount, &nbp); + MAXBSIZE, seqcount, gbflags, &nbp); } else { - error = bread(vp, lbn, (int)fs->fs_bsize, NOCRED, &nbp); + error = bread_gb(vp, lbn, (int)fs->fs_bsize, + NOCRED, gbflags, &nbp); } if (error) { brelse(nbp); goto fail; } } else { - nbp = getblk(vp, lbn, fs->fs_bsize, 0, 0, 0); + nbp = getblk(vp, lbn, fs->fs_bsize, 0, 0, gbflags); nbp->b_blkno = fsbtodb(fs, nb); } curthread_pflags_restore(saved_inbdflush); diff --git a/sys/ufs/ffs/ffs_rawread.c b/sys/ufs/ffs/ffs_rawread.c index f8e3e00..45cb730 100644 --- a/sys/ufs/ffs/ffs_rawread.c +++ b/sys/ufs/ffs/ffs_rawread.c @@ -240,7 +240,7 @@ ffs_rawread_readahead(struct vnode *vp, bp->b_bcount = bsize - blockoff * DEV_BSIZE; bp->b_bufsize = bp->b_bcount; - if (vmapbuf(bp) < 0) + if (vmapbuf(bp, 1) < 0) return EFAULT; maybe_yield(); @@ -259,7 +259,7 @@ ffs_rawread_readahead(struct vnode *vp, bp->b_bcount = bsize * (1 + bforwards) - blockoff * DEV_BSIZE; bp->b_bufsize = bp->b_bcount; - if (vmapbuf(bp) < 0) + if (vmapbuf(bp, 1) < 0) return EFAULT; BO_STRATEGY(&dp->v_bufobj, bp); diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 0204613..f6ae04c 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -1076,7 +1076,7 @@ ffs_mountfs(devvp, mp, td) */ MNT_ILOCK(mp); mp->mnt_kern_flag |= MNTK_LOOKUP_SHARED | MNTK_EXTENDED_SHARED | - MNTK_NO_IOPF; + MNTK_NO_IOPF | MNTK_UNMAPPED_BUFS; MNT_IUNLOCK(mp); #ifdef UFS_EXTATTR #ifdef UFS_EXTATTR_AUTOSTART @@ -2091,6 +2091,7 @@ ffs_bufwrite(struct buf *bp) * set b_lblkno and BKGRDMARKER before calling bgetvp() * to avoid confusing the splay tree and gbincore(). */ + KASSERT((bp->b_flags & B_UNMAPPED) == 0, ("Unmapped cg")); memcpy(newbp->b_data, bp->b_data, bp->b_bufsize); newbp->b_lblkno = bp->b_lblkno; newbp->b_xflags |= BX_BKGRDMARKER; @@ -2157,6 +2158,7 @@ ffs_geom_strategy(struct bufobj *bo, struct buf *bp) bp->b_flags &= ~(B_VALIDSUSPWRT | B_NOCOPY); if ((vp->v_vflag & VV_COPYONWRITE) && nocopy == 0 && vp->v_rdev->si_snapdata != NULL) { + bufallowrecurse(bp); if ((bp->b_flags & B_CLUSTER) != 0) { runningbufwakeup(bp); TAILQ_FOREACH(tbp, &bp->b_cluster.cluster_head, @@ -2164,6 +2166,7 @@ ffs_geom_strategy(struct bufobj *bo, struct buf *bp) error = ffs_copyonwrite(vp, tbp); if (error != 0 && error != EOPNOTSUPP) { + bufdisablerecurse(bp); bp->b_error = error; bp->b_ioflags |= BIO_ERROR; bufdone(bp); @@ -2176,12 +2179,14 @@ ffs_geom_strategy(struct bufobj *bo, struct buf *bp) } else { error = ffs_copyonwrite(vp, bp); if (error != 0 && error != EOPNOTSUPP) { + bufdisablerecurse(bp); bp->b_error = error; bp->b_ioflags |= BIO_ERROR; bufdone(bp); return; } } + bufdisablerecurse(bp); } #ifdef SOFTUPDATES if ((bp->b_flags & B_CLUSTER) != 0) { diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index 5c99d5b..ef6194c 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -508,7 +508,8 @@ ffs_read(ap) /* * Don't do readahead if this is the end of the file. */ - error = bread(vp, lbn, size, NOCRED, &bp); + error = bread_gb(vp, lbn, size, NOCRED, + GB_UNMAPPED, &bp); } else if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0) { /* * Otherwise if we are allowed to cluster, @@ -518,7 +519,8 @@ ffs_read(ap) * doing sequential access. */ error = cluster_read(vp, ip->i_size, lbn, - size, NOCRED, blkoffset + uio->uio_resid, seqcount, &bp); + size, NOCRED, blkoffset + uio->uio_resid, + seqcount, GB_UNMAPPED, &bp); } else if (seqcount > 1) { /* * If we are NOT allowed to cluster, then @@ -529,15 +531,16 @@ ffs_read(ap) * the 6th argument. */ int nextsize = blksize(fs, ip, nextlbn); - error = breadn(vp, lbn, - size, &nextlbn, &nextsize, 1, NOCRED, &bp); + error = breadn_flags(vp, lbn, size, &nextlbn, + &nextsize, 1, NOCRED, GB_UNMAPPED, &bp); } else { /* * Failing all of the above, just read what the * user asked for. Interestingly, the same as * the first option above. */ - error = bread(vp, lbn, size, NOCRED, &bp); + error = bread_gb(vp, lbn, size, NOCRED, + GB_UNMAPPED, &bp); } if (error) { brelse(bp); @@ -568,8 +571,13 @@ ffs_read(ap) xfersize = size; } - error = vn_io_fault_uiomove((char *)bp->b_data + blkoffset, - (int)xfersize, uio); + if ((bp->b_flags & B_UNMAPPED) == 0) { + error = vn_io_fault_uiomove((char *)bp->b_data + + blkoffset, (int)xfersize, uio); + } else { + error = vn_io_fault_pgmove(bp->b_pages, blkoffset, + (int)xfersize, uio); + } if (error) break; @@ -700,6 +708,7 @@ ffs_write(ap) flags = seqcount << BA_SEQSHIFT; if ((ioflag & IO_SYNC) && !DOINGASYNC(vp)) flags |= IO_SYNC; + flags |= BA_UNMAPPED; for (error = 0; uio->uio_resid > 0;) { lbn = lblkno(fs, uio->uio_offset); @@ -739,8 +748,13 @@ ffs_write(ap) if (size < xfersize) xfersize = size; - error = vn_io_fault_uiomove((char *)bp->b_data + blkoffset, - (int)xfersize, uio); + if ((bp->b_flags & B_UNMAPPED) == 0) { + error = vn_io_fault_uiomove((char *)bp->b_data + + blkoffset, (int)xfersize, uio); + } else { + error = vn_io_fault_pgmove(bp->b_pages, blkoffset, + (int)xfersize, uio); + } /* * If the buffer is not already filled and we encounter an * error while trying to fill it, we have to clear out any @@ -783,7 +797,8 @@ ffs_write(ap) } else if (xfersize + blkoffset == fs->fs_bsize) { if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERW) == 0) { bp->b_flags |= B_CLUSTEROK; - cluster_write(vp, bp, ip->i_size, seqcount); + cluster_write(vp, bp, ip->i_size, seqcount, + GB_UNMAPPED); } else { bawrite(bp); } diff --git a/sys/ufs/ufs/ufs_extern.h b/sys/ufs/ufs/ufs_extern.h index c590748..31a2ba8 100644 --- a/sys/ufs/ufs/ufs_extern.h +++ b/sys/ufs/ufs/ufs_extern.h @@ -121,6 +121,7 @@ void softdep_revert_rmdir(struct inode *, struct inode *); */ #define BA_CLRBUF 0x00010000 /* Clear invalid areas of buffer. */ #define BA_METAONLY 0x00020000 /* Return indirect block buffer. */ +#define BA_UNMAPPED 0x00040000 /* Do not mmap resulted buffer. */ #define BA_SEQMASK 0x7F000000 /* Bits holding seq heuristic. */ #define BA_SEQSHIFT 24 #define BA_SEQMAX 0x7F diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h index d06c22b..c64a549 100644 --- a/sys/vm/pmap.h +++ b/sys/vm/pmap.h @@ -108,6 +108,8 @@ void pmap_clear_modify(vm_page_t m); void pmap_clear_reference(vm_page_t m); void pmap_copy(pmap_t, pmap_t, vm_offset_t, vm_size_t, vm_offset_t); void pmap_copy_page(vm_page_t, vm_page_t); +void pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, + vm_page_t mb[], vm_offset_t b_offset, int xfersize); void pmap_enter(pmap_t, vm_offset_t, vm_prot_t, vm_page_t, vm_prot_t, boolean_t); void pmap_enter_object(pmap_t pmap, vm_offset_t start, diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index 44bff25..10a2c28 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -758,6 +758,16 @@ swp_pager_strategy(struct buf *bp) TAILQ_FOREACH(sp, &swtailq, sw_list) { if (bp->b_blkno >= sp->sw_first && bp->b_blkno < sp->sw_end) { mtx_unlock(&sw_dev_mtx); + if ((sp->sw_flags & SW_UNMAPPED) != 0) { + bp->b_kvaalloc = bp->b_data; + bp->b_data = unmapped_buf; + bp->b_kvabase = unmapped_buf; + bp->b_offset = 0; + bp->b_flags |= B_UNMAPPED; + } else { + pmap_qenter((vm_offset_t)bp->b_data, + &bp->b_pages[0], bp->b_bcount / PAGE_SIZE); + } sp->sw_strategy(bp, sp); return; } @@ -1155,11 +1165,6 @@ swap_pager_getpages(vm_object_t object, vm_page_t *m, int count, int reqpage) bp = getpbuf(&nsw_rcount); bp->b_flags |= B_PAGING; - /* - * map our page(s) into kva for input - */ - pmap_qenter((vm_offset_t)bp->b_data, m + i, j - i); - bp->b_iocmd = BIO_READ; bp->b_iodone = swp_pager_async_iodone; bp->b_rcred = crhold(thread0.td_ucred); @@ -1371,8 +1376,6 @@ swap_pager_putpages(vm_object_t object, vm_page_t *m, int count, bp->b_flags |= B_PAGING; bp->b_iocmd = BIO_WRITE; - pmap_qenter((vm_offset_t)bp->b_data, &m[i], n); - bp->b_rcred = crhold(thread0.td_ucred); bp->b_wcred = crhold(thread0.td_ucred); bp->b_bcount = PAGE_SIZE * n; @@ -1484,7 +1487,12 @@ swp_pager_async_iodone(struct buf *bp) /* * remove the mapping for kernel virtual */ - pmap_qremove((vm_offset_t)bp->b_data, bp->b_npages); + if ((bp->b_flags & B_UNMAPPED) != 0) { + bp->b_data = bp->b_kvaalloc; + bp->b_kvabase = bp->b_kvaalloc; + bp->b_flags &= ~B_UNMAPPED; + } else + pmap_qremove((vm_offset_t)bp->b_data, bp->b_npages); if (bp->b_npages) { object = bp->b_pages[0]->object; @@ -2144,7 +2152,8 @@ swapon_check_swzone(unsigned long npages) } static void -swaponsomething(struct vnode *vp, void *id, u_long nblks, sw_strategy_t *strategy, sw_close_t *close, dev_t dev) +swaponsomething(struct vnode *vp, void *id, u_long nblks, + sw_strategy_t *strategy, sw_close_t *close, dev_t dev, int flags) { struct swdevt *sp, *tsp; swblk_t dvbase; @@ -2180,6 +2189,7 @@ swaponsomething(struct vnode *vp, void *id, u_long nblks, sw_strategy_t *strateg sp->sw_used = 0; sp->sw_strategy = strategy; sp->sw_close = close; + sp->sw_flags = flags; sp->sw_blist = blist_create(nblks, M_WAITOK); /* @@ -2537,10 +2547,19 @@ swapgeom_strategy(struct buf *bp, struct swdevt *sp) bio->bio_caller2 = bp; bio->bio_cmd = bp->b_iocmd; - bio->bio_data = bp->b_data; bio->bio_offset = (bp->b_blkno - sp->sw_first) * PAGE_SIZE; bio->bio_length = bp->b_bcount; bio->bio_done = swapgeom_done; + if ((bp->b_flags & B_UNMAPPED) != 0) { + bio->bio_ma = bp->b_pages; + bio->bio_data = unmapped_buf; + bio->bio_ma_offset = (vm_offset_t)bp->b_offset & PAGE_MASK; + bio->bio_ma_n = bp->b_npages; + bio->bio_flags |= BIO_UNMAPPED; + } else { + bio->bio_data = bp->b_data; + bio->bio_ma = NULL; + } g_io_request(bio, cp); return; } @@ -2630,9 +2649,9 @@ swapongeom_ev(void *arg, int flags) } nblks = pp->mediasize / DEV_BSIZE; swaponsomething(swh->vp, cp, nblks, swapgeom_strategy, - swapgeom_close, dev2udev(swh->dev)); + swapgeom_close, dev2udev(swh->dev), + (pp->flags & G_PF_ACCEPT_UNMAPPED) != 0 ? SW_UNMAPPED : 0); swh->error = 0; - return; } static int @@ -2721,6 +2740,6 @@ swaponvp(struct thread *td, struct vnode *vp, u_long nblks) return (error); swaponsomething(vp, vp, nblks, swapdev_strategy, swapdev_close, - NODEV); + NODEV, 0); return (0); } diff --git a/sys/vm/swap_pager.h b/sys/vm/swap_pager.h index 5c716d9..79f8767 100644 --- a/sys/vm/swap_pager.h +++ b/sys/vm/swap_pager.h @@ -68,6 +68,7 @@ struct swdevt { sw_close_t *sw_close; }; +#define SW_UNMAPPED 0x01 #define SW_CLOSING 0x04 #ifdef _KERNEL diff --git a/sys/vm/vm.h b/sys/vm/vm.h index 132c10e..106c510 100644 --- a/sys/vm/vm.h +++ b/sys/vm/vm.h @@ -136,6 +136,8 @@ struct kva_md_info { vm_offset_t clean_eva; vm_offset_t pager_sva; vm_offset_t pager_eva; + vm_offset_t bio_transient_sva; + vm_offset_t bio_transient_eva; }; extern struct kva_md_info kmi; diff --git a/sys/vm/vm_init.c b/sys/vm/vm_init.c index c507691..2eb1070 100644 --- a/sys/vm/vm_init.c +++ b/sys/vm/vm_init.c @@ -186,10 +186,15 @@ again: panic("startup: table size inconsistency"); clean_map = kmem_suballoc(kernel_map, &kmi->clean_sva, &kmi->clean_eva, - (long)nbuf * BKVASIZE + (long)nswbuf * MAXPHYS, TRUE); + (long)nbuf * BKVASIZE + (long)nswbuf * MAXPHYS + + (long)bio_transient_maxcnt * MAXPHYS, TRUE); buffer_map = kmem_suballoc(clean_map, &kmi->buffer_sva, &kmi->buffer_eva, (long)nbuf * BKVASIZE, FALSE); buffer_map->system_map = 1; + bio_transient_map = kmem_suballoc(clean_map, &kmi->bio_transient_sva, + &kmi->bio_transient_eva, (long)bio_transient_maxcnt * MAXPHYS, + FALSE); + bio_transient_map->system_map = 1; pager_map = kmem_suballoc(clean_map, &kmi->pager_sva, &kmi->pager_eva, (long)nswbuf * MAXPHYS, FALSE); pager_map->system_map = 1; diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index ad9aa0d..efd2bf2 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -85,11 +85,12 @@ __FBSDID("$FreeBSD$"); #include #include -vm_map_t kernel_map=0; -vm_map_t kmem_map=0; -vm_map_t exec_map=0; +vm_map_t kernel_map; +vm_map_t kmem_map; +vm_map_t exec_map; vm_map_t pipe_map; -vm_map_t buffer_map=0; +vm_map_t buffer_map; +vm_map_t bio_transient_map; const void *zero_region; CTASSERT((ZERO_REGION_SIZE & PAGE_MASK) == 0); diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index a6d78f4..86ca7b4 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -697,6 +697,7 @@ vnode_pager_generic_getpages(vp, m, bytecount, reqpage) int runpg; int runend; struct buf *bp; + struct mount *mp; int count; int error; @@ -899,12 +900,23 @@ vnode_pager_generic_getpages(vp, m, bytecount, reqpage) } bp = getpbuf(&vnode_pbuf_freecnt); - kva = (vm_offset_t) bp->b_data; + kva = (vm_offset_t)bp->b_data; /* - * and map the pages to be read into the kva + * and map the pages to be read into the kva, if the filesystem + * requires mapped buffers. */ - pmap_qenter(kva, m, count); + mp = vp->v_mount; + if (mp != NULL && (mp->mnt_kern_flag & MNTK_UNMAPPED_BUFS) != 0) { + bp->b_data = unmapped_buf; + bp->b_kvabase = unmapped_buf; + bp->b_offset = 0; + bp->b_flags |= B_UNMAPPED; + bp->b_npages = count; + for (i = 0; i < count; i++) + bp->b_pages[i] = m[i]; + } else + pmap_qenter(kva, m, count); /* build a minimal buffer header */ bp->b_iocmd = BIO_READ; @@ -933,11 +945,22 @@ vnode_pager_generic_getpages(vp, m, bytecount, reqpage) if ((bp->b_ioflags & BIO_ERROR) != 0) error = EIO; - if (!error) { - if (size != count * PAGE_SIZE) - bzero((caddr_t) kva + size, PAGE_SIZE * count - size); + if (error != 0 && size != count * PAGE_SIZE) { + if ((bp->b_flags & B_UNMAPPED) != 0) { + bp->b_flags &= ~B_UNMAPPED; + pmap_qenter(kva, m, count); + } + bzero((caddr_t)kva + size, PAGE_SIZE * count - size); + } + if ((bp->b_flags & B_UNMAPPED) == 0) + pmap_qremove(kva, count); + if (mp != NULL && (mp->mnt_kern_flag & MNTK_UNMAPPED_BUFS) != 0) { + bp->b_data = (caddr_t)kva; + bp->b_kvabase = (caddr_t)kva; + bp->b_flags &= ~B_UNMAPPED; + for (i = 0; i < count; i++) + bp->b_pages[i] = NULL; } - pmap_qremove(kva, count); /* * free the buffer header back to the swap buffer pool -- Test scenario: quota8.sh