KDB: debugger backends: ddb KDB: current backend: ddb ---<>--- Copyright (c) 1992-2020 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 13.0-CURRENT #1 r362844M: Wed Jul 1 19:37:45 CEST 2020 pho@mercat1.netperf.freebsd.org:/usr/src/sys/amd64/compile/PHO amd64 FreeBSD clang version 10.0.1 (git@github.com:llvm/llvm-project.git llvmorg-10.0.1-rc1-0-gf79cd71e145) WARNING: WITNESS option enabled, expect reduced performance. WARNING: DIAGNOSTIC option enabled, expect reduced performance. VT(vga): resolution 640x480 CPU: Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz (3500.07-MHz K8-class CPU) Origin="GenuineIntel" Id=0x306f2 Family=0x6 Model=0x3f Stepping=2 Features=0xbfebfbff Features2=0x7ffefbff AMD Features=0x2c100800 AMD Features2=0x21 Structured Extended Features=0x37ab XSAVE Features=0x1 VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID,VID,PostIntr TSC: P-state invariant, performance statistics real memory = 34359738368 (32768 MB) avail memory = 33165754368 (31629 MB) Event timer "LAPIC" quality 600 ACPI APIC Table: FreeBSD/SMP: Multiprocessor System Detected: 12 CPUs FreeBSD/SMP: 1 package(s) x 6 core(s) x 2 hardware threads random: registering fast source Intel Secure Key RNG random: fast provider: "Intel Secure Key RNG" random: unblocking device. ioapic0 irqs 0-23 ioapic1 irqs 24-47 Launching APs: 1 4 6 8 3 2 10 7 11 9 5 Timecounter "TSC-low" frequency 1750037014 Hz quality 1000 random: entropy device external interface WARNING: Device "kbd" is Giant locked and may be deleted before FreeBSD 13.0. kbd1 at kbdmux0 000.000052 [4342] netmap_init netmap: loaded module [ath_hal] loaded nexus0 vtvga0: cryptosoft0: acpi0: acpi0: Power Button (fixed) cpu0: on acpi0 atrtc0: port 0x70-0x71,0x74-0x77 irq 8 on acpi0 atrtc0: registered as a time-of-day clock, resolution 1.000000s Event timer "RTC" frequency 32768 Hz quality 0 attimer0: port 0x40-0x43,0x50-0x53 irq 0 on acpi0 Timecounter "i8254" frequency 1193182 Hz quality 0 Event timer "i8254" frequency 1193182 Hz quality 100 hpet0: iomem 0xfed00000-0xfed003ff on acpi0 Timecounter "HPET" frequency 14318180 Hz quality 950 Event timer "HPET" frequency 14318180 Hz quality 350 Event timer "HPET1" frequency 14318180 Hz quality 340 Event timer "HPET2" frequency 14318180 Hz quality 340 Event timer "HPET3" frequency 14318180 Hz quality 340 Event timer "HPET4" frequency 14318180 Hz quality 340 Event timer "HPET5" frequency 14318180 Hz quality 340 Event timer "HPET6" frequency 14318180 Hz quality 340 Event timer "HPET7" frequency 14318180 Hz quality 340 Timecounter "ACPI-fast" frequency 3579545 Hz quality 900 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0 pcib0: on acpi0 pci0: on pcib0 pci0: at device 11.1 (no driver attached) pci0: at device 11.2 (no driver attached) pci0: at device 16.1 (no driver attached) pci0: at device 16.6 (no driver attached) pci0: at device 18.1 (no driver attached) acpi_syscontainer0: on acpi0 acpi_syscontainer1: on acpi0 acpi_syscontainer2: on acpi0 acpi_syscontainer3: on acpi0 pcib1: port 0xcf8-0xcff on acpi0 pci1: on pcib1 pcib2: irq 26 at device 1.0 on pci1 pci2: on pcib2 pcib3: irq 32 at device 2.0 on pci1 pci3: on pcib3 pci3: at device 0.0 (no driver attached) pci3: at device 0.1 (no driver attached) pcib4: irq 40 at device 3.0 on pci1 pci4: on pcib4 pci1: at device 17.0 (no driver attached) ahci0: port 0xf110-0xf117,0xf100-0xf103,0xf0f0-0xf0f7,0xf0e0-0xf0e3,0xf020-0xf03f mem 0xfb438000-0xfb4387ff irq 16 at device 17.4 on pci1 ahci0: AHCI v1.30 with 4 6Gbps ports, Port Multiplier not supported ahcich0: at channel 0 on ahci0 ahcich1: at channel 1 on ahci0 ahcich2: at channel 2 on ahci0 ahcich3: at channel 3 on ahci0 ahciem0: on ahci0 xhci0: mem 0xfb400000-0xfb40ffff irq 19 at device 20.0 on pci1 xhci0: 32 bytes context size, 64-bit DMA usbus0 on xhci0 usbus0: 5.0Gbps Super Speed USB v3.0 pci1: at device 22.0 (no driver attached) pci1: at device 22.1 (no driver attached) ehci0: mem 0xfb434000-0xfb4343ff irq 18 at device 26.0 on pci1 usbus1: EHCI version 1.0 usbus1 on ehci0 usbus1: 480Mbps High Speed USB v2.0 pcib5: irq 16 at device 28.0 on pci1 pci5: on pcib5 pcib6: irq 18 at device 28.2 on pci1 pci6: on pcib6 pcib7: at device 0.0 on pci6 pci7: on pcib7 vgapci0: port 0xe000-0xe07f mem 0xfa000000-0xfaffffff,0xfb000000-0xfb01ffff irq 18 at device 0.0 on pci7 vgapci0: Boot video device pcib8: irq 16 at device 28.4 on pci1 pci8: on pcib8 igb0: port 0xd020-0xd03f mem 0xfb320000-0xfb33ffff,0xfb344000-0xfb347fff irq 16 at device 0.0 on pci8 igb0: Using 1024 TX descriptors and 1024 RX descriptors igb0: queue equality override not set, ugen0.3: at usbus0 ukbd0 on uhub3 ukbd0: on usbus0 kbd2 at ukbd0 Starting Network: lo0 igb0 igb1. lo0: flags=8049 metric 0 mtu 16384 options=680003 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 inet 127.0.0.1 netmask 0xff000000 groups: lo nd6 options=21 igb0: flags=8863 metric 0 mtu 1500 options=4e507bb ether 0c:c4:7a:a8:cd:da inet6 fe80::ec4:7aff:fea8:cdda%igb0 prefixlen 64 scopeid 0x1 media: Ethernet autoselect status: no carrier nd6 options=21 igb1: flags=8822 metric 0 mtu 1500 options=4e507bb ether 0c:c4:7a:a8:cd:db media: Ethernet autoselect status: no carrier nd6 options=29 Starting devd. igb0: link state changed to UP Autoloading moduioat0: mem 0xfb42c000-0xfb42ffff irq 31 at device 4.0 on pci1 ioat0: Capabilities: 2f7 ioat1: mem 0xfb428000-0xfb42bfff irq 39 at device 4.1 on pci1 ioat1: Capabilities: 2f7 ioat2: mem 0xfb424000-0xfb427fff irq 31 at device 4.2 on pci1 ioat2: Capabilities: f7 ioat3: mem 0xfb420000-0xfb423fff irq 39 at device 4.3 on pci1 ioat3: Capabilities: f7 ioat4: mem 0xfb41c000-0xfb41ffff irq 31 at device 4.4 on pci1 ioat4: Capabilities: f7 ioat5: mem 0xfb418000-0xfb41bfff irq 39 at device 4.5 on pci1 ioat5: Capabilities: f7 ioat6: mem 0xfb414000-0xfb417fff irq 31 at device 4.6 on pci1 ioat6: Capabilities: f7 ioat7: mem 0xfb410000-0xfb413fff irq 39 at device 4.7 on pci1 ioat7: Capabilities: f7 Autoloading module: ioat.ko Autoloading module: ioat.ko Autoloading module: ioat.ko Autoloading module: ioat.ko Autoloading module: ioat.ko Autoloading module: ioat.ko Autoloading module: ioat.ko Starting Network: igb1. igb1: flags=8822 metric 0 mtu 1500 options=4e507bb ether 0c:c4:7a:a8:cd:db media: Ethernet autoselect status: no carrier nd6 options=29 Autoloading module: uhid.ko Autoloading module: ums.ko ums0 on uhub3 ums0: on usbus0 ums0: 3 buttons and [Z] coordinates ID=0 Starting dhclient. DHCPREQUEST on igb0 to 255.255.255.255 port 67 DHCPACK from 192.168.5.1 if_delmulti_locked: detaching ifnet instance 0xfffff8000416d800 bound to 192.168.5.171 -- renewal in 300 seconds. add host 127.0.0.1: gateway lo0 fib 0: route already in table add host ::1: gateway lo0 fib 0: route already in table add net fe80::: gateway ::1 add net ff02::: gateway ::1 add net ::ffff:0.0.0.0: gateway ::1 add net ::0.0.0.0: gateway ::1 Creating and/or trimming log files. Starting syslogd. Setting date via ntp. 1 Jul 20:22:47 ntpdate[2065]: step time server 192.168.5.1 offset -0.091350 sec Starting rpcbind. NFS access cache time=60 Updating CPU Microcode... CPU: Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz (3500.07-MHz K8-class CPU) Origin="GenuineIntel" Id=0x306f2 Family=0x6 Model=0x3f Stepping=2 Features=0xbfebfbff Features2=0x7ffefbff AMD Features=0x2c100800 AMD Features2=0x21 Structured Extended Features=0x37ab Structured Extended Features3=0x9c000400 XSAVE Features=0x1 VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID,VID,PostIntr TSC: P-state invariant, performance statistics Done. Starting watchdogd. No core dumps found. Clearing /tmp (X related). Starting statd. Starting lockd. Recovering vi editor sessions:. fscklock order reversal: 1st 0xfffff80018b19800 ufs (ufs) @ kern/vfs_mount.c:1696 2nd 0xfffff80018770d10 devfs (devfs) @ kern/vfs_subr.c:3328 stack backtrace: #0 0xffffffff80c38381 at witness_debugger+0x71 #1 0xffffffff80b9c972 at lockmgr_lock_flags+0x172 #2 0xffffffff81128200 at VOP_LOCK1_APV+0x40 #3 0xffffffff80cbce94 at _vn_lock+0x54 #4 0xffffffff80ca7365 at vput_final+0x135 #5 0xffffffff80eea7df at ffs_unmount+0x3af #6 0xffffffff80c9e4fd at dounmount+0x43d #7 0xffffffff80c9e069 at kern_unmount+0x2b9 #8 0xffffffff810774a9 at amd64_syscall+0x159 #9 0xffffffff8104c680 at fast_syscall_common+0x101 ** /dev/gpt/tmp ** Last Mounted on /tmp ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 322 files, 68860 used, 1196547 free (171 frags, 149547 blocks, 0.0% fragmentation) ***** FILE SYSTEM IS CLEAN ***** Updating motd:. Mounting late filesystems:. Security policy loaded: MAC/ntpd (mac_ntpd) Starting ntpd. Starting powerd. Configuring vt: blanktime. Performing sanity check on sshd configuration. Starting sshd. Starting cron. Wed Jul 1 20:22 FreeBSD/amd64 (mercat1.netperf.freebsd.org) (ttyu1) login: root Jul 1 20:22:54 mercat1 login[2421]: ROOT LOGIN (root) ON ttyu1 Last login: Wed Jul 1 19:42:09 on ttyu1 FreeBSD 13.0-CURRENT (PHO) #1 r362844M: Wed Jul 1 19:37:45 CEST 2020 root@mercat1:~ # exec bash [root@mercat1 ~]# cd /stress2/misc root@mercat1 /stress2/misc]# ./tmpfs8.sh umount: unmount of /mnt failed: Device busy umount: unmount of /mnt failed: Device busy umount: unmount of /mnt failed: Device busy umount: unmount of /mnt failed: Device busy umount: unmount of /mnt failed: Device busy umount: unmount of /mnt failed: Device busy FATAL USER CMD PID FD MOUNT INUM MODE SZ|DV R/W [root@mercat1 /stress2/misc]# KDB: enter: Break to debugger [ thread pid 11 tid 100003 ] Stopped at kdb_alt_break_internal+0x155: movq $0,0x10c3a08(%rip) db> show mount 0xfffffe00d5906700 /dev/gpt/work on / (ufs) 0xfffffe00d5907280 devfs on /dev (devfs) 0xfffffe00d39fb280 /dev/gpt/tmp on /tmp (ufs) 0xfffffe00dfe65700 tmpfs on /mnt (tmpfs) More info: show mount db> show mount 0xfffffe00dfe65700 0xfffffe00dfe65700 tmpfs on /mnt (tmpfs) mnt_flag = LOCAL mnt_kern_flag = EXTENDED_SHARED, FPLOOKUP, LOOKUP_SHARED, 0x00008008 mnt_opt = fstype, fspath, from, errmsg mnt_stat = { version=538182936 type=135 flags=0x0000000000001000 bsize=4096 iosize=4096 blocks=24768996 bfree=24768995 bavail=24768995 files=2147483647 ffree=2147483646 syncwrites=0 asyncwrites=0 syncreads=0 asyncreads=0 namemax=255 owner=0 fsid=[-2029977854, 135] } mnt_cred = { uid=0 ruid=0 } mnt_ref = 2 (with 2 in the struct) mnt_gen = 1 mnt_nvnodelistsize = 2 mnt_lazyvnodelistsize = 0 mnt_writeopcount = 0 (with 0 in the struct) mnt_maxsymlinklen = 0 mnt_iosize_max = 65536 mnt_hashseed = 3841202766 mnt_lockref = 0 (with 0 in the struct) mnt_secondary_writes = 0 mnt_secondary_accwrites = 0 mnt_gjprovider = NULL mnt_vfs_ops = 0 List of active vnodes vnode 0xfffff80271f11510: type VDIR usecount 5087, writecount 0, refcount 2 seqc users 0 mountedhere 0 hold count flags () flags (VV_ROOT) v_object 0xfffff80271f4d000 ref 0 pages 0 cleanbuf 0 dirtybuf 0 lock type tmpfs: UNLOCKED #0 0xffffffff80b9c9d5 at lockmgr_lock_flags+0x1d5 #1 0xffffffff81128200 at VOP_LOCK1_APV+0x40 #2 0xffffffff80cbce94 at _vn_lock+0x54 #3 0xffffffff80ca64d8 at vget_finish+0x78 #4 0xffffffff8233c726 at tmpfs_alloc_vp+0x1a6 #5 0xffffffff8233ae68 at tmpfs_root+0x28 #6 0xffffffff80cac280 at vfs_cache_root_fallback+0x140 #7 0xffffffff80c995d3 at lookup+0x7e3 #8 0xffffffff80c9890b at namei+0x59b #9 0xffffffff80cb61bf at kern_statat+0x7f #10 0xffffffff80cb697f at sys_fstatat+0x2f #11 0xffffffff810774a9 at amd64_syscall+0x159 #12 0xffffffff8104c680 at fast_syscall_common+0x101 tag VT_TMPFS, tmpfs_node 0xfffff80271eaf828, flags 0x0, links 2 mode 0777, owner 0, group 0, size 0, status 0x0 vnode 0xfffff80265483000: type VNON usecount 1, writecount 0, refcount 1 seqc users 0 hold count flags () flags () lock type syncer: UNLOCKED #0 0xffffffff80b9c9d5 at lockmgr_lock_flags+0x1d5 #1 0xffffffff81128200 at VOP_LOCK1_APV+0x40 #2 0xffffffff80cbce94 at _vn_lock+0x54 #3 0xffffffff80caf55a at sched_sync+0x3ca #4 0xffffffff80b880d0 at fork_exit+0x80 #5 0xffffffff8104cd9e at fork_trampoline+0xe List of inactive vnodes db> run pho db:0:pho> set $lines 20000 db:0:pho> run pho1 db:1:pho1> dump Dumping 1317 out of 32628 MB:..2%..11%..21%..31%..41%..51%..61%..71%..81%..92% Dump complete db:1:pho1> bt Tracing pid 11 tid 100003 td 0xfffffe003e3d9300 kdb_alt_break_internal() at kdb_alt_break_internal+0x155/frame 0xfffffe00add46880 kdb_alt_break() at kdb_alt_break+0xb/frame 0xfffffe00add46890 uart_intr_rxready() at uart_intr_rxready+0xf5/frame 0xfffffe00add468c0 uart_intr() at uart_intr+0x128/frame 0xfffffe00add46900 intr_event_handle() at intr_event_handle+0xce/frame 0xfffffe00add46950 intr_execute_handlers() at intr_execute_handlers+0x66/frame 0xfffffe00add46980 Xapic_isr1() at Xapic_isr1+0xdc/frame 0xfffffe00add46980 --- interrupt, rip = 0xffffffff81034d26, rsp = 0xfffffe00add46a50, rbp = 0xfffffe00add46a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add46a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add46aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add46ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add46ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add46bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add46bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add46bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- db:1:pho1> show allpcpu Current CPU: 0 cpuid = 0 dynamic pcpu = 0x79ddc0 curthread = 0xfffffe003e3d9300: pid 11 tid 100003 critnest 2 "idle: cpu0" curpcb = 0xfffffe003e3d9810 fpcurthread = none idlethread = 0xfffffe003e3d9300: tid 100003 "idle: cpu0" self = 0xffffffff82210000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82210384 rsp0 = 0xfffffe00add46cc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x271f96997 gs32p = 0xffffffff82210404 ldt = 0xffffffff82210444 tss = 0xffffffff82210434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 1 dynamic pcpu = 0xfffffe00bc7f2dc0 curthread = 0xfffffe003e3d8c00: pid 11 tid 100004 critnest 1 "idle: cpu1" curpcb = 0xfffffe003e3d9110 fpcurthread = none idlethread = 0xfffffe003e3d8c00: tid 100004 "idle: cpu1" self = 0xffffffff82211000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82211384 rsp0 = 0xfffffe00add4bcc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x2656aa96b gs32p = 0xffffffff82211404 ldt = 0xffffffff82211444 tss = 0xffffffff82211434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 2 dynamic pcpu = 0xfffffe00bc7fedc0 curthread = 0xfffffe003e3d8500: pid 11 tid 100005 critnest 1 "idle: cpu2" curpcb = 0xfffffe003e3d8a10 fpcurthread = none idlethread = 0xfffffe003e3d8500: tid 100005 "idle: cpu2" self = 0xffffffff82212000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82212384 rsp0 = 0xfffffe00add50cc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x29629c94c gs32p = 0xffffffff82212404 ldt = 0xffffffff82212444 tss = 0xffffffff82212434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 3 dynamic pcpu = 0xfffffe00bc80adc0 curthread = 0xfffffe003e3d7e00: pid 11 tid 100006 critnest 1 "idle: cpu3" curpcb = 0xfffffe003e3d8310 fpcurthread = none idlethread = 0xfffffe003e3d7e00: tid 100006 "idle: cpu3" self = 0xffffffff82213000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82213384 rsp0 = 0xfffffe00add55cc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x1c8e6f93f gs32p = 0xffffffff82213404 ldt = 0xffffffff82213444 tss = 0xffffffff82213434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 4 dynamic pcpu = 0xfffffe00bc816dc0 curthread = 0xfffffe003e3d7700: pid 11 tid 100007 critnest 1 "idle: cpu4" curpcb = 0xfffffe003e3d7c10 fpcurthread = none idlethread = 0xfffffe003e3d7700: tid 100007 "idle: cpu4" self = 0xffffffff82214000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82214384 rsp0 = 0xfffffe00add5acc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x271fac96d gs32p = 0xffffffff82214404 ldt = 0xffffffff82214444 tss = 0xffffffff82214434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 5 dynamic pcpu = 0xfffffe00bc822dc0 curthread = 0xfffffe003e3d7000: pid 11 tid 100008 critnest 1 "idle: cpu5" curpcb = 0xfffffe003e3d7510 fpcurthread = none idlethread = 0xfffffe003e3d7000: tid 100008 "idle: cpu5" self = 0xffffffff82215000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82215384 rsp0 = 0xfffffe00add5fcc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x2962b1964 gs32p = 0xffffffff82215404 ldt = 0xffffffff82215444 tss = 0xffffffff82215434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 6 dynamic pcpu = 0xfffffe00bc82edc0 curthread = 0xfffffe003e3e1a00: pid 11 tid 100009 critnest 1 "idle: cpu6" curpcb = 0xfffffe003e3e1f10 fpcurthread = none idlethread = 0xfffffe003e3e1a00: tid 100009 "idle: cpu6" self = 0xffffffff82216000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82216384 rsp0 = 0xfffffe00add64cc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x2962e19ac gs32p = 0xffffffff82216404 ldt = 0xffffffff82216444 tss = 0xffffffff82216434 tlb gen = 3032 curvnet = 0 spin locks held: cpuid = 7 dynamic pcpu = 0xfffffe00bc83adc0 curthread = 0xfffffe003e3e1300: pid 11 tid 100010 critnest 1 "idle: cpu7" curpcb = 0xfffffe003e3e1810 fpcurthread = none idlethread = 0xfffffe003e3e1300: tid 100010 "idle: cpu7" self = 0xffffffff82217000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82217384 rsp0 = 0xfffffe00add69cc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x296245981 gs32p = 0xffffffff82217404 ldt = 0xffffffff82217444 tss = 0xffffffff82217434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 8 dynamic pcpu = 0xfffffe00bc846dc0 curthread = 0xfffffe003e3e0c00: pid 11 tid 100011 critnest 1 "idle: cpu8" curpcb = 0xfffffe003e3e1110 fpcurthread = none idlethread = 0xfffffe003e3e0c00: tid 100011 "idle: cpu8" self = 0xffffffff82218000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82218384 rsp0 = 0xfffffe00add6ecc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x2651af984 gs32p = 0xffffffff82218404 ldt = 0xffffffff82218444 tss = 0xffffffff82218434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 9 dynamic pcpu = 0xfffffe00bc852dc0 curthread = 0xfffffe003e3e0500: pid 11 tid 100012 critnest 1 "idle: cpu9" curpcb = 0xfffffe003e3e0a10 fpcurthread = none idlethread = 0xfffffe003e3e0500: tid 100012 "idle: cpu9" self = 0xffffffff82219000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff82219384 rsp0 = 0xfffffe00add73cc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x2962c49c3 gs32p = 0xffffffff82219404 ldt = 0xffffffff82219444 tss = 0xffffffff82219434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 10 dynamic pcpu = 0xfffffe00bc85edc0 curthread = 0xfffffe003e3dfe00: pid 11 tid 100013 critnest 1 "idle: cpu10" curpcb = 0xfffffe003e3e0310 fpcurthread = none idlethread = 0xfffffe003e3dfe00: tid 100013 "idle: cpu10" self = 0xffffffff8221a000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff8221a384 rsp0 = 0xfffffe00add78cc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x2651af994 gs32p = 0xffffffff8221a404 ldt = 0xffffffff8221a444 tss = 0xffffffff8221a434 tlb gen = 3033 curvnet = 0 spin locks held: cpuid = 11 dynamic pcpu = 0xfffffe00bc86adc0 curthread = 0xfffffe003e3df700: pid 11 tid 100014 critnest 1 "idle: cpu11" curpcb = 0xfffffe003e3dfc10 fpcurthread = none idlethread = 0xfffffe003e3df700: tid 100014 "idle: cpu11" self = 0xffffffff8221b000 curpmap = 0xffffffff81c8ed40 tssp = 0xffffffff8221b384 rsp0 = 0xfffffe00add7dcc0 kcr3 = 0x8000000002130001 ucr3 = 0xffffffffffffffff scr3 = 0x296276978 gs32p = 0xffffffff8221b404 ldt = 0xffffffff8221b444 tss = 0xffffffff8221b434 tlb gen = 3033 curvnet = 0 spin locks held: db:1:pho1> show alllocks db:1:pho1> show lockedvnods Locked vnodes db:1:pho1> show mount 0xfffffe00d5906700 /dev/gpt/work on / (ufs) 0xfffffe00d5907280 devfs on /dev (devfs) 0xfffffe00d39fb280 /dev/gpt/tmp on /tmp (ufs) 0xfffffe00dfe65700 tmpfs on /mnt (tmpfs) More info: show mount db:1:pho1> show bufqueues bqempty: 100747 Buf domain 0 freebufs 14775 lofreebufs 219 hifreebufs 329 bufspace 3702784 maxbufspace 247939072 hibufspace 247845449 lobufspace 235453176 bufspacethresh 241649312 numdirtybuffers 1 lodirtybuffers 1893 hidirtybuffers 3786 dirtybufthresh 3407 cleanq count 241 (1753088) dirtyq count 1 (32768) wakeup 0 lim 25 CPU 11, 3, 22, 12, 3, 7, 7, 13, 14, 7, 11, 6, Locked buffers: 0 space 0 Total buffers: 406 space 3702784 Buf domain 1 freebufs 14167 lofreebufs 219 hifreebufs 329 bufspace 23957504 maxbufspace 247939072 hibufspace 247845449 lobufspace 235453176 bufspacethresh 241649312 numdirtybuffers 0 lodirtybuffers 1893 hidirtybuffers 3786 dirtybufthresh 3407 cleanq count 874 (21549056) dirtyq count 0 (0) wakeup 0 lim 25 CPU 21, 2, 1, 9, 4, 17, 9, 21, 3, 0, 2, 3, Locked buffers: 0 space 0 Total buffers: 966 space 23957504 Buf domain 2 freebufs 14767 lofreebufs 219 hifreebufs 329 bufspace 4345856 maxbufspace 247939072 hibufspace 247845449 lobufspace 235453176 bufspacethresh 241649312 numdirtybuffers 0 lodirtybuffers 1893 hidirtybuffers 3786 dirtybufthresh 3407 cleanq count 250 (2015232) dirtyq count 0 (0) wakeup 0 lim 25 CPU 10, 1, 2, 10, 1, 7, 21, 6, 15, 17, 12, 14, Locked buffers: 0 space 0 Total buffers: 366 space 4345856 Buf domain 3 freebufs 14666 lofreebufs 219 hifreebufs 329 bufspace 7307264 maxbufspace 247939072 hibufspace 247845449 lobufspace 235453176 bufspacethresh 241649312 numdirtybuffers 0 lodirtybuffers 1893 hidirtybuffers 3786 dirtybufthresh 3407 cleanq count 349 (4820992) dirtyq count 0 (0) wakeup 0 lim 25 CPU 20, 11, 1, 0, 1, 12, 18, 21, 6, 7, 14, 7, Locked buffers: 0 space 0 Total buffers: 468 space 7307264 Buf domain 4 freebufs 13462 lofreebufs 219 hifreebufs 329 bufspace 46231552 maxbufspace 247939072 hibufspace 247845449 lobufspace 235453176 bufspacethresh 241649312 numdirtybuffers 0 lodirtybuffers 1893 hidirtybuffers 3786 dirtybufthresh 3407 cleanq count 1550 (43720704) dirtyq count 0 (0) wakeup 0 lim 25 CPU 13, 2, 10, 6, 2, 14, 5, 20, 5, 9, 11, 24, Locked buffers: 0 space 0 Total buffers: 1672 space 46231552 Buf domain 5 freebufs 14759 lofreebufs 219 hifreebufs 329 bufspace 3821568 maxbufspace 247939072 hibufspace 247845449 lobufspace 235453176 bufspacethresh 241649312 numdirtybuffers 0 lodirtybuffers 1893 hidirtybuffers 3786 dirtybufthresh 3407 cleanq count 275 (2412544) dirtyq count 0 (0) wakeup 0 lim 25 CPU 14, 3, 3, 9, 3, 8, 4, 18, 3, 8, 8, 18, Locked buffers: 0 space 0 Total buffers: 376 space 3821568 Buf domain 6 freebufs 14302 lofreebufs 219 hifreebufs 329 bufspace 18968576 maxbufspace 247939072 hibufspace 247845449 lobufspace 235453176 bufspacethresh 241649312 numdirtybuffers 2 lodirtybuffers 1893 hidirtybuffers 3786 dirtybufthresh 3407 cleanq count 763 (17457152) dirtyq count 2 (65536) wakeup 0 lim 25 CPU 5, 4, 2, 2, 0, 2, 1, 1, 7, 2, 21, 19, Locked buffers: 0 space 0 Total buffers: 833 space 18968576 db:1:pho1> show page vm_cnt.v_free_count: 7992855 vm_cnt.v_inactive_count: 652 vm_cnt.v_active_count: 7414 vm_cnt.v_laundry_count: 0 vm_cnt.v_wire_count: 122167 vm_cnt.v_free_reserved: 10644 vm_cnt.v_free_min: 51267 vm_cnt.v_free_target: 173136 vm_cnt.v_inactive_target: 259704 db:1:pho1> show pageq pq_free 7992855 dom 0 page_cnt 8124611 free 7992855 pq_act 7414 pq_inact 652 pq_laund 0 pq_unsw 0 db:0:pho> show freepages DOMAIN: 0 FREE LIST 0: ORDER (SIZE) | NUMBER | POOL 0 | POOL 1 -- -- -- -- -- -- 12 (016384K) | 001920 | 000000 11 (008192K) | 000002 | 000001 10 (004096K) | 000004 | 000001 09 (002048K) | 000002 | 000000 08 (001024K) | 000000 | 000000 07 (000512K) | 000000 | 000001 06 (000256K) | 000001 | 000001 05 (000128K) | 000000 | 000001 04 (000064K) | 000001 | 000001 03 (000032K) | 000001 | 000000 02 (000016K) | 000000 | 000000 01 (000008K) | 000001 | 000001 00 (000004K) | 000000 | 000001 FREE LIST 1: ORDER (SIZE) | NUMBER | POOL 0 | POOL 1 -- -- -- -- -- -- 12 (016384K) | 000000 | 000000 11 (008192K) | 000000 | 000000 10 (004096K) | 000000 | 000000 09 (002048K) | 000000 | 000000 08 (001024K) | 000000 | 000000 07 (000512K) | 000000 | 000000 06 (000256K) | 000001 | 000000 05 (000128K) | 000001 | 000000 04 (000064K) | 000002 | 000000 03 (000032K) | 000000 | 000000 02 (000016K) | 000001 | 000000 01 (000008K) | 000000 | 000000 00 (000004K) | 000001 | 000000 db:0:pho> show uma Zone Size Used Free Requests Sleeps Bucket Total Mem XFree mbuf_cluster 2048 14572 922 14915 0 254 31731712 0 BUF TRIE 144 592 105360 1226 0 62 15257088 0 VNODE 648 20625 207 821203 0 16 13499136 0 FFS2 dinode 256 20500 335 20873 0 62 5333760 0 mbuf 256 16421 2128 22263 0 254 4748544 0 FFS inode 160 20500 475 20873 0 62 3356000 0 socket 904 49 3002 5243 0 254 2758104 0 S VFS Cache 108 20736 1692 1803029 0 126 2422224 0 128 128 14362 1262 942914 0 126 1999872 0 tcpcb 1040 9 1520 14 0 254 1590160 0 128 128 11299 1070 15026 0 126 1583232 0 udp_inpcb 488 20 3028 176 0 254 1487424 0 4096 4096 340 19 91911 0 2 1470464 0 256 Bucket 2048 601 55 1057 0 8 1343488 0 RADIX NODE 144 7917 1153 159736 0 62 1306080 0 UMA Slabs 0 112 10478 28 10478 0 126 1176672 0 mbuf_jumbo_page 4096 0 254 2 0 254 1040384 0 16384 16384 5 55 14845 0 1 983040 0 VM OBJECT 264 2684 616 863538 0 30 871200 0 vmem btag 56 13508 1599 13508 0 254 845992 0 pbuf 984 0 802 0 0 0 789168 0 64 64 9329 2893 17386 0 254 782208 0 32768 32768 8 15 60 0 1 753664 0 tcp_inpcb 488 9 1519 14 0 254 745664 0 65536 65536 1 10 59 0 1 720896 0 unpcb 256 17 2788 5042 0 254 718080 0 8192 8192 87 0 87 0 1 712704 0 64 64 8591 1615 74591 0 254 653184 0 mbuf_packet 256 3 2283 269 0 254 585216 0 THREAD 1792 228 69 257 0 8 532224 0 65536 65536 3 5 8 0 1 524288 0 32768 32768 13 3 22 0 1 524288 0 128 Bucket 1024 262 237 15413 0 16 510976 0 1024 1024 30 462 3575 0 16 503808 0 UMA Zones 2048 228 0 228 0 8 466944 0 65536 65536 3 4 20 0 1 458752 0 4096 4096 77 31 3536 0 2 442368 0 32768 32768 13 0 13 0 1 425984 0 MAP ENTRY 96 1156 2624 202163 0 126 362880 0 64 64 3312 2295 3377 0 254 358848 0 DIRHASH 1024 230 106 249 0 16 344064 0 1024 1024 208 104 240 0 16 319488 0 32 32 6999 2451 7116 0 254 302400 0 2048 2048 98 46 99 0 8 294912 0 VMSPACE 2536 28 86 3483 0 4 289104 0 256 256 439 686 2205 0 62 288000 0 65536 65536 3 1 2170 0 1 262144 0 4096 4096 62 2 77 0 2 262144 0 16 16 13880 2370 1214130 0 254 260000 0 2048 2048 3 121 9983 0 8 253952 0 128 128 433 1489 29753 0 126 246016 0 64 Bucket 512 328 152 16522 0 30 245760 0 filedesc0 1088 62 162 3516 0 8 243712 0 32 Bucket 256 164 781 1549 0 62 241920 0 g_bio 408 0 570 38570 0 30 232560 0 128 128 358 1440 1568 0 126 230144 0 256 256 434 451 3895 0 62 226560 0 ksiginfo 112 86 1822 702 0 126 213696 0 16384 16384 12 1 2838 0 1 212992 0 128 128 667 976 685 0 126 210304 0 pipe 760 5 270 1261 0 16 209000 0 256 256 223 587 4609 0 62 207360 0 selfd 64 104 2983 16293 0 254 197568 0 64 64 90 2997 3577 0 254 197568 0 64 64 646 2441 1157 0 254 197568 0 64 64 33 3054 48 0 254 197568 0 64 64 143 2944 3941 0 254 197568 0 NAMEI 1024 0 192 15083903 0 16 196608 0 1024 1024 3 189 12025 0 16 196608 0 128 128 391 1128 846 0 126 194432 0 128 128 135 1384 856 0 126 194432 0 256 256 126 624 258 0 62 192000 0 256 256 33 717 9111 0 62 192000 0 PROC 1312 61 83 3515 0 8 188928 0 8192 8192 19 4 57 0 1 188416 0 512 512 18 342 206 0 30 184320 0 512 512 158 202 158 0 30 184320 0 2048 2048 6 82 5643 0 8 180224 0 1024 1024 9 167 295 0 16 180224 0 ttyoutq 256 173 517 282 0 62 176640 0 256 256 52 638 323 0 62 176640 0 256 256 2 688 3606 0 62 176640 0 256 256 17 673 156 0 62 176640 0 512 512 53 283 96 0 30 172032 0 512 512 62 274 98 0 30 172032 0 cpuset 104 27 1492 27 0 126 157976 0 512 512 135 169 137 0 30 155648 0 64 64 15 2316 61 0 254 149184 0 4 Bucket 48 35 3073 21561 0 254 149184 0 SLEEPQUEUE 88 298 1238 298 0 126 135168 0 TMPFS dirent 64 0 2079 800000 0 254 133056 0 ttyinq 160 330 495 540 0 62 132000 0 Files 80 110 1540 840669 0 126 132000 0 8 Bucket 80 199 1451 24210 0 126 132000 0 65536 65536 2 0 2 0 1 131072 0 65536 65536 2 0 2 0 1 131072 0 TMPFS node 232 1 560 800002 0 62 130152 0 rl_entry 40 76 3055 76 0 254 125240 0 ripcb 488 1 255 1 0 254 124928 0 16 Bucket 144 280 560 54562 0 62 120960 0 8192 8192 12 2 1926 0 1 114688 0 2048 2048 18 38 835 0 8 114688 0 TURNSTILE 136 298 521 298 0 62 111384 0 routing nhops 256 7 428 15 0 62 111360 0 PWD 32 17 3385 3024 0 254 108864 0 32 32 589 2813 23300 0 254 108864 0 udpcb 32 20 3130 176 0 254 100800 0 32 32 115 3035 332 0 254 100800 0 32 32 219 2931 11943 0 254 100800 0 32 32 185 2965 2299 0 254 100800 0 32768 32768 0 3 4 0 1 98304 0 512 512 22 162 220 0 30 94208 0 kenv 258 0 360 19372 0 30 92880 0 2 Bucket 32 230 2668 20614 0 254 92736 0 rtentry 208 12 425 15 0 62 90896 0 procdesc 136 1 637 42 0 62 86768 0 32 32 70 2576 82 0 254 84672 0 128 128 55 596 141 0 126 83328 0 16384 16384 5 0 5 0 1 81920 0 1024 1024 5 75 29 0 16 81920 0 mt_stats_zone 64 439 841 439 0 254 81920 0 UMA Kegs 384 198 7 198 0 30 78720 0 32 32 45 2349 53 0 254 76608 0 KMAP ENTRY 96 21 774 21 0 126 76320 0 32 32 32 2110 97 0 254 68544 0 32768 32768 1 1 2330 0 1 65536 0 16384 16384 1 3 13 0 1 65536 0 2048 2048 5 27 5 0 8 65536 0 1024 1024 13 51 13 0 16 65536 0 1024 1024 30 34 30 0 16 65536 0 512 512 21 99 21 0 30 61440 0 8192 8192 7 0 7 0 1 57344 0 4096 4096 1 13 14 0 2 57344 0 16 16 519 2981 914822 0 254 56000 0 16 16 170 3080 764 0 254 52000 0 16 16 307 2943 19936 0 254 52000 0 16384 16384 3 0 3 0 1 49152 0 4096 4096 1 11 2301 0 2 49152 0 2048 2048 1 23 21 0 8 49152 0 Mountpoints 2944 4 12 6 0 4 47104 0 syncache 168 0 264 1 0 254 44352 0 4096 4096 6 4 6 0 2 40960 0 64 pcpu 8 3248 1360 3249 0 254 36864 0 16 16 49 2201 136 0 254 36000 0 32768 32768 1 0 1 0 1 32768 0 32768 32768 1 0 1 0 1 32768 0 2048 2048 4 12 4 0 8 32768 0 1024 1024 2 30 76 0 16 32768 0 512 512 6 58 6246 0 30 32768 0 mt_zone 24 439 897 439 0 254 32064 0 16 16 27 1973 27 0 254 32000 0 L VFS Cache 328 64 32 64 0 30 31488 0 sctp_laddr 48 0 588 4 0 254 28224 0 16 16 251 1499 261 0 254 28000 0 8192 8192 2 1 3 0 1 24576 0 16 16 42 1458 89 0 254 24000 0 rentr 24 0 835 4 0 254 20040 0 epoch_record pcpu 256 4 60 4 0 62 16384 0 8192 8192 2 0 2 0 1 16384 0 8192 8192 2 0 2 0 1 16384 0 4096 4096 3 1 4 0 2 16384 0 4096 4096 2 2 14 0 2 16384 0 2048 2048 1 7 1 0 8 16384 0 MAP 216 2 69 2 0 62 15336 0 FPU_save_area 832 1 17 1 0 16 14976 0 vmem 1856 1 7 1 0 8 14848 0 clpbuf 984 0 10 7 0 2 9840 0 8192 8192 1 0 1 0 1 8192 0 SMR CPU 32 1 254 1 0 254 8160 0 SMR SHARED 24 1 254 1 0 254 6120 0 int pcpu 4 66 958 66 0 254 4096 0 vtnet_tx_hdr 24 0 167 0 0 254 4008 0 UMA Slabs 1 176 10 12 10 0 62 3872 0 FFS1 dinode 128 0 0 0 0 126 0 0 swblk 136 0 0 0 0 62 0 0 swpctrie 144 0 0 0 0 62 0 0 udplite_inpcb 488 0 0 0 0 254 0 0 sctp_asconf_ack 48 0 0 0 0 254 0 0 sctp_asconf 40 0 0 0 0 254 0 0 sctp_stream_msg_out 112 0 0 0 0 254 0 0 sctp_readq 152 0 0 0 0 254 0 0 sctp_chunk 152 0 0 0 0 254 0 0 sctp_raddr 736 0 0 0 0 254 0 0 sctp_asoc 2288 0 0 0 0 254 0 0 sctp_ep 1280 0 0 0 0 254 0 0 tcp_log_node 120 0 0 0 0 126 0 0 tcp_log_bucket 176 0 0 0 0 62 0 0 tcp_log 416 0 0 0 0 254 0 0 tcpreass 48 0 0 0 0 254 0 0 tfo_ccache_entries 80 0 0 0 0 126 0 0 tfo 4 0 0 0 0 254 0 0 sackhole 32 0 0 0 0 254 0 0 hostcache 96 0 0 0 0 254 0 0 tcptw 88 0 0 0 0 254 0 0 ipq 56 0 0 0 0 254 0 0 IPsec SA lft_c 16 0 0 0 0 254 0 0 KNOTE 160 0 0 0 0 62 0 0 itimer 352 0 0 0 0 30 0 0 AIOLIO 280 0 0 0 0 30 0 0 AIOCB 752 0 0 0 0 16 0 0 AIOP 32 0 0 0 0 254 0 0 AIO 208 0 0 0 0 62 0 0 NCLNODE 744 0 0 0 0 16 0 0 LTS VFS Cache 368 0 0 0 0 30 0 0 STS VFS Cache 148 0 0 0 0 62 0 0 VNODEPOLL 120 0 0 0 0 126 0 0 crypto_session 72 0 0 0 0 126 0 0 cryptop 280 0 0 0 0 30 0 0 nvme_request 128 0 0 0 0 126 0 0 DMAR_MAP_ENTRY 120 0 0 0 0 126 0 0 mbuf_jumbo_16k 16384 0 0 0 0 254 0 0 mbuf_jumbo_9k 9216 0 0 0 0 254 0 0 audit_record 1280 0 0 0 0 8 0 0 domainset 40 0 0 0 0 254 0 0 MAC labels 40 0 0 0 0 254 0 0 vnpbuf 984 0 0 0 0 8 0 0 mdpbuf 984 0 0 0 0 0 0 0 nfspbuf 984 0 0 0 0 2 0 0 swwbuf 984 0 0 0 0 0 0 0 swrbuf 984 0 0 0 0 2 0 0 umtx_shm 88 0 0 0 0 126 0 0 umtx pi 96 0 0 0 0 126 0 0 rangeset pctrie nodes 144 0 0 0 0 62 0 0 65536 65536 0 0 0 0 1 0 0 65536 65536 0 0 0 0 1 0 0 32768 32768 0 0 0 0 1 0 0 16384 16384 0 0 0 0 1 0 0 16384 16384 0 0 0 0 1 0 0 16384 16384 0 0 0 0 1 0 0 fakepg 104 0 0 0 0 126 0 0 UMA Hash 256 0 0 0 0 62 0 0 db:0:pho> show umacache Zone Size Used Free Requests Bucket debugnet_mbuf_packet 2048 0 0 0 0 debugnet_mbuf_cluster 2048 -6144 0 0 0 debugnet_mbuf 256 -10240 0 0 0 vm pgcache 4096 27862 300 145432 6 vm pgcache 4096 14356 920 640632 11 buf free cache 984 5033 151 5185 16 buffer arena-65 65536 0 0 0 1 buffer arena-61 61440 0 0 0 1 buffer arena-57 57344 0 0 0 1 buffer arena-53 53248 0 0 0 1 buffer arena-49 49152 0 0 0 1 buffer arena-45 45056 0 0 0 1 buffer arena-40 40960 0 0 0 1 buffer arena-36 36864 0 0 0 1 buffer arena-32 32768 1894 22 2001 1 buffer arena-28 28672 0 0 0 1 buffer arena-24 24576 0 0 0 1 buffer arena-20 20480 0 0 0 1 buffer arena-16 16384 3 3 10 1 buffer arena-12 12288 0 0 0 1 buffer arena-81 8192 0 0 0 1 buffer arena-40 4096 0 0 0 2 kstack_cache 16384 228 20 257 1 db:0:pho> acttrace Tracing command idle pid 11 tid 100003 td 0xfffffe003e3d9300 (CPU 0) kdb_alt_break_internal() at kdb_alt_break_internal+0x155/frame 0xfffffe00add46880 kdb_alt_break() at kdb_alt_break+0xb/frame 0xfffffe00add46890 uart_intr_rxready() at uart_intr_rxready+0xf5/frame 0xfffffe00add468c0 uart_intr() at uart_intr+0x128/frame 0xfffffe00add46900 intr_event_handle() at intr_event_handle+0xce/frame 0xfffffe00add46950 intr_execute_handlers() at intr_execute_handlers+0x66/frame 0xfffffe00add46980 Xapic_isr1() at Xapic_isr1+0xdc/frame 0xfffffe00add46980 --- interrupt, rip = 0xffffffff81034d26, rsp = 0xfffffe00add46a50, rbp = 0xfffffe00add46a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add46a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add46aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add46ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add46ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add46bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add46bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add46bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100004 td 0xfffffe003e3d8c00 (CPU 1) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e17de00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e17de10 trap() at trap+0x56/frame 0xfffffe003e17df20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e17df20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add4ba50, rbp = 0xfffffe00add4ba50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add4ba50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add4baa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add4bac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add4bae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add4bbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add4bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add4bbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100005 td 0xfffffe003e3d8500 (CPU 2) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e189e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e189e10 trap() at trap+0x56/frame 0xfffffe003e189f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e189f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add50a50, rbp = 0xfffffe00add50a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add50a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add50aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add50ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add50ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add50bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add50bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add50bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100006 td 0xfffffe003e3d7e00 (CPU 3) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e195e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e195e10 trap() at trap+0x56/frame 0xfffffe003e195f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e195f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add55a50, rbp = 0xfffffe00add55a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add55a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add55aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add55ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add55ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add55bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add55bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add55bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100007 td 0xfffffe003e3d7700 (CPU 4) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1a1e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1a1e10 trap() at trap+0x56/frame 0xfffffe003e1a1f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1a1f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add5aa50, rbp = 0xfffffe00add5aa50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add5aa50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add5aaa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add5aac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add5aae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add5abb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add5abf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add5abf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100008 td 0xfffffe003e3d7000 (CPU 5) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1ade00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1ade10 trap() at trap+0x56/frame 0xfffffe003e1adf20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1adf20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add5fa50, rbp = 0xfffffe00add5fa50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add5fa50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add5faa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add5fac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add5fae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add5fbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add5fbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add5fbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100009 td 0xfffffe003e3e1a00 (CPU 6) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1b9e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1b9e10 trap() at trap+0x56/frame 0xfffffe003e1b9f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1b9f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add64a50, rbp = 0xfffffe00add64a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add64a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add64aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add64ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add64ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add64bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add64bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add64bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100010 td 0xfffffe003e3e1300 (CPU 7) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1c5e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1c5e10 trap() at trap+0x56/frame 0xfffffe003e1c5f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1c5f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add69a50, rbp = 0xfffffe00add69a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add69a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add69aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add69ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add69ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add69bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add69bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add69bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100011 td 0xfffffe003e3e0c00 (CPU 8) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1d1e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1d1e10 trap() at trap+0x56/frame 0xfffffe003e1d1f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1d1f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add6ea50, rbp = 0xfffffe00add6ea50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add6ea50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add6eaa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add6eac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add6eae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add6ebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add6ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add6ebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100012 td 0xfffffe003e3e0500 (CPU 9) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1dde00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1dde10 trap() at trap+0x56/frame 0xfffffe003e1ddf20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1ddf20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add73a50, rbp = 0xfffffe00add73a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add73a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add73aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add73ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add73ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add73bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add73bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add73bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100013 td 0xfffffe003e3dfe00 (CPU 10) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1e9e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1e9e10 trap() at trap+0x56/frame 0xfffffe003e1e9f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1e9f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add78a50, rbp = 0xfffffe00add78a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add78a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add78aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add78ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add78ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add78bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add78bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add78bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100014 td 0xfffffe003e3df700 (CPU 11) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1f5e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1f5e10 trap() at trap+0x56/frame 0xfffffe003e1f5f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1f5f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add7da50, rbp = 0xfffffe00add7da50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add7da50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add7daa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add7dac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add7dae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add7dbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add7dbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add7dbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- db:0:pho> ps pid ppid pgrp uid state wmesg wchan cmd 2429 2428 2429 2006 Ss+ select 0xfffff80018e116c0 bash 2428 2425 2425 2006 S select 0xfffff80018655140 sshd 2425 2359 2425 0 Ss select 0xfffff80018a33d40 sshd 2422 2421 2422 0 S+ select 0xfffff80003ec4ec0 bash 2421 1 2421 0 Ss+ wait 0xfffff801c8ab4000 login 2420 1 2420 0 Ss+ ttyin 0xfffff800041eb0b0 getty 2419 1 2419 0 Ss+ ttyin 0xfffff800182a3cb0 getty 2418 1 2418 0 Ss+ ttyin 0xfffff800182a20b0 getty 2417 1 2417 0 Ss+ ttyin 0xfffff800182a24b0 getty 2416 1 2416 0 Ss+ ttyin 0xfffff800182a28b0 getty 2415 1 2415 0 Ss+ ttyin 0xfffff800182a2cb0 getty 2414 1 2414 0 Ss+ ttyin 0xfffff800182a50b0 getty 2413 1 2413 0 Ss+ ttyin 0xfffff800182a54b0 getty 2412 1 2412 0 Ss+ ttyin 0xfffff800182a58b0 getty 2363 1 2363 0 Ss nanslp 0xffffffff81caea93 cron 2359 1 2359 0 Ss select 0xfffff80018656f40 sshd 2331 1 2331 0 Ss select 0xfffff80018673440 powerd 2328 1 2328 123 Ss (threaded) ntpd 100195 S select 0xfffff80018a33dc0 ntpd 2265 1 2265 0 Ss rpcsvc 0xfffff80018e0e060 NLM: master 2262 1 2262 0 Ss select 0xfffff80003ec4d40 rpc.statd 2216 1 2216 0 Ss nanslp 0xffffffff81caea99 watchdogd 2068 1 2068 0 Ss select 0xfffff8004942f9c0 rpcbind 2058 1 2058 0 Ss select 0xfffff80018673540 syslogd 1987 1 1987 0 Ss select 0xfffff8000415f640 devd 1982 1 1982 65 Ss select 0xfffff8000415f6c0 dhclient 1923 1 1923 0 Ss select 0xfffff80018e11740 dhclient 1920 1 1920 0 Ss select 0xfffff800184e0540 dhclient 34 0 0 0 DL syncer 0xffffffff81d999d8 [syncer] 33 0 0 0 DL vlruwt 0xfffff800182e8000 [vnlru] 32 0 0 0 DL (threaded) [bufdaemon] 100130 D qsleep 0xffffffff81d98cf0 [bufdaemon] 100131 D - 0xffffffff8180aa00 [bufspacedaemon-0] 100132 D - 0xffffffff81812cc0 [bufspacedaemon-1] 100133 D - 0xffffffff8181af80 [bufspacedaemon-2] 100134 D - 0xffffffff81823240 [bufspacedaemon-3] 100135 D - 0xffffffff8182b500 [bufspacedaemon-4] 100136 D - 0xffffffff818337c0 [bufspacedaemon-5] 100137 D - 0xffffffff8183ba80 [bufspacedaemon-6] 100151 D sdflush 0xfffff80018a2ace8 [/ worker] 100207 D sdflush 0xfffff800187e48e8 [/tmp worker] 31 0 0 0 DL psleep 0xffffffff81dbdbc8 [vmdaemon] 30 0 0 0 DL (threaded) [pagedaemon] 100128 D psleep 0xffffffff81db2058 [dom0] 100138 D launds 0xffffffff81db2064 [laundry: dom0] 100139 D umarcl 0xffffffff80f0be70 [uma] 29 0 0 0 DL idle 0xfffff800181f8520 [enc_daemon1] 28 0 0 0 DL idle 0xfffff800181f8a40 [enc_daemon0] 27 0 0 0 DL - 0xffffffff81ae2678 [rand_harvestq] 26 0 0 0 DL waiting 0xffffffff81d9c150 [sctp_iterator] 25 0 0 0 DL - 0xffffffff81d9862c [soaiod4] 24 0 0 0 DL - 0xffffffff81d9862c [soaiod3] 23 0 0 0 DL - 0xffffffff81d9862c [soaiod2] 22 0 0 0 DL - 0xffffffff81d9862c [soaiod1] 21 0 0 0 DL (threaded) [usb] 100096 D - 0xfffffe00d2d84440 [usbus0] 100097 D - 0xfffffe00d2d84498 [usbus0] 100098 D - 0xfffffe00d2d844f0 [usbus0] 100099 D - 0xfffffe00d2d84548 [usbus0] 100100 D - 0xfffffe00d2d845a0 [usbus0] 100102 D - 0xfffffe003e4afcf0 [usbus1] 100103 D - 0xfffffe003e4afd48 [usbus1] 100104 D - 0xfffffe003e4afda0 [usbus1] 100105 D - 0xfffffe003e4afdf8 [usbus1] 100106 D - 0xfffffe003e4afe50 [usbus1] 100107 D - 0xfffffe00d2e34cf0 [usbus2] 100108 D - 0xfffffe00d2e34d48 [usbus2] 100109 D - 0xfffffe00d2e34da0 [usbus2] 100110 D - 0xfffffe00d2e34df8 [usbus2] 100111 D - 0xfffffe00d2e34e50 [usbus2] 20 0 0 0 RL (threaded) [cam] 100091 D - 0xffffffff819ba3c0 [doneq0] 100092 RunQ [doneq1] 100093 D - 0xffffffff819ba4c0 [doneq2] 100125 D - 0xffffffff819ba290 [scanner] 19 0 0 0 DL crypto_ 0xfffff80003ab2c50 [crypto returns 11] 18 0 0 0 DL crypto_ 0xfffff80003ab2bf0 [crypto returns 10] 17 0 0 0 DL crypto_ 0xfffff80003ab2b90 [crypto returns 9] 16 0 0 0 DL crypto_ 0xfffff80003ab2b30 [crypto returns 8] 15 0 0 0 DL crypto_ 0xfffff80003ab2ad0 [crypto returns 7] 9 0 0 0 DL crypto_ 0xfffff80003ab2a70 [crypto returns 6] 8 0 0 0 DL crypto_ 0xfffff80003ab2a10 [crypto returns 5] 7 0 0 0 DL crypto_ 0xfffff80003ab29b0 [crypto returns 4] 6 0 0 0 DL crypto_ 0xfffff80003ab2950 [crypto returns 3] 5 0 0 0 DL crypto_ 0xfffff80003ab28f0 [crypto returns 2] 4 0 0 0 DL crypto_ 0xfffff80003ab2890 [crypto returns 1] 3 0 0 0 DL crypto_ 0xfffff80003ab2830 [crypto returns 0] 2 0 0 0 DL crypto_ 0xffffffff81daf900 [crypto] 14 0 0 0 DL seqstat 0xfffff80003260488 [sequencer 00] 13 0 0 0 DL (threaded) [geom] 100062 D - 0xffffffff81c8da40 [g_event] 100063 D - 0xffffffff81c8da48 [g_up] 100064 D - 0xffffffff81c8da50 [g_down] 12 0 0 0 WL (threaded) [intr] 100042 I [swi6: task queue] 100043 I [swi6: Giant taskq] 100045 I [swi5: fast taskq] 100047 I [swi3: vm] 100048 I [swi1: netisr 0] 100049 I [swi4: clock (0)] 100050 I [swi4: clock (1)] 100051 I [swi4: clock (2)] 100052 I [swi4: clock (3)] 100053 I [swi4: clock (4)] 100054 I [swi4: clock (5)] 100055 I [swi4: clock (6)] 100056 I [swi4: clock (7)] 100057 I [swi4: clock (8)] 100058 I [swi4: clock (9)] 100059 I [swi4: clock (10)] 100060 I [swi4: clock (11)] 100094 I [irq56: ahci0] 100095 I [irq19: xhci0] 100101 I [irq18: ehci0 ehci1] 100112 I [irq71: ahci1] 100113 I [swi0: uart uart] 100173 I [irq72: ioat0] 100174 I [irq73: ioat1] 100175 I [irq74: ioat2] 100176 I [irq75: ioat3] 100177 I [irq76: ioat4] 100178 I [irq77: ioat5] 100179 I [irq78: ioat6] 100180 I [irq79: ioat7] 11 0 0 0 RL (threaded) [idle] 100003 Run CPU 0 [idle: cpu0] 100004 Run CPU 1 [idle: cpu1] 100005 Run CPU 2 [idle: cpu2] 100006 Run CPU 3 [idle: cpu3] 100007 Run CPU 4 [idle: cpu4] 100008 Run CPU 5 [idle: cpu5] 100009 Run CPU 6 [idle: cpu6] 100010 Run CPU 7 [idle: cpu7] 100011 Run CPU 8 [idle: cpu8] 100012 Run CPU 9 [idle: cpu9] 100013 Run CPU 10 [idle: cpu10] 100014 Run CPU 11 [idle: cpu11] 1 0 1 0 SLs wait 0xfffff800038ee000 [init] 10 0 0 0 DL audit_w 0xffffffff81dafd18 [audit] 0 0 0 0 DLs (threaded) [kernel] 100000 D swapin 0xffffffff81c8dfd0 [swapper] 100015 D - 0xfffff80003930100 [softirq_0] 100016 D - 0xfffff80003930000 [softirq_1] 100017 D - 0xfffff80003931e00 [softirq_2] 100018 D - 0xfffff80003931d00 [softirq_3] 100019 D - 0xfffff80003931c00 [softirq_4] 100020 D - 0xfffff80003931b00 [softirq_5] 100021 D - 0xfffff80003931a00 [softirq_6] 100022 D - 0xfffff80003931900 [softirq_7] 100023 D - 0xfffff80003931800 [softirq_8] 100024 D - 0xfffff80003931700 [softirq_9] 100025 D - 0xfffff80003931600 [softirq_10] 100026 D - 0xfffff80003931500 [softirq_11] 100027 D - 0xfffff80003931400 [if_io_tqg_0] 100028 D - 0xfffff80003931300 [if_io_tqg_1] 100029 D - 0xfffff80003931200 [if_io_tqg_2] 100030 D - 0xfffff80003931100 [if_io_tqg_3] 100031 D - 0xfffff80003931000 [if_io_tqg_4] 100032 D - 0xfffff8000392ee00 [if_io_tqg_5] 100033 D - 0xfffff8000392ed00 [if_io_tqg_6] 100034 D - 0xfffff8000392ec00 [if_io_tqg_7] 100035 D - 0xfffff8000392eb00 [if_io_tqg_8] 100036 D - 0xfffff8000392ea00 [if_io_tqg_9] 100037 D - 0xfffff8000392e900 [if_io_tqg_10] 100038 D - 0xfffff8000392e800 [if_io_tqg_11] 100039 D - 0xfffff8000392e700 [if_config_tqg_0] 100040 D - 0xfffff80003929e00 [in6m_free taskq] 100041 D - 0xfffff80003929d00 [kqueue_ctx taskq] 100044 D - 0xfffff80003929800 [thread taskq] 100046 D - 0xfffff80003929500 [aiod_kick taskq] 100061 D - 0xfffff80003a06900 [firmware taskq] 100066 D - 0xfffff80003a06800 [crypto_0] 100067 D - 0xfffff80003a06800 [crypto_1] 100068 D - 0xfffff80003a06800 [crypto_2] 100069 D - 0xfffff80003a06800 [crypto_3] 100070 D - 0xfffff80003a06800 [crypto_4] 100071 D - 0xfffff80003a06800 [crypto_5] 100072 D - 0xfffff80003a06800 [crypto_6] 100073 D - 0xfffff80003a06800 [crypto_7] 100074 D - 0xfffff80003a06800 [crypto_8] 100075 D - 0xfffff80003a06800 [crypto_9] 100076 D - 0xfffff80003a06800 [crypto_10] 100077 D - 0xfffff80003a06800 [crypto_11] 100114 D - 0xfffff800041fd000 [mca taskq] 100121 D - 0xfffff8001832cb00 [acpi_task_0] 100122 D - 0xfffff8001832cb00 [acpi_task_1] 100123 D - 0xfffff8001832cb00 [acpi_task_2] 100124 D - 0xfffff80003a06700 [CAM taskq] db:0:pho> allt Tracing command bash pid 2429 tid 100165 td 0xfffffe00d55c0800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda72700 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda72720 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda72760 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00dda727c0 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00dda727d0 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00dda72830 seltdwait() at seltdwait+0x8d/frame 0xfffffe00dda72870 kern_select() at kern_select+0x87a/frame 0xfffffe00dda72a50 sys_pselect() at sys_pselect+0x127/frame 0xfffffe00dda72ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00dda72bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00dda72bf0 --- syscall (522, FreeBSD ELF64, sys_pselect), rip = 0x80054370a, rsp = 0x7fffffffd6d8, rbp = 0x7fffffffd7a0 --- Tracing command sshd pid 2428 tid 100144 td 0xfffffe00d5cccc00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda09740 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda09760 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda097a0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00dda09800 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00dda09810 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00dda09870 seltdwait() at seltdwait+0x8d/frame 0xfffffe00dda098b0 kern_select() at kern_select+0x87a/frame 0xfffffe00dda09a90 sys_select() at sys_select+0x56/frame 0xfffffe00dda09ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00dda09bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00dda09bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x8008f143a, rsp = 0x7fffffffa4f8, rbp = 0x7fffffffa530 --- Tracing command sshd pid 2425 tid 100152 td 0xfffffe00d55c1000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda317c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda317e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda31820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00dda31880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00dda31890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00dda318f0 seltdwait() at seltdwait+0x8d/frame 0xfffffe00dda31930 kern_poll() at kern_poll+0x48b/frame 0xfffffe00dda31ab0 sys_poll() at sys_poll+0x50/frame 0xfffffe00dda31ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00dda31bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00dda31bf0 --- syscall (209, FreeBSD ELF64, sys_poll), rip = 0x800894baa, rsp = 0x7fffffffe558, rbp = 0x7fffffffe590 --- Tracing command bash pid 2422 tid 100188 td 0xfffffe00d55a2800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddb21700 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddb21720 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddb21760 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddb217c0 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddb217d0 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddb21830 seltdwait() at seltdwait+0x8d/frame 0xfffffe00ddb21870 kern_select() at kern_select+0x87a/frame 0xfffffe00ddb21a50 sys_pselect() at sys_pselect+0x127/frame 0xfffffe00ddb21ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddb21bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddb21bf0 --- syscall (522, FreeBSD ELF64, sys_pselect), rip = 0x80054370a, rsp = 0x7fffffffd688, rbp = 0x7fffffffd750 --- Tracing command login pid 2421 tid 100220 td 0xfffffe00d394a800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddbfd6e0 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddbfd700 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddbfd740 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddbfd7a0 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddbfd7b0 _sleep() at _sleep+0x2c3/frame 0xfffffe00ddbfd850 kern_wait6() at kern_wait6+0x482/frame 0xfffffe00ddbfd8e0 sys_wait4() at sys_wait4+0x7b/frame 0xfffffe00ddbfdad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddbfdbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddbfdbf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x8004045ea, rsp = 0x7fffffffeaf8, rbp = 0x7fffffffecb0 --- Tracing command getty pid 2420 tid 100209 td 0xfffffe00d396b700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddbc67c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddbc67e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddbc6820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddbc6880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddbc6890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddbc68f0 tty_wait() at tty_wait+0x42/frame 0xfffffe00ddbc6920 ttydisc_read() at ttydisc_read+0x20a/frame 0xfffffe00ddbc6980 ttydev_read() at ttydev_read+0x4b/frame 0xfffffe00ddbc69b0 devfs_read_f() at devfs_read_f+0xde/frame 0xfffffe00ddbc6a10 dofileread() at dofileread+0x81/frame 0xfffffe00ddbc6a60 sys_read() at sys_read+0xc0/frame 0xfffffe00ddbc6ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddbc6bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddbc6bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x80044645a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffebc0 --- Tracing command getty pid 2419 tid 100210 td 0xfffffe00d396b000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddbcb7c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddbcb7e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddbcb820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddbcb880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddbcb890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddbcb8f0 tty_wait() at tty_wait+0x42/frame 0xfffffe00ddbcb920 ttydisc_read() at ttydisc_read+0x20a/frame 0xfffffe00ddbcb980 ttydev_read() at ttydev_read+0x4b/frame 0xfffffe00ddbcb9b0 devfs_read_f() at devfs_read_f+0xde/frame 0xfffffe00ddbcba10 dofileread() at dofileread+0x81/frame 0xfffffe00ddbcba60 sys_read() at sys_read+0xc0/frame 0xfffffe00ddbcbad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddbcbbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddbcbbf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x80044645a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffebc0 --- Tracing command getty pid 2418 tid 100219 td 0xfffffe00d3924c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddbf87c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddbf87e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddbf8820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddbf8880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddbf8890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddbf88f0 tty_wait() at tty_wait+0x42/frame 0xfffffe00ddbf8920 ttydisc_read() at ttydisc_read+0x20a/frame 0xfffffe00ddbf8980 ttydev_read() at ttydev_read+0x4b/frame 0xfffffe00ddbf89b0 devfs_read_f() at devfs_read_f+0xde/frame 0xfffffe00ddbf8a10 dofileread() at dofileread+0x81/frame 0xfffffe00ddbf8a60 sys_read() at sys_read+0xc0/frame 0xfffffe00ddbf8ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddbf8bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddbf8bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x80044645a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffebc0 --- Tracing command getty pid 2417 tid 100218 td 0xfffffe00d3925300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddbf37c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddbf37e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddbf3820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddbf3880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddbf3890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddbf38f0 tty_wait() at tty_wait+0x42/frame 0xfffffe00ddbf3920 ttydisc_read() at ttydisc_read+0x20a/frame 0xfffffe00ddbf3980 ttydev_read() at ttydev_read+0x4b/frame 0xfffffe00ddbf39b0 devfs_read_f() at devfs_read_f+0xde/frame 0xfffffe00ddbf3a10 dofileread() at dofileread+0x81/frame 0xfffffe00ddbf3a60 sys_read() at sys_read+0xc0/frame 0xfffffe00ddbf3ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddbf3bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddbf3bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x80044645a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffebc0 --- Tracing command getty pid 2416 tid 100156 td 0xfffffe00d55b2800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda457c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda457e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda45820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00dda45880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00dda45890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00dda458f0 tty_wait() at tty_wait+0x42/frame 0xfffffe00dda45920 ttydisc_read() at ttydisc_read+0x20a/frame 0xfffffe00dda45980 ttydev_read() at ttydev_read+0x4b/frame 0xfffffe00dda459b0 devfs_read_f() at devfs_read_f+0xde/frame 0xfffffe00dda45a10 dofileread() at dofileread+0x81/frame 0xfffffe00dda45a60 sys_read() at sys_read+0xc0/frame 0xfffffe00dda45ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00dda45bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00dda45bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x80044645a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffebc0 --- Tracing command getty pid 2415 tid 100182 td 0xfffffe00d49fcc00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddaf77c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddaf77e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddaf7820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddaf7880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddaf7890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddaf78f0 tty_wait() at tty_wait+0x42/frame 0xfffffe00ddaf7920 ttydisc_read() at ttydisc_read+0x20a/frame 0xfffffe00ddaf7980 ttydev_read() at ttydev_read+0x4b/frame 0xfffffe00ddaf79b0 devfs_read_f() at devfs_read_f+0xde/frame 0xfffffe00ddaf7a10 dofileread() at dofileread+0x81/frame 0xfffffe00ddaf7a60 sys_read() at sys_read+0xc0/frame 0xfffffe00ddaf7ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddaf7bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddaf7bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x80044645a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffebc0 --- Tracing command getty pid 2414 tid 100192 td 0xfffffe00d55bf300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddb357c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddb357e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddb35820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddb35880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddb35890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddb358f0 tty_wait() at tty_wait+0x42/frame 0xfffffe00ddb35920 ttydisc_read() at ttydisc_read+0x20a/frame 0xfffffe00ddb35980 ttydev_read() at ttydev_read+0x4b/frame 0xfffffe00ddb359b0 devfs_read_f() at devfs_read_f+0xde/frame 0xfffffe00ddb35a10 dofileread() at dofileread+0x81/frame 0xfffffe00ddb35a60 sys_read() at sys_read+0xc0/frame 0xfffffe00ddb35ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddb35bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddb35bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x80044645a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffebc0 --- Tracing command getty pid 2413 tid 100185 td 0xfffffe00d55af000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddb127c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddb127e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddb12820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddb12880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddb12890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddb128f0 tty_wait() at tty_wait+0x42/frame 0xfffffe00ddb12920 ttydisc_read() at ttydisc_read+0x20a/frame 0xfffffe00ddb12980 ttydev_read() at ttydev_read+0x4b/frame 0xfffffe00ddb129b0 devfs_read_f() at devfs_read_f+0xde/frame 0xfffffe00ddb12a10 dofileread() at dofileread+0x81/frame 0xfffffe00ddb12a60 sys_read() at sys_read+0xc0/frame 0xfffffe00ddb12ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddb12bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddb12bf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x80044645a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffebc0 --- Tracing command getty pid 2412 tid 100142 td 0xfffffe00d5912c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d87fd7c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00d87fd7e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d87fd820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00d87fd880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00d87fd890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00d87fd8f0 tty_wait() at tty_wait+0x42/frame 0xfffffe00d87fd920 ttydisc_read() at ttydisc_read+0x20a/frame 0xfffffe00d87fd980 ttydev_read() at ttydev_read+0x4b/frame 0xfffffe00d87fd9b0 devfs_read_f() at devfs_read_f+0xde/frame 0xfffffe00d87fda10 dofileread() at dofileread+0x81/frame 0xfffffe00d87fda60 sys_read() at sys_read+0xc0/frame 0xfffffe00d87fdad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00d87fdbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00d87fdbf0 --- syscall (3, FreeBSD ELF64, sys_read), rip = 0x80044645a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffebc0 --- Tracing command cron pid 2363 tid 100205 td 0xfffffe00d5ccb700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddba6870 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddba6890 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddba68d0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddba6930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x12/frame 0xfffffe00ddba6970 _sleep() at _sleep+0x258/frame 0xfffffe00ddba6a10 kern_clock_nanosleep() at kern_clock_nanosleep+0x1e2/frame 0xfffffe00ddba6a90 sys_nanosleep() at sys_nanosleep+0x3b/frame 0xfffffe00ddba6ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddba6bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddba6bf0 --- syscall (240, FreeBSD ELF64, sys_nanosleep), rip = 0x8003eb74a, rsp = 0x7fffffffea58, rbp = 0x7fffffffec40 --- Tracing command sshd pid 2359 tid 100203 td 0xfffffe00d396cc00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddb9c740 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddb9c760 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddb9c7a0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddb9c800 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddb9c810 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddb9c870 seltdwait() at seltdwait+0x8d/frame 0xfffffe00ddb9c8b0 kern_select() at kern_select+0x87a/frame 0xfffffe00ddb9ca90 sys_select() at sys_select+0x56/frame 0xfffffe00ddb9cad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddb9cbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddb9cbf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x8008f143a, rsp = 0x7fffffffe5e8, rbp = 0x7fffffffe620 --- Tracing command powerd pid 2331 tid 100206 td 0xfffffe00d3948500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddbab700 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddbab720 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddbab760 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddbab7c0 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x12/frame 0xfffffe00ddbab800 _cv_timedwait_sig_sbt() at _cv_timedwait_sig_sbt+0x184/frame 0xfffffe00ddbab870 seltdwait() at seltdwait+0x6b/frame 0xfffffe00ddbab8b0 kern_select() at kern_select+0x87a/frame 0xfffffe00ddbaba90 sys_select() at sys_select+0x56/frame 0xfffffe00ddbabad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddbabbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddbabbf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80044343a, rsp = 0x7fffffffeb08, rbp = 0x7fffffffec50 --- Tracing command ntpd pid 2328 tid 100195 td 0xfffffe003e4c5300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddb74740 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddb74760 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddb747a0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddb74800 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddb74810 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddb74870 seltdwait() at seltdwait+0x8d/frame 0xfffffe00ddb748b0 kern_select() at kern_select+0x87a/frame 0xfffffe00ddb74a90 sys_select() at sys_select+0x56/frame 0xfffffe00ddb74ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddb74bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddb74bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80082043a, rsp = 0x7fffffffde78, rbp = 0x7fffffffdeb0 --- Tracing command rpc.lockd pid 2265 tid 100148 td 0xfffffe00d55afe00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda1d640 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda1d660 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda1d6a0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00dda1d700 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x12/frame 0xfffffe00dda1d740 _cv_timedwait_sig_sbt() at _cv_timedwait_sig_sbt+0x184/frame 0xfffffe00dda1d7b0 svc_run_internal() at svc_run_internal+0xafe/frame 0xfffffe00dda1d8f0 svc_run() at svc_run+0x253/frame 0xfffffe00dda1d950 sys_nlm_syscall() at sys_nlm_syscall+0x74d/frame 0xfffffe00dda1dad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00dda1dbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00dda1dbf0 --- syscall (154, FreeBSD ELF64, sys_nlm_syscall), rip = 0x8002fb82a, rsp = 0x7fffffffeb78, rbp = 0x7fffffffec40 --- Tracing command rpc.statd pid 2262 tid 100191 td 0xfffffe00d55bfa00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddb30700 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddb30720 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddb30760 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddb307c0 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x12/frame 0xfffffe00ddb30800 _cv_timedwait_sig_sbt() at _cv_timedwait_sig_sbt+0x184/frame 0xfffffe00ddb30870 seltdwait() at seltdwait+0x6b/frame 0xfffffe00ddb308b0 kern_select() at kern_select+0x87a/frame 0xfffffe00ddb30a90 sys_select() at sys_select+0x56/frame 0xfffffe00ddb30ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddb30bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddb30bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80043943a, rsp = 0x7fffffffea18, rbp = 0x7fffffffeb60 --- Tracing command watchdogd pid 2216 tid 100202 td 0xfffffe00d3948c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddb97870 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddb97890 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddb978d0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddb97930 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x12/frame 0xfffffe00ddb97970 _sleep() at _sleep+0x258/frame 0xfffffe00ddb97a10 kern_clock_nanosleep() at kern_clock_nanosleep+0x1e2/frame 0xfffffe00ddb97a90 sys_nanosleep() at sys_nanosleep+0x3b/frame 0xfffffe00ddb97ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddb97bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddb97bf0 --- syscall (240, FreeBSD ELF64, sys_nanosleep), rip = 0x8003d474a, rsp = 0x7fffffffea18, rbp = 0x7fffffffea60 --- Tracing command rpcbind pid 2068 tid 100158 td 0xfffffe00d5ccc500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda4f780 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda4f7a0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda4f7e0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00dda4f840 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x12/frame 0xfffffe00dda4f880 _cv_timedwait_sig_sbt() at _cv_timedwait_sig_sbt+0x184/frame 0xfffffe00dda4f8f0 seltdwait() at seltdwait+0x6b/frame 0xfffffe00dda4f930 kern_poll() at kern_poll+0x48b/frame 0xfffffe00dda4fab0 sys_poll() at sys_poll+0x50/frame 0xfffffe00dda4fad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00dda4fbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00dda4fbf0 --- syscall (209, FreeBSD ELF64, sys_poll), rip = 0x8003e1baa, rsp = 0x7fffffffc9b8, rbp = 0x7fffffffebd0 --- Tracing command syslogd pid 2058 tid 100183 td 0xfffffe003e4c5a00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddafc740 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddafc760 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddafc7a0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddafc800 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00ddafc810 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00ddafc870 seltdwait() at seltdwait+0x8d/frame 0xfffffe00ddafc8b0 kern_select() at kern_select+0x87a/frame 0xfffffe00ddafca90 sys_select() at sys_select+0x56/frame 0xfffffe00ddafcad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddafcbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddafcbf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80044c43a, rsp = 0x7fffffffe6c8, rbp = 0x7fffffffec40 --- Tracing command devd pid 1987 tid 100162 td 0xfffffe00d55a0500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda63700 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda63720 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda63760 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00dda637c0 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x12/frame 0xfffffe00dda63800 _cv_timedwait_sig_sbt() at _cv_timedwait_sig_sbt+0x184/frame 0xfffffe00dda63870 seltdwait() at seltdwait+0x6b/frame 0xfffffe00dda638b0 kern_select() at kern_select+0x87a/frame 0xfffffe00dda63a90 sys_select() at sys_select+0x56/frame 0xfffffe00dda63ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00dda63bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00dda63bf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x302efa, rsp = 0x7fffffffcac8, rbp = 0x7fffffffec60 --- Tracing command dhclient pid 1982 tid 100189 td 0xfffffe00d55a2100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddb26780 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddb267a0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddb267e0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00ddb26840 sleepq_timedwait_sig() at sleepq_timedwait_sig+0x12/frame 0xfffffe00ddb26880 _cv_timedwait_sig_sbt() at _cv_timedwait_sig_sbt+0x184/frame 0xfffffe00ddb268f0 seltdwait() at seltdwait+0x6b/frame 0xfffffe00ddb26930 kern_poll() at kern_poll+0x48b/frame 0xfffffe00ddb26ab0 sys_poll() at sys_poll+0x50/frame 0xfffffe00ddb26ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00ddb26bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00ddb26bf0 --- syscall (209, FreeBSD ELF64, sys_poll), rip = 0x800406baa, rsp = 0x7fffffffeba8, rbp = 0x7fffffffebe0 --- Tracing command dhclient pid 1923 tid 100167 td 0xfffffe00d55a3e00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda7c7c0 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda7c7e0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda7c820 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00dda7c880 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00dda7c890 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00dda7c8f0 seltdwait() at seltdwait+0x8d/frame 0xfffffe00dda7c930 kern_poll() at kern_poll+0x48b/frame 0xfffffe00dda7cab0 sys_poll() at sys_poll+0x50/frame 0xfffffe00dda7cad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00dda7cbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00dda7cbf0 --- syscall (209, FreeBSD ELF64, sys_poll), rip = 0x800406baa, rsp = 0x7fffffffebb8, rbp = 0x7fffffffebe0 --- Tracing command dhclient pid 1920 tid 100154 td 0xfffffe00d55af700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda3b740 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda3b760 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda3b7a0 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00dda3b800 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00dda3b810 _cv_wait_sig() at _cv_wait_sig+0x161/frame 0xfffffe00dda3b870 seltdwait() at seltdwait+0x8d/frame 0xfffffe00dda3b8b0 kern_select() at kern_select+0x87a/frame 0xfffffe00dda3ba90 sys_select() at sys_select+0x56/frame 0xfffffe00dda3bad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00dda3bbf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00dda3bbf0 --- syscall (93, FreeBSD ELF64, sys_select), rip = 0x80046343a, rsp = 0x7fffffffe968, rbp = 0x7fffffffea20 --- Tracing command syncer pid 34 tid 100141 td 0xfffffe00d5ccd300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d87f8a10 mi_switch() at mi_switch+0x155/frame 0xfffffe00d87f8a30 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d87f8a70 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d87f8ab0 _cv_timedwait_sbt() at _cv_timedwait_sbt+0x184/frame 0xfffffe00d87f8b20 sched_sync() at sched_sync+0x68b/frame 0xfffffe00d87f8bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d87f8bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d87f8bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command vnlru pid 33 tid 100140 td 0xfffffe00d5ccda00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d87f39d0 mi_switch() at mi_switch+0x155/frame 0xfffffe00d87f39f0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d87f3a30 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d87f3a70 _sleep() at _sleep+0x26c/frame 0xfffffe00d87f3b10 vnlru_proc() at vnlru_proc+0xaac/frame 0xfffffe00d87f3bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d87f3bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d87f3bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100130 td 0xfffffe00d5cce100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7431a20 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7431a40 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7431a80 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d7431ac0 _sleep() at _sleep+0x26c/frame 0xfffffe00d7431b60 buf_daemon() at buf_daemon+0x112/frame 0xfffffe00d7431bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7431bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7431bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100131 td 0xfffffe00d590b100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7ac4a10 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7ac4a30 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7ac4a70 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d7ac4ab0 _sleep() at _sleep+0x26c/frame 0xfffffe00d7ac4b50 bufspace_daemon() at bufspace_daemon+0x2d9/frame 0xfffffe00d7ac4bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7ac4bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7ac4bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100132 td 0xfffffe00d590aa00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7be9a10 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7be9a30 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7be9a70 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d7be9ab0 _sleep() at _sleep+0x26c/frame 0xfffffe00d7be9b50 bufspace_daemon() at bufspace_daemon+0x2d9/frame 0xfffffe00d7be9bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7be9bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7be9bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100133 td 0xfffffe00d590a300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7beea10 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7beea30 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7beea70 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d7beeab0 _sleep() at _sleep+0x26c/frame 0xfffffe00d7beeb50 bufspace_daemon() at bufspace_daemon+0x2d9/frame 0xfffffe00d7beebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7beebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7beebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100134 td 0xfffffe00d5909c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7bf3a10 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7bf3a30 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7bf3a70 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d7bf3ab0 _sleep() at _sleep+0x26c/frame 0xfffffe00d7bf3b50 bufspace_daemon() at bufspace_daemon+0x2d9/frame 0xfffffe00d7bf3bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7bf3bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7bf3bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100135 td 0xfffffe00d5909500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7bf8a10 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7bf8a30 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7bf8a70 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d7bf8ab0 _sleep() at _sleep+0x26c/frame 0xfffffe00d7bf8b50 bufspace_daemon() at bufspace_daemon+0x2d9/frame 0xfffffe00d7bf8bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7bf8bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7bf8bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100136 td 0xfffffe00d5908e00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7bfda10 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7bfda30 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7bfda70 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d7bfdab0 _sleep() at _sleep+0x26c/frame 0xfffffe00d7bfdb50 bufspace_daemon() at bufspace_daemon+0x2d9/frame 0xfffffe00d7bfdbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7bfdbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7bfdbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100137 td 0xfffffe00d5908700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d8604a10 mi_switch() at mi_switch+0x155/frame 0xfffffe00d8604a30 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d8604a70 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d8604ab0 _sleep() at _sleep+0x26c/frame 0xfffffe00d8604b50 bufspace_daemon() at bufspace_daemon+0x2d9/frame 0xfffffe00d8604bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d8604bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d8604bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100151 td 0xfffffe00d55bd700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00dda2ca40 mi_switch() at mi_switch+0x155/frame 0xfffffe00dda2ca60 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00dda2caa0 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00dda2cae0 _sleep() at _sleep+0x26c/frame 0xfffffe00dda2cb80 softdep_flush() at softdep_flush+0x16e/frame 0xfffffe00dda2cbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00dda2cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00dda2cbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command bufdaemon pid 32 tid 100207 td 0xfffffe00d396be00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00ddbbca40 mi_switch() at mi_switch+0x155/frame 0xfffffe00ddbbca60 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00ddbbcaa0 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00ddbbcae0 _sleep() at _sleep+0x26c/frame 0xfffffe00ddbbcb80 softdep_flush() at softdep_flush+0x16e/frame 0xfffffe00ddbbcbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00ddbbcbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00ddbbcbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command vmdaemon pid 31 tid 100129 td 0xfffffe00d5cce800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d742ca40 mi_switch() at mi_switch+0x155/frame 0xfffffe00d742ca60 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d742caa0 _sleep() at _sleep+0x2cd/frame 0xfffffe00d742cb40 vm_daemon() at vm_daemon+0x82/frame 0xfffffe00d742cbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d742cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d742cbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command pagedaemon pid 30 tid 100128 td 0xfffffe00d6097e00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7427670 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7427690 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d74276d0 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d7427710 _sleep() at _sleep+0x26c/frame 0xfffffe00d74277b0 vm_pageout_worker() at vm_pageout_worker+0x279/frame 0xfffffe00d7427b70 vm_pageout() at vm_pageout+0x193/frame 0xfffffe00d7427bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7427bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7427bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command pagedaemon pid 30 tid 100138 td 0xfffffe00d5913a00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d87e9830 mi_switch() at mi_switch+0x155/frame 0xfffffe00d87e9850 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d87e9890 _sleep() at _sleep+0x2cd/frame 0xfffffe00d87e9930 vm_pageout_laundry_worker() at vm_pageout_laundry_worker+0xc21/frame 0xfffffe00d87e9bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d87e9bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d87e9bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command pagedaemon pid 30 tid 100139 td 0xfffffe00d5913300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d87eea40 mi_switch() at mi_switch+0x155/frame 0xfffffe00d87eea60 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d87eeaa0 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe00d87eeae0 _sleep() at _sleep+0x26c/frame 0xfffffe00d87eeb80 uma_reclaim_worker() at uma_reclaim_worker+0xb8/frame 0xfffffe00d87eebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d87eebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d87eebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command enc_daemon1 pid 29 tid 100127 td 0xfffffe00d31b7300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7422a40 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7422a60 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7422aa0 _sleep() at _sleep+0x2cd/frame 0xfffffe00d7422b40 enc_daemon() at enc_daemon+0xe4/frame 0xfffffe00d7422bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7422bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7422bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command enc_daemon0 pid 28 tid 100126 td 0xfffffe00d31b7a00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d741da40 mi_switch() at mi_switch+0x155/frame 0xfffffe00d741da60 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d741daa0 _sleep() at _sleep+0x2cd/frame 0xfffffe00d741db40 enc_daemon() at enc_daemon+0xe4/frame 0xfffffe00d741dbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d741dbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d741dbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command rand_harvestq pid 27 tid 100120 td 0xfffffe00d609a800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bfb9f0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bfba10 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037bfba50 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe0037bfba90 _sleep() at _sleep+0x26c/frame 0xfffffe0037bfbb30 random_kthread() at random_kthread+0x67/frame 0xfffffe0037bfbbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bfbbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bfbbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command sctp_iterator pid 26 tid 100119 td 0xfffffe00d5ccb000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bf6a90 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bf6ab0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037bf6af0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037bf6b90 sctp_iterator_thread() at sctp_iterator_thread+0x59/frame 0xfffffe0037bf6bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bf6bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bf6bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command soaiod4 pid 25 tid 100118 td 0xfffffe00d31b8100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bf1a30 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bf1a50 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037bf1a90 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe0037bf1ad0 _sleep() at _sleep+0x26c/frame 0xfffffe0037bf1b70 soaio_kproc_loop() at soaio_kproc_loop+0x168/frame 0xfffffe0037bf1bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bf1bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bf1bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command soaiod3 pid 24 tid 100117 td 0xfffffe00d31b8800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037beca30 mi_switch() at mi_switch+0x155/frame 0xfffffe0037beca50 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037beca90 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe0037becad0 _sleep() at _sleep+0x26c/frame 0xfffffe0037becb70 soaio_kproc_loop() at soaio_kproc_loop+0x168/frame 0xfffffe0037becbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037becbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037becbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command soaiod2 pid 23 tid 100116 td 0xfffffe00d6097000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037be7a30 mi_switch() at mi_switch+0x155/frame 0xfffffe0037be7a50 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037be7a90 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe0037be7ad0 _sleep() at _sleep+0x26c/frame 0xfffffe0037be7b70 soaio_kproc_loop() at soaio_kproc_loop+0x168/frame 0xfffffe0037be7bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037be7bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037be7bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command soaiod1 pid 22 tid 100115 td 0xfffffe00d6097700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037be2a30 mi_switch() at mi_switch+0x155/frame 0xfffffe0037be2a50 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037be2a90 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xfffffe0037be2ad0 _sleep() at _sleep+0x26c/frame 0xfffffe0037be2b70 soaio_kproc_loop() at soaio_kproc_loop+0x168/frame 0xfffffe0037be2bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037be2bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037be2bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100096 td 0xfffffe003e4c3e00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b77ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b77ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b77b10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037b77b70 usb_process() at usb_process+0xc3/frame 0xfffffe0037b77bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b77bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b77bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100097 td 0xfffffe003e4c3700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b7cab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b7cad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b7cb10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037b7cb70 usb_process() at usb_process+0xc3/frame 0xfffffe0037b7cbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b7cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b7cbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100098 td 0xfffffe003e4c3000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b81ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b81ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b81b10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037b81b70 usb_process() at usb_process+0xc3/frame 0xfffffe0037b81bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b81bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b81bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100099 td 0xfffffe003e19e800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b86ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b86ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b86b10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037b86b70 usb_process() at usb_process+0xc3/frame 0xfffffe0037b86bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b86bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b86bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100100 td 0xfffffe003e19e100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b8bab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b8bad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b8bb10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037b8bb70 usb_process() at usb_process+0xc3/frame 0xfffffe0037b8bbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b8bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b8bbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100102 td 0xfffffe00d2e2b500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b95ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b95ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b95b10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037b95b70 usb_process() at usb_process+0xc3/frame 0xfffffe0037b95bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b95bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b95bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100103 td 0xfffffe00d2e2ae00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b9aab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b9aad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b9ab10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037b9ab70 usb_process() at usb_process+0xc3/frame 0xfffffe0037b9abb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b9abf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b9abf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100104 td 0xfffffe00d2e2a700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b9fab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b9fad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b9fb10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037b9fb70 usb_process() at usb_process+0xc3/frame 0xfffffe0037b9fbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b9fbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b9fbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100105 td 0xfffffe00d2e2a000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037ba4ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037ba4ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037ba4b10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037ba4b70 usb_process() at usb_process+0xc3/frame 0xfffffe0037ba4bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037ba4bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037ba4bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100106 td 0xfffffe003e4c6800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037ba9ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037ba9ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037ba9b10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037ba9b70 usb_process() at usb_process+0xc3/frame 0xfffffe0037ba9bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037ba9bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037ba9bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100107 td 0xfffffe00d31b5e00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bbaab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bbaad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037bbab10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037bbab70 usb_process() at usb_process+0xc3/frame 0xfffffe0037bbabb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bbabf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bbabf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100108 td 0xfffffe00d31b5700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bbfab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bbfad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037bbfb10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037bbfb70 usb_process() at usb_process+0xc3/frame 0xfffffe0037bbfbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bbfbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bbfbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100109 td 0xfffffe00d31b5000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bc4ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bc4ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037bc4b10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037bc4b70 usb_process() at usb_process+0xc3/frame 0xfffffe0037bc4bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bc4bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bc4bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100110 td 0xfffffe00d2e2d800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bc9ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bc9ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037bc9b10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037bc9b70 usb_process() at usb_process+0xc3/frame 0xfffffe0037bc9bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bc9bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bc9bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command usb pid 21 tid 100111 td 0xfffffe00d2e2d100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bceab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bcead0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037bceb10 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037bceb70 usb_process() at usb_process+0xc3/frame 0xfffffe0037bcebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bcebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bcebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command cam pid 20 tid 100091 td 0xfffffe003e19c500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b5ea60 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b5ea80 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b5eac0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b5eb60 xpt_done_td() at xpt_done_td+0x7b/frame 0xfffffe0037b5ebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b5ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b5ebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command cam pid 20 tid 100092 td 0xfffffe003e19be00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b63a60 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b63a80 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b63ac0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b63b60 xpt_done_td() at xpt_done_td+0x7b/frame 0xfffffe0037b63bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b63bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b63bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command cam pid 20 tid 100093 td 0xfffffe003e19b700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b68a60 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b68a80 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b68ac0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b68b60 xpt_done_td() at xpt_done_td+0x7b/frame 0xfffffe0037b68bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b68bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b68bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command cam pid 20 tid 100125 td 0xfffffe00d6098500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7418a70 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7418a90 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7418ad0 _sleep() at _sleep+0x2cd/frame 0xfffffe00d7418b70 xpt_scanner_thread() at xpt_scanner_thread+0x68/frame 0xfffffe00d7418bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7418bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7418bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 11 pid 19 tid 100090 td 0xfffffe003e19cc00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b59a50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b59a70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b59ab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b59b50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b59bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b59bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b59bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 10 pid 18 tid 100089 td 0xfffffe003e19d300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b54a50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b54a70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b54ab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b54b50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b54bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b54bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b54bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 9 pid 17 tid 100088 td 0xfffffe003e1c2800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b4fa50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b4fa70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b4fab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b4fb50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b4fbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b4fbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b4fbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 8 pid 16 tid 100087 td 0xfffffe003e1a7000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b4aa50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b4aa70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b4aab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b4ab50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b4abb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b4abf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b4abf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 7 pid 15 tid 100086 td 0xfffffe003e1a7700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b45a50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b45a70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b45ab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b45b50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b45bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b45bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b45bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 6 pid 9 tid 100085 td 0xfffffe003e1a7e00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b40a50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b40a70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b40ab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b40b50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b40bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b40bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b40bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 5 pid 8 tid 100084 td 0xfffffe003e1a8500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b3ba50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b3ba70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b3bab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b3bb50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b3bbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b3bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b3bbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 4 pid 7 tid 100083 td 0xfffffe003e1a8c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b36a50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b36a70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b36ab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b36b50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b36bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b36bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b36bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 3 pid 6 tid 100082 td 0xfffffe003e1a9300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b31a50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b31a70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b31ab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b31b50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b31bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b31bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b31bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 2 pid 5 tid 100081 td 0xfffffe003e1a9a00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b2ca50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b2ca70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b2cab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b2cb50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b2cbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b2cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b2cbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 1 pid 4 tid 100080 td 0xfffffe003e1bf000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b27a50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b27a70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b27ab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b27b50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b27bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b27bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b27bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto returns 0 pid 3 tid 100079 td 0xfffffe003e1bf700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b22a50 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b22a70 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b22ab0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b22b50 crypto_ret_proc() at crypto_ret_proc+0x21f/frame 0xfffffe0037b22bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b22bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b22bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command crypto pid 2 tid 100078 td 0xfffffe003e1bfe00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b1da70 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b1da90 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b1dad0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b1db70 crypto_proc() at crypto_proc+0x25f/frame 0xfffffe0037b1dbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b1dbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b1dbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command sequencer 00 pid 14 tid 100065 td 0xfffffe003e1e6800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037adca70 mi_switch() at mi_switch+0x155/frame 0xfffffe0037adca90 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037adcad0 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe0037adcb30 seq_eventthread() at seq_eventthread+0x91/frame 0xfffffe0037adcbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037adcbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037adcbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command geom pid 13 tid 100062 td 0xfffffe003e1f0c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037ac1a70 mi_switch() at mi_switch+0x155/frame 0xfffffe0037ac1a90 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037ac1ad0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037ac1b70 g_run_events() at g_run_events+0x64/frame 0xfffffe0037ac1bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037ac1bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037ac1bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command geom pid 13 tid 100063 td 0xfffffe003e1f0500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037ac6a70 mi_switch() at mi_switch+0x155/frame 0xfffffe0037ac6a90 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037ac6ad0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037ac6b70 g_io_schedule_up() at g_io_schedule_up+0x3c/frame 0xfffffe0037ac6ba0 g_up_procbody() at g_up_procbody+0x5c/frame 0xfffffe0037ac6bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037ac6bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037ac6bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command geom pid 13 tid 100064 td 0xfffffe003e1efe00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037acba70 mi_switch() at mi_switch+0x155/frame 0xfffffe0037acba90 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037acbad0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037acbb70 g_io_schedule_down() at g_io_schedule_down+0x4c/frame 0xfffffe0037acbba0 g_down_procbody() at g_down_procbody+0x5c/frame 0xfffffe0037acbbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037acbbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037acbbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command intr pid 12 tid 100042 td 0xfffffe003e470700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037a09b00 mi_switch() at mi_switch+0x155/frame 0xfffffe0037a09b20 ithread_loop() at ithread_loop+0x99/frame 0xfffffe0037a09bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037a09bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037a09bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command intr pid 12 tid 100043 td 0xfffffe003e470000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037a0eb00 mi_switch() at mi_switch+0x155/frame 0xfffffe0037a0eb20 ithread_loop() at ithread_loop+0x99/frame 0xfffffe0037a0ebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037a0ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037a0ebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command intr pid 12 tid 100045 td 0xfffffe003e46d100 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100047 td 0xfffffe003e46c300 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100048 td 0xfffffe003e46bc00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037a57b00 mi_switch() at mi_switch+0x155/frame 0xfffffe0037a57b20 ithread_loop() at ithread_loop+0x99/frame 0xfffffe0037a57bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037a57bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037a57bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command intr pid 12 tid 100049 td 0xfffffe003e1ef700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037a5cb00 mi_switch() at mi_switch+0x155/frame 0xfffffe0037a5cb20 ithread_loop() at ithread_loop+0x99/frame 0xfffffe0037a5cbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037a5cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037a5cbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command intr pid 12 tid 100050 td 0xfffffe003e1ef000 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100051 td 0xfffffe003e473800 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100052 td 0xfffffe003e473100 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100053 td 0xfffffe003e472a00 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100054 td 0xfffffe003e472300 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100055 td 0xfffffe003e471c00 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100056 td 0xfffffe003e471500 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100057 td 0xfffffe003e1e3000 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100058 td 0xfffffe003e1f2800 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100059 td 0xfffffe003e1f2100 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100060 td 0xfffffe003e1f1a00 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100094 td 0xfffffe003e4c4c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b6db00 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b6db20 ithread_loop() at ithread_loop+0x99/frame 0xfffffe0037b6dbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b6dbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b6dbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command intr pid 12 tid 100095 td 0xfffffe003e4c4500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b72b00 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b72b20 ithread_loop() at ithread_loop+0x99/frame 0xfffffe0037b72bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b72bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b72bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command intr pid 12 tid 100101 td 0xfffffe003e19da00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b90b00 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b90b20 ithread_loop() at ithread_loop+0x99/frame 0xfffffe0037b90bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b90bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b90bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command intr pid 12 tid 100112 td 0xfffffe00d2e2ca00 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100113 td 0xfffffe00d2e2c300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bd8b00 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bd8b20 ithread_loop() at ithread_loop+0x99/frame 0xfffffe0037bd8bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bd8bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bd8bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command intr pid 12 tid 100173 td 0xfffffe00d559f700 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100174 td 0xfffffe00d559f000 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100175 td 0xfffffe00d59de800 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100176 td 0xfffffe00d59de100 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100177 td 0xfffffe00d59dda00 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100178 td 0xfffffe00d49fe100 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100179 td 0xfffffe00d49fda00 fork_trampoline() at fork_trampoline Tracing command intr pid 12 tid 100180 td 0xfffffe00d49fd300 fork_trampoline() at fork_trampoline Tracing command idle pid 11 tid 100003 td 0xfffffe003e3d9300 (CPU 0) kdb_alt_break_internal() at kdb_alt_break_internal+0x155/frame 0xfffffe00add46880 kdb_alt_break() at kdb_alt_break+0xb/frame 0xfffffe00add46890 uart_intr_rxready() at uart_intr_rxready+0xf5/frame 0xfffffe00add468c0 uart_intr() at uart_intr+0x128/frame 0xfffffe00add46900 intr_event_handle() at intr_event_handle+0xce/frame 0xfffffe00add46950 intr_execute_handlers() at intr_execute_handlers+0x66/frame 0xfffffe00add46980 Xapic_isr1() at Xapic_isr1+0xdc/frame 0xfffffe00add46980 --- interrupt, rip = 0xffffffff81034d26, rsp = 0xfffffe00add46a50, rbp = 0xfffffe00add46a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add46a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add46aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add46ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add46ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add46bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add46bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add46bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100004 td 0xfffffe003e3d8c00 (CPU 1) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e17de00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e17de10 trap() at trap+0x56/frame 0xfffffe003e17df20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e17df20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add4ba50, rbp = 0xfffffe00add4ba50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add4ba50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add4baa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add4bac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add4bae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add4bbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add4bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add4bbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100005 td 0xfffffe003e3d8500 (CPU 2) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e189e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e189e10 trap() at trap+0x56/frame 0xfffffe003e189f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e189f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add50a50, rbp = 0xfffffe00add50a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add50a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add50aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add50ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add50ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add50bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add50bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add50bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100006 td 0xfffffe003e3d7e00 (CPU 3) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e195e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e195e10 trap() at trap+0x56/frame 0xfffffe003e195f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e195f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add55a50, rbp = 0xfffffe00add55a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add55a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add55aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add55ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add55ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add55bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add55bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add55bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100007 td 0xfffffe003e3d7700 (CPU 4) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1a1e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1a1e10 trap() at trap+0x56/frame 0xfffffe003e1a1f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1a1f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add5aa50, rbp = 0xfffffe00add5aa50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add5aa50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add5aaa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add5aac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add5aae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add5abb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add5abf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add5abf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100008 td 0xfffffe003e3d7000 (CPU 5) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1ade00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1ade10 trap() at trap+0x56/frame 0xfffffe003e1adf20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1adf20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add5fa50, rbp = 0xfffffe00add5fa50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add5fa50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add5faa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add5fac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add5fae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add5fbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add5fbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add5fbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100009 td 0xfffffe003e3e1a00 (CPU 6) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1b9e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1b9e10 trap() at trap+0x56/frame 0xfffffe003e1b9f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1b9f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add64a50, rbp = 0xfffffe00add64a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add64a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add64aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add64ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add64ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add64bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add64bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add64bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100010 td 0xfffffe003e3e1300 (CPU 7) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1c5e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1c5e10 trap() at trap+0x56/frame 0xfffffe003e1c5f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1c5f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add69a50, rbp = 0xfffffe00add69a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add69a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add69aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add69ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add69ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add69bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add69bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add69bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100011 td 0xfffffe003e3e0c00 (CPU 8) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1d1e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1d1e10 trap() at trap+0x56/frame 0xfffffe003e1d1f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1d1f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add6ea50, rbp = 0xfffffe00add6ea50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add6ea50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add6eaa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add6eac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add6eae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add6ebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add6ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add6ebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100012 td 0xfffffe003e3e0500 (CPU 9) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1dde00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1dde10 trap() at trap+0x56/frame 0xfffffe003e1ddf20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1ddf20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add73a50, rbp = 0xfffffe00add73a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add73a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add73aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add73ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add73ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add73bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add73bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add73bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100013 td 0xfffffe003e3dfe00 (CPU 10) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1e9e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1e9e10 trap() at trap+0x56/frame 0xfffffe003e1e9f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1e9f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add78a50, rbp = 0xfffffe00add78a50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add78a50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add78aa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add78ac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add78ae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add78bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add78bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add78bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command idle pid 11 tid 100014 td 0xfffffe003e3df700 (CPU 11) cpustop_handler() at cpustop_handler+0x26/frame 0xfffffe003e1f5e00 ipi_nmi_handler() at ipi_nmi_handler+0x39/frame 0xfffffe003e1f5e10 trap() at trap+0x56/frame 0xfffffe003e1f5f20 nmi_calltrap() at nmi_calltrap+0x8/frame 0xfffffe003e1f5f20 --- trap 0x13, rip = 0xffffffff81034d26, rsp = 0xfffffe00add7da50, rbp = 0xfffffe00add7da50 --- acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00add7da50 acpi_cpu_idle() at acpi_cpu_idle+0x232/frame 0xfffffe00add7daa0 cpu_idle_acpi() at cpu_idle_acpi+0x3e/frame 0xfffffe00add7dac0 cpu_idle() at cpu_idle+0x9f/frame 0xfffffe00add7dae0 sched_idletd() at sched_idletd+0x3d1/frame 0xfffffe00add7dbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add7dbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add7dbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command init pid 1 tid 100002 td 0xfffffe003e3d9a00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00add416e0 mi_switch() at mi_switch+0x155/frame 0xfffffe00add41700 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00add41740 sleepq_catch_signals() at sleepq_catch_signals+0x3f2/frame 0xfffffe00add417a0 sleepq_wait_sig() at sleepq_wait_sig+0x9/frame 0xfffffe00add417b0 _sleep() at _sleep+0x2c3/frame 0xfffffe00add41850 kern_wait6() at kern_wait6+0x482/frame 0xfffffe00add418e0 sys_wait4() at sys_wait4+0x7b/frame 0xfffffe00add41ad0 amd64_syscall() at amd64_syscall+0x159/frame 0xfffffe00add41bf0 fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe00add41bf0 --- syscall (7, FreeBSD ELF64, sys_wait4), rip = 0x2bdd9a, rsp = 0x7fffffffe728, rbp = 0x7fffffffe790 --- Tracing command audit pid 10 tid 100001 td 0xfffffe003e3da100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00add3ca90 mi_switch() at mi_switch+0x155/frame 0xfffffe00add3cab0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00add3caf0 _cv_wait() at _cv_wait+0x15a/frame 0xfffffe00add3cb50 audit_worker() at audit_worker+0x9f/frame 0xfffffe00add3cbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add3cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add3cbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100000 td 0xffffffff81c8e500 sched_switch() at sched_switch+0x5b2/frame 0xffffffff82129ad0 mi_switch() at mi_switch+0x155/frame 0xffffffff82129af0 sleepq_switch() at sleepq_switch+0x11a/frame 0xffffffff82129b30 sleepq_timedwait() at sleepq_timedwait+0x4b/frame 0xffffffff82129b70 _sleep() at _sleep+0x26c/frame 0xffffffff82129c10 swapper() at swapper+0x75/frame 0xffffffff82129c60 mi_startup() at mi_startup+0x2ed/frame 0xffffffff82129cb0 btext() at btext+0x2c Tracing command kernel pid 0 tid 100015 td 0xfffffe003e3df000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00add82ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00add82ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00add82b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00add82b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00add82bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add82bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add82bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100016 td 0xfffffe003e3da800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00add87ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00add87ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00add87b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00add87b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00add87bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add87bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add87bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100017 td 0xfffffe003e3fc300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00add8cab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00add8cad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00add8cb10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00add8cb80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00add8cbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add8cbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add8cbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100018 td 0xfffffe003e3fbc00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00add91ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00add91ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00add91b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00add91b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00add91bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add91bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add91bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100019 td 0xfffffe003e3fb500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00add96ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00add96ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00add96b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00add96b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00add96bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add96bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add96bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100020 td 0xfffffe003e3fae00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00add9bab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00add9bad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00add9bb10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00add9bb80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00add9bbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00add9bbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00add9bbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100021 td 0xfffffe003e3fa700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00adda0ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00adda0ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00adda0b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00adda0b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00adda0bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00adda0bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00adda0bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100022 td 0xfffffe003e3fa000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00adda5ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00adda5ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00adda5b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00adda5b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00adda5bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00adda5bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00adda5bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100023 td 0xfffffe003e3e2800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addaaab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addaaad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addaab10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addaab80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addaabb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addaabf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addaabf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100024 td 0xfffffe003e3e2100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addafab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addafad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addafb10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addafb80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addafbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addafbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addafbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100025 td 0xfffffe003e467c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addb4ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addb4ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addb4b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addb4b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addb4bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addb4bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addb4bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100026 td 0xfffffe003e467500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addb9ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addb9ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addb9b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addb9b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addb9bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addb9bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addb9bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100027 td 0xfffffe003e466e00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addbeab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addbead0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addbeb10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addbeb80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addbebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addbebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addbebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100028 td 0xfffffe003e466700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addc3ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addc3ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addc3b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addc3b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addc3bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addc3bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addc3bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100029 td 0xfffffe003e466000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addc8ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addc8ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addc8b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addc8b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addc8bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addc8bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addc8bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100030 td 0xfffffe003e3fd800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addcdab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addcdad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addcdb10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addcdb80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addcdbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addcdbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addcdbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100031 td 0xfffffe003e3fd100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addd2ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addd2ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addd2b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addd2b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addd2bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addd2bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addd2bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100032 td 0xfffffe003e3fca00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addd7ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addd7ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addd7b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addd7b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addd7bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addd7bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addd7bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100033 td 0xfffffe003e46b500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00adddcab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00adddcad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00adddcb10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00adddcb80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00adddcbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00adddcbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00adddcbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100034 td 0xfffffe003e46ae00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00adde1ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00adde1ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00adde1b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00adde1b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00adde1bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00adde1bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00adde1bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100035 td 0xfffffe003e46a700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00adde6ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00adde6ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00adde6b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00adde6b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00adde6bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00adde6bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00adde6bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100036 td 0xfffffe003e46a000 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addebab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addebad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addebb10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addebb80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addebbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addebbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addebbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100037 td 0xfffffe003e469800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addf0ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addf0ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addf0b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addf0b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addf0bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addf0bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addf0bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100038 td 0xfffffe003e469100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addf5ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addf5ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addf5b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addf5b80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addf5bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addf5bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addf5bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100039 td 0xfffffe003e468a00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addfaab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00addfaad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addfab10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00addfab80 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xef/frame 0xfffffe00addfabb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addfabf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addfabf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100040 td 0xfffffe003e468300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00addffa80 mi_switch() at mi_switch+0x155/frame 0xfffffe00addffaa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00addffae0 _sleep() at _sleep+0x2cd/frame 0xfffffe00addffb80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe00addffbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00addffbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00addffbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100041 td 0xfffffe003e470e00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037a04a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037a04aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037a04ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037a04b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037a04bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037a04bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037a04bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100044 td 0xfffffe003e46d800 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037a13a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037a13aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037a13ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037a13b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037a13bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037a13bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037a13bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100046 td 0xfffffe003e46ca00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037a1da80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037a1daa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037a1dae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037a1db80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037a1dbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037a1dbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037a1dbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100061 td 0xfffffe003e1f1300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037abca80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037abcaa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037abcae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037abcb80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037abcbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037abcbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037abcbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100066 td 0xfffffe003e1e6100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037ae1a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037ae1aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037ae1ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037ae1b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037ae1bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037ae1bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037ae1bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100067 td 0xfffffe003e1e5a00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037ae6a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037ae6aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037ae6ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037ae6b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037ae6bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037ae6bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037ae6bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100068 td 0xfffffe003e1e5300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037aeba80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037aebaa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037aebae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037aebb80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037aebbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037aebbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037aebbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100069 td 0xfffffe003e1e4c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037af0a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037af0aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037af0ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037af0b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037af0bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037af0bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037af0bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100070 td 0xfffffe003e1e4500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037af5a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037af5aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037af5ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037af5b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037af5bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037af5bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037af5bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100071 td 0xfffffe003e1e3e00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037afaa80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037afaaa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037afaae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037afab80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037afabb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037afabf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037afabf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100072 td 0xfffffe003e1e3700 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037affa80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037affaa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037affae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037affb80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037affbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037affbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037affbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100073 td 0xfffffe003e1c2100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b04a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b04aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b04ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b04b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037b04bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b04bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b04bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100074 td 0xfffffe003e1c1a00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b09a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b09aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b09ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b09b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037b09bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b09bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b09bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100075 td 0xfffffe003e1c1300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b0ea80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b0eaa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b0eae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b0eb80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037b0ebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b0ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b0ebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100076 td 0xfffffe003e1c0c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b13a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b13aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b13ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b13b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037b13bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b13bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b13bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100077 td 0xfffffe003e1c0500 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037b18a80 mi_switch() at mi_switch+0x155/frame 0xfffffe0037b18aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037b18ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe0037b18b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe0037b18bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037b18bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037b18bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100114 td 0xfffffe00d2e2bc00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe0037bddab0 mi_switch() at mi_switch+0x155/frame 0xfffffe0037bddad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe0037bddb10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe0037bddb80 taskqueue_thread_loop() at taskqueue_thread_loop+0xef/frame 0xfffffe0037bddbb0 fork_exit() at fork_exit+0x80/frame 0xfffffe0037bddbf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0037bddbf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100121 td 0xfffffe00d609a100 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7404ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7404ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7404b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00d7404b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xef/frame 0xfffffe00d7404bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7404bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7404bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100122 td 0xfffffe00d6099a00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7409ab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7409ad0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7409b10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00d7409b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xef/frame 0xfffffe00d7409bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7409bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7409bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100123 td 0xfffffe00d6099300 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d740eab0 mi_switch() at mi_switch+0x155/frame 0xfffffe00d740ead0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d740eb10 msleep_spin_sbt() at msleep_spin_sbt+0x152/frame 0xfffffe00d740eb80 taskqueue_thread_loop() at taskqueue_thread_loop+0xef/frame 0xfffffe00d740ebb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d740ebf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d740ebf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- Tracing command kernel pid 0 tid 100124 td 0xfffffe00d6098c00 sched_switch() at sched_switch+0x5b2/frame 0xfffffe00d7413a80 mi_switch() at mi_switch+0x155/frame 0xfffffe00d7413aa0 sleepq_switch() at sleepq_switch+0x11a/frame 0xfffffe00d7413ae0 _sleep() at _sleep+0x2cd/frame 0xfffffe00d7413b80 taskqueue_thread_loop() at taskqueue_thread_loop+0xc7/frame 0xfffffe00d7413bb0 fork_exit() at fork_exit+0x80/frame 0xfffffe00d7413bf0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d7413bf0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- db:0:pho> show allchains chain 1: thread 100165 (pid 2429, bash) is sleeping on 0xfffff80018e116c0 "select" chain 2: thread 100144 (pid 2428, sshd) is sleeping on 0xfffff80018655140 "select" chain 3: thread 100152 (pid 2425, sshd) is sleeping on 0xfffff80018a33d40 "select" chain 4: thread 100188 (pid 2422, bash) is sleeping on 0xfffff80003ec4ec0 "select" chain 5: thread 100220 (pid 2421, login) is sleeping on 0xfffff801c8ab4000 "wait" chain 6: thread 100209 (pid 2420, getty) is sleeping on 0xfffff800041eb0b0 "ttyin" chain 7: thread 100210 (pid 2419, getty) is sleeping on 0xfffff800182a3cb0 "ttyin" chain 8: thread 100219 (pid 2418, getty) is sleeping on 0xfffff800182a20b0 "ttyin" chain 9: thread 100218 (pid 2417, getty) is sleeping on 0xfffff800182a24b0 "ttyin" chain 10: thread 100156 (pid 2416, getty) is sleeping on 0xfffff800182a28b0 "ttyin" chain 11: thread 100182 (pid 2415, getty) is sleeping on 0xfffff800182a2cb0 "ttyin" chain 12: thread 100192 (pid 2414, getty) is sleeping on 0xfffff800182a50b0 "ttyin" chain 13: thread 100185 (pid 2413, getty) is sleeping on 0xfffff800182a54b0 "ttyin" chain 14: thread 100142 (pid 2412, getty) is sleeping on 0xfffff800182a58b0 "ttyin" chain 15: thread 100205 (pid 2363, cron) is sleeping on 0xffffffff81caea93 "nanslp" chain 16: thread 100203 (pid 2359, sshd) is sleeping on 0xfffff80018656f40 "select" chain 17: thread 100206 (pid 2331, powerd) is sleeping on 0xfffff80018673440 "select" chain 18: thread 100195 (pid 2328, ntpd) is sleeping on 0xfffff80018a33dc0 "select" chain 19: thread 100148 (pid 2265, NLM: master) is sleeping on 0xfffff80018e0e060 "rpcsvc" chain 20: thread 100191 (pid 2262, rpc.statd) is sleeping on 0xfffff80003ec4d40 "select" chain 21: thread 100202 (pid 2216, watchdogd) is sleeping on 0xffffffff81caea99 "nanslp" chain 22: thread 100158 (pid 2068, rpcbind) is sleeping on 0xfffff8004942f9c0 "select" chain 23: thread 100183 (pid 2058, syslogd) is sleeping on 0xfffff80018673540 "select" chain 24: thread 100162 (pid 1987, devd) is sleeping on 0xfffff8000415f640 "select" chain 25: thread 100189 (pid 1982, dhclient) is sleeping on 0xfffff8000415f6c0 "select" chain 26: thread 100167 (pid 1923, dhclient) is sleeping on 0xfffff80018e11740 "select" chain 27: thread 100154 (pid 1920, dhclient) is sleeping on 0xfffff800184e0540 "select" chain 28: thread 100141 (pid 34, syncer) is sleeping on 0xffffffff81d999d8 "syncer" chain 29: thread 100140 (pid 33, vnlru) is sleeping on 0xfffff800182e8000 "vlruwt" chain 30: thread 100130 (pid 32, bufdaemon) is sleeping on 0xffffffff81d98cf0 "qsleep" chain 31: thread 100131 (pid 32, bufspacedaemon-0) is sleeping on 0xffffffff8180aa00 "-" chain 32: thread 100132 (pid 32, bufspacedaemon-1) is sleeping on 0xffffffff81812cc0 "-" chain 33: thread 100133 (pid 32, bufspacedaemon-2) is sleeping on 0xffffffff8181af80 "-" chain 34: thread 100134 (pid 32, bufspacedaemon-3) is sleeping on 0xffffffff81823240 "-" chain 35: thread 100135 (pid 32, bufspacedaemon-4) is sleeping on 0xffffffff8182b500 "-" chain 36: thread 100136 (pid 32, bufspacedaemon-5) is sleeping on 0xffffffff818337c0 "-" chain 37: thread 100137 (pid 32, bufspacedaemon-6) is sleeping on 0xffffffff8183ba80 "-" chain 38: thread 100151 (pid 32, / worker) is sleeping on 0xfffff80018a2ace8 "sdflush" chain 39: thread 100207 (pid 32, /tmp worker) is sleeping on 0xfffff800187e48e8 "sdflush" chain 40: thread 100129 (pid 31, vmdaemon) is sleeping on 0xffffffff81dbdbc8 "psleep" chain 41: thread 100128 (pid 30, dom0) is sleeping on 0xffffffff81db2058 "psleep" chain 42: thread 100138 (pid 30, laundry: dom0) is sleeping on 0xffffffff81db2064 "launds" chain 43: thread 100139 (pid 30, uma) is sleeping on 0xffffffff80f0be70 "umarcl" chain 44: thread 100127 (pid 29, enc_daemon1) is sleeping on 0xfffff800181f8520 "idle" chain 45: thread 100126 (pid 28, enc_daemon0) is sleeping on 0xfffff800181f8a40 "idle" chain 46: thread 100120 (pid 27, rand_harvestq) is sleeping on 0xffffffff81ae2678 "-" chain 47: thread 100119 (pid 26, sctp_iterator) is sleeping on 0xffffffff81d9c150 "waiting_for_work" chain 48: thread 100118 (pid 25, soaiod4) is sleeping on 0xffffffff81d9862c "-" chain 49: thread 100117 (pid 24, soaiod3) is sleeping on 0xffffffff81d9862c "-" chain 50: thread 100116 (pid 23, soaiod2) is sleeping on 0xffffffff81d9862c "-" chain 51: thread 100115 (pid 22, soaiod1) is sleeping on 0xffffffff81d9862c "-" chain 52: thread 100096 (pid 21, usbus0) is sleeping on 0xfffffe00d2d84440 "-" chain 53: thread 100097 (pid 21, usbus0) is sleeping on 0xfffffe00d2d84498 "-" chain 54: thread 100098 (pid 21, usbus0) is sleeping on 0xfffffe00d2d844f0 "-" chain 55: thread 100099 (pid 21, usbus0) is sleeping on 0xfffffe00d2d84548 "-" chain 56: thread 100100 (pid 21, usbus0) is sleeping on 0xfffffe00d2d845a0 "-" chain 57: thread 100102 (pid 21, usbus1) is sleeping on 0xfffffe003e4afcf0 "-" chain 58: thread 100103 (pid 21, usbus1) is sleeping on 0xfffffe003e4afd48 "-" chain 59: thread 100104 (pid 21, usbus1) is sleeping on 0xfffffe003e4afda0 "-" chain 60: thread 100105 (pid 21, usbus1) is sleeping on 0xfffffe003e4afdf8 "-" chain 61: thread 100106 (pid 21, usbus1) is sleeping on 0xfffffe003e4afe50 "-" chain 62: thread 100107 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34cf0 "-" chain 63: thread 100108 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34d48 "-" chain 64: thread 100109 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34da0 "-" chain 65: thread 100110 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34df8 "-" chain 66: thread 100111 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34e50 "-" chain 67: thread 100091 (pid 20, doneq0) is sleeping on 0xffffffff819ba3c0 "-" chain 68: thread 100093 (pid 20, doneq2) is sleeping on 0xffffffff819ba4c0 "-" chain 69: thread 100125 (pid 20, scanner) is sleeping on 0xffffffff819ba290 "-" chain 70: thread 100090 (pid 19, crypto returns 11) is sleeping on 0xfffff80003ab2c50 "crypto_ret_wait" chain 71: thread 100089 (pid 18, crypto returns 10) is sleeping on 0xfffff80003ab2bf0 "crypto_ret_wait" chain 72: thread 100088 (pid 17, crypto returns 9) is sleeping on 0xfffff80003ab2b90 "crypto_ret_wait" chain 73: thread 100087 (pid 16, crypto returns 8) is sleeping on 0xfffff80003ab2b30 "crypto_ret_wait" chain 74: thread 100086 (pid 15, crypto returns 7) is sleeping on 0xfffff80003ab2ad0 "crypto_ret_wait" chain 75: thread 100085 (pid 9, crypto returns 6) is sleeping on 0xfffff80003ab2a70 "crypto_ret_wait" chain 76: thread 100084 (pid 8, crypto returns 5) is sleeping on 0xfffff80003ab2a10 "crypto_ret_wait" chain 77: thread 100083 (pid 7, crypto returns 4) is sleeping on 0xfffff80003ab29b0 "crypto_ret_wait" chain 78: thread 100082 (pid 6, crypto returns 3) is sleeping on 0xfffff80003ab2950 "crypto_ret_wait" chain 79: thread 100081 (pid 5, crypto returns 2) is sleeping on 0xfffff80003ab28f0 "crypto_ret_wait" chain 80: thread 100080 (pid 4, crypto returns 1) is sleeping on 0xfffff80003ab2890 "crypto_ret_wait" chain 81: thread 100079 (pid 3, crypto returns 0) is sleeping on 0xfffff80003ab2830 "crypto_ret_wait" chain 82: thread 100078 (pid 2, crypto) is sleeping on 0xffffffff81daf900 "crypto_wait" chain 83: thread 100065 (pid 14, sequencer 00) is sleeping on 0xfffff80003260488 "seqstate" chain 84: thread 100062 (pid 13, g_event) is sleeping on 0xffffffff81c8da40 "-" chain 85: thread 100063 (pid 13, g_up) is sleeping on 0xffffffff81c8da48 "-" chain 86: thread 100064 (pid 13, g_down) is sleeping on 0xffffffff81c8da50 "-" chain 87: thread 100002 (pid 1, init) is sleeping on 0xfffff800038ee000 "wait" chain 88: thread 100001 (pid 10, audit) is sleeping on 0xffffffff81dafd18 "audit_worker_cv" chain 89: thread 100000 (pid 0, swapper) is sleeping on 0xffffffff81c8dfd0 "swapin" chain 90: thread 100015 (pid 0, softirq_0) is sleeping on 0xfffff80003930100 "-" chain 91: thread 100016 (pid 0, softirq_1) is sleeping on 0xfffff80003930000 "-" chain 92: thread 100017 (pid 0, softirq_2) is sleeping on 0xfffff80003931e00 "-" chain 93: thread 100018 (pid 0, softirq_3) is sleeping on 0xfffff80003931d00 "-" chain 94: thread 100019 (pid 0, softirq_4) is sleeping on 0xfffff80003931c00 "-" chain 95: thread 100020 (pid 0, softirq_5) is sleeping on 0xfffff80003931b00 "-" chain 96: thread 100021 (pid 0, softirq_6) is sleeping on 0xfffff80003931a00 "-" chain 97: thread 100022 (pid 0, softirq_7) is sleeping on 0xfffff80003931900 "-" chain 98: thread 100023 (pid 0, softirq_8) is sleeping on 0xfffff80003931800 "-" chain 99: thread 100024 (pid 0, softirq_9) is sleeping on 0xfffff80003931700 "-" chain 100: thread 100025 (pid 0, softirq_10) is sleeping on 0xfffff80003931600 "-" chain 101: thread 100026 (pid 0, softirq_11) is sleeping on 0xfffff80003931500 "-" chain 102: thread 100027 (pid 0, if_io_tqg_0) is sleeping on 0xfffff80003931400 "-" chain 103: thread 100028 (pid 0, if_io_tqg_1) is sleeping on 0xfffff80003931300 "-" chain 104: thread 100029 (pid 0, if_io_tqg_2) is sleeping on 0xfffff80003931200 "-" chain 105: thread 100030 (pid 0, if_io_tqg_3) is sleeping on 0xfffff80003931100 "-" chain 106: thread 100031 (pid 0, if_io_tqg_4) is sleeping on 0xfffff80003931000 "-" chain 107: thread 100032 (pid 0, if_io_tqg_5) is sleeping on 0xfffff8000392ee00 "-" chain 108: thread 100033 (pid 0, if_io_tqg_6) is sleeping on 0xfffff8000392ed00 "-" chain 109: thread 100034 (pid 0, if_io_tqg_7) is sleeping on 0xfffff8000392ec00 "-" chain 110: thread 100035 (pid 0, if_io_tqg_8) is sleeping on 0xfffff8000392eb00 "-" chain 111: thread 100036 (pid 0, if_io_tqg_9) is sleeping on 0xfffff8000392ea00 "-" chain 112: thread 100037 (pid 0, if_io_tqg_10) is sleeping on 0xfffff8000392e900 "-" chain 113: thread 100038 (pid 0, if_io_tqg_11) is sleeping on 0xfffff8000392e800 "-" chain 114: thread 100039 (pid 0, if_config_tqg_0) is sleeping on 0xfffff8000392e700 "-" chain 115: thread 100040 (pid 0, in6m_free taskq) is sleeping on 0xfffff80003929e00 "-" chain 116: thread 100041 (pid 0, kqueue_ctx taskq) is sleeping on 0xfffff80003929d00 "-" chain 117: thread 100044 (pid 0, thread taskq) is sleeping on 0xfffff80003929800 "-" chain 118: thread 100046 (pid 0, aiod_kick taskq) is sleeping on 0xfffff80003929500 "-" chain 119: thread 100061 (pid 0, firmware taskq) is sleeping on 0xfffff80003a06900 "-" chain 120: thread 100066 (pid 0, crypto_0) is sleeping on 0xfffff80003a06800 "-" chain 121: thread 100067 (pid 0, crypto_1) is sleeping on 0xfffff80003a06800 "-" chain 122: thread 100068 (pid 0, crypto_2) is sleeping on 0xfffff80003a06800 "-" chain 123: thread 100069 (pid 0, crypto_3) is sleeping on 0xfffff80003a06800 "-" chain 124: thread 100070 (pid 0, crypto_4) is sleeping on 0xfffff80003a06800 "-" chain 125: thread 100071 (pid 0, crypto_5) is sleeping on 0xfffff80003a06800 "-" chain 126: thread 100072 (pid 0, crypto_6) is sleeping on 0xfffff80003a06800 "-" chain 127: thread 100073 (pid 0, crypto_7) is sleeping on 0xfffff80003a06800 "-" chain 128: thread 100074 (pid 0, crypto_8) is sleeping on 0xfffff80003a06800 "-" chain 129: thread 100075 (pid 0, crypto_9) is sleeping on 0xfffff80003a06800 "-" chain 130: thread 100076 (pid 0, crypto_10) is sleeping on 0xfffff80003a06800 "-" chain 131: thread 100077 (pid 0, crypto_11) is sleeping on 0xfffff80003a06800 "-" chain 132: thread 100114 (pid 0, mca taskq) is sleeping on 0xfffff800041fd000 "-" chain 133: thread 100121 (pid 0, acpi_task_0) is sleeping on 0xfffff8001832cb00 "-" chain 134: thread 100122 (pid 0, acpi_task_1) is sleeping on 0xfffff8001832cb00 "-" chain 135: thread 100123 (pid 0, acpi_task_2) is sleeping on 0xfffff8001832cb00 "-" chain 136: thread 100124 (pid 0, CAM taskq) is sleeping on 0xfffff80003a06700 "-" db:0:pho> chain 1: thread 100165 (pid 2429, bash) is sleeping on 0xfffff80018e116c0 "select" chain 2: thread 100144 (pid 2428, sshd) is sleeping on 0xfffff80018655140 "select" chain 3: thread 100152 (pid 2425, sshd) is sleeping on 0xfffff80018a33d40 "select" chain 4: thread 100188 (pid 2422, bash) is sleeping on 0xfffff80003ec4ec0 "select" chain 5: thread 100220 (pid 2421, login) is sleeping on 0xfffff801c8ab4000 "wait" chain 6: thread 100209 (pid 2420, getty) is sleeping on 0xfffff800041eb0b0 "ttyin" chain 7: thread 100210 (pid 2419, getty) is sleeping on 0xfffff800182a3cb0 "ttyin" chain 8: thread 100219 (pid 2418, getty) is sleeping on 0xfffff800182a20b0 "ttyin" chain 9: thread 100218 (pid 2417, getty) is sleeping on 0xfffff800182a24b0 "ttyin" chain 10: thread 100156 (pid 2416, getty) is sleeping on 0xfffff800182a28b0 "ttyin" chain 11: thread 100182 (pid 2415, getty) is sleeping on 0xfffff800182a2cb0 "ttyin" chain 12: thread 100192 (pid 2414, getty) is sleeping on 0xfffff800182a50b0 "ttyin" chain 13: thread 100185 (pid 2413, getty) is sleeping on 0xfffff800182a54b0 "ttyin" chain 14: thread 100142 (pid 2412, getty) is sleeping on 0xfffff800182a58b0 "ttyin" chain 15: thread 100205 (pid 2363, cron) is sleeping on 0xffffffff81caea93 "nanslp" chain 16: thread 100203 (pid 2359, sshd) is sleeping on 0xfffff80018656f40 "select" chain 17: thread 100206 (pid 2331, powerd) is sleeping on 0xfffff80018673440 "select" chain 18: thread 100195 (pid 2328, ntpd) is sleeping on 0xfffff80018a33dc0 "select" chain 19: thread 100148 (pid 2265, NLM: master) is sleeping on 0xfffff80018e0e060 "rpcsvc" chain 20: thread 100191 (pid 2262, rpc.statd) is sleeping on 0xfffff80003ec4d40 "select" chain 21: thread 100202 (pid 2216, watchdogd) is sleeping on 0xffffffff81caea99 "nanslp" chain 22: thread 100158 (pid 2068, rpcbind) is sleeping on 0xfffff8004942f9c0 "select" chain 23: thread 100183 (pid 2058, syslogd) is sleeping on 0xfffff80018673540 "select" chain 24: thread 100162 (pid 1987, devd) is sleeping on 0xfffff8000415f640 "select" chain 25: thread 100189 (pid 1982, dhclient) is sleeping on 0xfffff8000415f6c0 "select" chain 26: thread 100167 (pid 1923, dhclient) is sleeping on 0xfffff80018e11740 "select" chain 27: thread 100154 (pid 1920, dhclient) is sleeping on 0xfffff800184e0540 "select" chain 28: thread 100141 (pid 34, syncer) is sleeping on 0xffffffff81d999d8 "syncer" chain 29: thread 100140 (pid 33, vnlru) is sleeping on 0xfffff800182e8000 "vlruwt" chain 30: thread 100130 (pid 32, bufdaemon) is sleeping on 0xffffffff81d98cf0 "qsleep" chain 31: thread 100131 (pid 32, bufspacedaemon-0) is sleeping on 0xffffffff8180aa00 "-" chain 32: thread 100132 (pid 32, bufspacedaemon-1) is sleeping on 0xffffffff81812cc0 "-" chain 33: thread 100133 (pid 32, bufspacedaemon-2) is sleeping on 0xffffffff8181af80 "-" chain 34: thread 100134 (pid 32, bufspacedaemon-3) is sleeping on 0xffffffff81823240 "-" chain 35: thread 100135 (pid 32, bufspacedaemon-4) is sleeping on 0xffffffff8182b500 "-" chain 36: thread 100136 (pid 32, bufspacedaemon-5) is sleeping on 0xffffffff818337c0 "-" chain 37: thread 100137 (pid 32, bufspacedaemon-6) is sleeping on 0xffffffff8183ba80 "-" chain 38: thread 100151 (pid 32, / worker) is sleeping on 0xfffff80018a2ace8 "sdflush" chain 39: thread 100207 (pid 32, /tmp worker) is sleeping on 0xfffff800187e48e8 "sdflush" chain 40: thread 100129 (pid 31, vmdaemon) is sleeping on 0xffffffff81dbdbc8 "psleep" chain 41: thread 100128 (pid 30, dom0) is sleeping on 0xffffffff81db2058 "psleep" chain 42: thread 100138 (pid 30, laundry: dom0) is sleeping on 0xffffffff81db2064 "launds" chain 43: thread 100139 (pid 30, uma) is sleeping on 0xffffffff80f0be70 "umarcl" chain 44: thread 100127 (pid 29, enc_daemon1) is sleeping on 0xfffff800181f8520 "idle" chain 45: thread 100126 (pid 28, enc_daemon0) is sleeping on 0xfffff800181f8a40 "idle" chain 46: thread 100120 (pid 27, rand_harvestq) is sleeping on 0xffffffff81ae2678 "-" chain 47: thread 100119 (pid 26, sctp_iterator) is sleeping on 0xffffffff81d9c150 "waiting_for_work" chain 48: thread 100118 (pid 25, soaiod4) is sleeping on 0xffffffff81d9862c "-" chain 49: thread 100117 (pid 24, soaiod3) is sleeping on 0xffffffff81d9862c "-" chain 50: thread 100116 (pid 23, soaiod2) is sleeping on 0xffffffff81d9862c "-" chain 51: thread 100115 (pid 22, soaiod1) is sleeping on 0xffffffff81d9862c "-" chain 52: thread 100096 (pid 21, usbus0) is sleeping on 0xfffffe00d2d84440 "-" chain 53: thread 100097 (pid 21, usbus0) is sleeping on 0xfffffe00d2d84498 "-" chain 54: thread 100098 (pid 21, usbus0) is sleeping on 0xfffffe00d2d844f0 "-" chain 55: thread 100099 (pid 21, usbus0) is sleeping on 0xfffffe00d2d84548 "-" chain 56: thread 100100 (pid 21, usbus0) is sleeping on 0xfffffe00d2d845a0 "-" chain 57: thread 100102 (pid 21, usbus1) is sleeping on 0xfffffe003e4afcf0 "-" chain 58: thread 100103 (pid 21, usbus1) is sleeping on 0xfffffe003e4afd48 "-" chain 59: thread 100104 (pid 21, usbus1) is sleeping on 0xfffffe003e4afda0 "-" chain 60: thread 100105 (pid 21, usbus1) is sleeping on 0xfffffe003e4afdf8 "-" chain 61: thread 100106 (pid 21, usbus1) is sleeping on 0xfffffe003e4afe50 "-" chain 62: thread 100107 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34cf0 "-" chain 63: thread 100108 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34d48 "-" chain 64: thread 100109 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34da0 "-" chain 65: thread 100110 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34df8 "-" chain 66: thread 100111 (pid 21, usbus2) is sleeping on 0xfffffe00d2e34e50 "-" chain 67: thread 100091 (pid 20, doneq0) is sleeping on 0xffffffff819ba3c0 "-" chain 68: thread 100093 (pid 20, doneq2) is sleeping on 0xffffffff819ba4c0 "-" chain 69: thread 100125 (pid 20, scanner) is sleeping on 0xffffffff819ba290 "-" chain 70: thread 100090 (pid 19, crypto returns 11) is sleeping on 0xfffff80003ab2c50 "crypto_ret_wait" chain 71: thread 100089 (pid 18, crypto returns 10) is sleeping on 0xfffff80003ab2bf0 "crypto_ret_wait" chain 72: thread 100088 (pid 17, crypto returns 9) is sleeping on 0xfffff80003ab2b90 "crypto_ret_wait" chain 73: thread 100087 (pid 16, crypto returns 8) is sleeping on 0xfffff80003ab2b30 "crypto_ret_wait" chain 74: thread 100086 (pid 15, crypto returns 7) is sleeping on 0xfffff80003ab2ad0 "crypto_ret_wait" chain 75: thread 100085 (pid 9, crypto returns 6) is sleeping on 0xfffff80003ab2a70 "crypto_ret_wait" chain 76: thread 100084 (pid 8, crypto returns 5) is sleeping on 0xfffff80003ab2a10 "crypto_ret_wait" chain 77: thread 100083 (pid 7, crypto returns 4) is sleeping on 0xfffff80003ab29b0 "crypto_ret_wait" chain 78: thread 100082 (pid 6, crypto returns 3) is sleeping on 0xfffff80003ab2950 "crypto_ret_wait" chain 79: thread 100081 (pid 5, crypto returns 2) is sleeping on 0xfffff80003ab28f0 "crypto_ret_wait" chain 80: thread 100080 (pid 4, crypto returns 1) is sleeping on 0xfffff80003ab2890 "crypto_ret_wait" chain 81: thread 100079 (pid 3, crypto returns 0) is sleeping on 0xfffff80003ab2830 "crypto_ret_wait" chain 82: thread 100078 (pid 2, crypto) is sleeping on 0xffffffff81daf900 "crypto_wait" chain 83: thread 100065 (pid 14, sequencer 00) is sleeping on 0xfffff80003260488 "seqstate" chain 84: thread 100062 (pid 13, g_event) is sleeping on 0xffffffff81c8da40 "-" chain 85: thread 100063 (pid 13, g_up) is sleeping on 0xffffffff81c8da48 "-" chain 86: thread 100064 (pid 13, g_down) is sleeping on 0xffffffff81c8da50 "-" chain 87: thread 100002 (pid 1, init) is sleeping on 0xfffff800038ee000 "wait" chain 88: thread 100001 (pid 10, audit) is sleeping on 0xffffffff81dafd18 "audit_worker_cv" chain 89: thread 100000 (pid 0, swapper) is sleeping on 0xffffffff81c8dfd0 "swapin" chain 90: thread 100015 (pid 0, softirq_0) is sleeping on 0xfffff80003930100 "-" chain 91: thread 100016 (pid 0, softirq_1) is sleeping on 0xfffff80003930000 "-" chain 92: thread 100017 (pid 0, softirq_2) is sleeping on 0xfffff80003931e00 "-" chain 93: thread 100018 (pid 0, softirq_3) is sleeping on 0xfffff80003931d00 "-" chain 94: thread 100019 (pid 0, softirq_4) is sleeping on 0xfffff80003931c00 "-" chain 95: thread 100020 (pid 0, softirq_5) is sleeping on 0xfffff80003931b00 "-" chain 96: thread 100021 (pid 0, softirq_6) is sleeping on 0xfffff80003931a00 "-" chain 97: thread 100022 (pid 0, softirq_7) is sleeping on 0xfffff80003931900 "-" chain 98: thread 100023 (pid 0, softirq_8) is sleeping on 0xfffff80003931800 "-" chain 99: thread 100024 (pid 0, softirq_9) is sleeping on 0xfffff80003931700 "-" chain 100: thread 100025 (pid 0, softirq_10) is sleeping on 0xfffff80003931600 "-" chain 101: thread 100026 (pid 0, softirq_11) is sleeping on 0xfffff80003931500 "-" chain 102: thread 100027 (pid 0, if_io_tqg_0) is sleeping on 0xfffff80003931400 "-" chain 103: thread 100028 (pid 0, if_io_tqg_1) is sleeping on 0xfffff80003931300 "-" chain 104: thread 100029 (pid 0, if_io_tqg_2) is sleeping on 0xfffff80003931200 "-" chain 105: thread 100030 (pid 0, if_io_tqg_3) is sleeping on 0xfffff80003931100 "-" chain 106: thread 100031 (pid 0, if_io_tqg_4) is sleeping on 0xfffff80003931000 "-" chain 107: thread 100032 (pid 0, if_io_tqg_5) is sleeping on 0xfffff8000392ee00 "-" chain 108: thread 100033 (pid 0, if_io_tqg_6) is sleeping on 0xfffff8000392ed00 "-" chain 109: thread 100034 (pid 0, if_io_tqg_7) is sleeping on 0xfffff8000392ec00 "-" chain 110: thread 100035 (pid 0, if_io_tqg_8) is sleeping on 0xfffff8000392eb00 "-" chain 111: thread 100036 (pid 0, if_io_tqg_9) is sleeping on 0xfffff8000392ea00 "-" chain 112: thread 100037 (pid 0, if_io_tqg_10) is sleeping on 0xfffff8000392e900 "-" chain 113: thread 100038 (pid 0, if_io_tqg_11) is sleeping on 0xfffff8000392e800 "-" chain 114: thread 100039 (pid 0, if_config_tqg_0) is sleeping on 0xfffff8000392e700 "-" chain 115: thread 100040 (pid 0, in6m_free taskq) is sleeping on 0xfffff80003929e00 "-" chain 116: thread 100041 (pid 0, kqueue_ctx taskq) is sleeping on 0xfffff80003929d00 "-" chain 117: thread 100044 (pid 0, thread taskq) is sleeping on 0xfffff80003929800 "-" chain 118: thread 100046 (pid 0, aiod_kick taskq) is sleeping on 0xfffff80003929500 "-" chain 119: thread 100061 (pid 0, firmware taskq) is sleeping on 0xfffff80003a06900 "-" chain 120: thread 100066 (pid 0, crypto_0) is sleeping on 0xfffff80003a06800 "-" chain 121: thread 100067 (pid 0, crypto_1) is sleeping on 0xfffff80003a06800 "-" chain 122: thread 100068 (pid 0, crypto_2) is sleeping on 0xfffff80003a06800 "-" chain 123: thread 100069 (pid 0, crypto_3) is sleeping on 0xfffff80003a06800 "-" chain 124: thread 100070 (pid 0, crypto_4) is sleeping on 0xfffff80003a06800 "-" chain 125: thread 100071 (pid 0, crypto_5) is sleeping on 0xfffff80003a06800 "-" chain 126: thread 100072 (pid 0, crypto_6) is sleeping on 0xfffff80003a06800 "-" chain 127: thread 100073 (pid 0, crypto_7) is sleeping on 0xfffff80003a06800 "-" chain 128: thread 100074 (pid 0, crypto_8) is sleeping on 0xfffff80003a06800 "-" chain 129: thread 100075 (pid 0, crypto_9) is sleeping on 0xfffff80003a06800 "-" chain 130: thread 100076 (pid 0, crypto_10) is sleeping on 0xfffff80003a06800 "-" chain 131: thread 100077 (pid 0, crypto_11) is sleeping on 0xfffff80003a06800 "-" chain 132: thread 100114 (pid 0, mca taskq) is sleeping on 0xfffff800041fd000 "-" chain 133: thread 100121 (pid 0, acpi_task_0) is sleeping on 0xfffff8001832cb00 "-" chain 134: thread 100122 (pid 0, acpi_task_1) is sleeping on 0xfffff8001832cb00 "-" chain 135: thread 100123 (pid 0, acpi_task_2) is sleeping on 0xfffff8001832cb00 "-" chain 136: thread 100124 (pid 0, CAM taskq) is sleeping on 0xfffff80003a06700 "-" db> reset Index: src/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c =================================================================== --- src/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c (revision 362844) +++ src/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c (working copy) @@ -154,6 +154,7 @@ mount_snapshot(kthread_t *td, vnode_t **vpp, const vput(vp); return (error); } + vn_seqc_write_begin(vp); VOP_UNLOCK(vp); /* @@ -206,6 +207,7 @@ mount_snapshot(kthread_t *td, vnode_t **vpp, const VI_LOCK(vp); vp->v_iflag &= ~VI_MOUNT; VI_UNLOCK(vp); + vn_seqc_write_end(vp); vput(vp); vfs_unbusy(mp); vfs_freeopts(mp->mnt_optnew); @@ -241,6 +243,7 @@ mount_snapshot(kthread_t *td, vnode_t **vpp, const vfs_event_signal(NULL, VQ_MOUNT, 0); if (VFS_ROOT(mp, LK_EXCLUSIVE, &mvp)) panic("mount: lost mount"); + vn_seqc_write_end(vp); VOP_UNLOCK(vp); vfs_op_exit(mp); vfs_unbusy(mp); Index: src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h =================================================================== --- src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h (revision 362844) +++ src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h (working copy) @@ -245,7 +245,14 @@ VTOZ(vnode_t *vp) #define ZTOV(ZP) ((ZP)->z_vnode) #define VTOZ(VP) ((znode_t *)(VP)->v_data) #endif +static __inline znode_t * +VTOZ_SMR(vnode_t *vp) +{ + znode_t *zp = (znode_t *)atomic_load_ptr(&vp->v_data); + return (zp); +} + /* Called on entry to each ZFS vnode and vfs operation */ #define ZFS_ENTER(zfsvfs) \ { \ Index: src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c =================================================================== --- src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c (revision 362844) +++ src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c (working copy) @@ -1146,6 +1146,7 @@ zfs_acl_chown_setattr(znode_t *zp) ASSERT_VOP_ELOCKED(ZTOV(zp), __func__); ASSERT(MUTEX_HELD(&zp->z_acl_lock)); + ASSERT_VOP_IN_SEQC(ZTOV(zp)); if ((error = zfs_acl_node_read(zp, &aclp, B_FALSE)) == 0) zp->z_mode = zfs_mode_compute(zp->z_mode, aclp, @@ -1175,6 +1176,7 @@ zfs_aclset_common(znode_t *zp, zfs_acl_t *aclp, cr mode = zp->z_mode; + ASSERT_VOP_IN_SEQC(ZTOV(zp)); mode = zfs_mode_compute(mode, aclp, &zp->z_pflags, zp->z_uid, zp->z_gid); Index: src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c =================================================================== --- src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c (revision 362844) +++ src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c (working copy) @@ -1391,6 +1391,9 @@ zfs_domount(vfs_t *vfsp, char *osname) vfsp->vfs_data = zfsvfs; vfsp->mnt_flag |= MNT_LOCAL; +#if defined(_KERNEL) && !defined(KMEM_DEBUG) + vfsp->mnt_kern_flag |= MNTK_FPLOOKUP; +#endif vfsp->mnt_kern_flag |= MNTK_LOOKUP_SHARED; vfsp->mnt_kern_flag |= MNTK_SHARED_WRITES; vfsp->mnt_kern_flag |= MNTK_EXTENDED_SHARED; Index: src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c =================================================================== --- src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c (revision 362844) +++ src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c (working copy) @@ -3698,6 +3698,7 @@ zfs_rename(vnode_t *sdvp, vnode_t **svpp, struct c char *snm = scnp->cn_nameptr; char *tnm = tcnp->cn_nameptr; int error = 0; + bool want_seqc_end = false; /* Reject renames across filesystems. */ if ((*svpp)->v_mount != tdvp->v_mount || @@ -3828,6 +3829,14 @@ zfs_rename(vnode_t *sdvp, vnode_t **svpp, struct c } } + vn_seqc_write_begin(*svpp); + vn_seqc_write_begin(sdvp); + if (*tvpp != NULL) + vn_seqc_write_begin(*svpp); + if (tdvp != *tvpp) + vn_seqc_write_begin(sdvp); + want_seqc_end = true; + vnevent_rename_src(*svpp, sdvp, scnp->cn_nameptr, ct); if (tzp) vnevent_rename_dest(*tvpp, tdvp, tnm, ct); @@ -3914,10 +3923,20 @@ zfs_rename(vnode_t *sdvp, vnode_t **svpp, struct c unlockout: /* all 4 vnodes are locked, ZFS_ENTER called */ ZFS_EXIT(zfsvfs); + if (want_seqc_end) { + vn_seqc_write_end(*svpp); + vn_seqc_write_end(sdvp); + if (*tvpp != NULL) + vn_seqc_write_end(*svpp); + if (tdvp != *tvpp) + vn_seqc_write_end(sdvp); + want_seqc_end = false; + } VOP_UNLOCK(*svpp); VOP_UNLOCK(sdvp); out: /* original two vnodes are locked */ + MPASS(!want_seqc_end); if (error == 0 && zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS) zil_commit(zilog, 0); @@ -4861,7 +4880,32 @@ zfs_freebsd_write(ap) ap->a_cred, NULL)); } +/* + * VOP_FPLOOKUP_VEXEC routines are subject to special circumstances, see + * the comment above cache_fplookup for details. + */ static int +zfs_freebsd_fplookup_vexec(struct vop_fplookup_vexec_args *v) +{ + vnode_t *vp; + znode_t *zp; + uint64_t pflags; + + vp = v->a_vp; + zp = VTOZ_SMR(vp); + if (__predict_false(zp == NULL)) + return (EAGAIN); + pflags = atomic_load_64(&zp->z_pflags); + if (pflags & ZFS_AV_QUARANTINED) + return (EAGAIN); + if (pflags & ZFS_XATTR) + return (EAGAIN); + if ((pflags & ZFS_NO_EXECS_DENIED) == 0) + return (EAGAIN); + return (0); +} + +static int zfs_freebsd_access(ap) struct vop_access_args /* { struct vnode *a_vp; @@ -5998,6 +6042,7 @@ struct vop_vector zfs_vnodeops = { .vop_inactive = zfs_freebsd_inactive, .vop_need_inactive = zfs_freebsd_need_inactive, .vop_reclaim = zfs_freebsd_reclaim, + .vop_fplookup_vexec = zfs_freebsd_fplookup_vexec, .vop_access = zfs_freebsd_access, .vop_allocate = VOP_EINVAL, .vop_lookup = zfs_cache_lookup, @@ -6066,6 +6111,7 @@ VFS_VOP_VECTOR_REGISTER(zfs_fifoops); */ struct vop_vector zfs_shareops = { .vop_default = &default_vnodeops, + .vop_fplookup_vexec = zfs_freebsd_fplookup_vexec, .vop_access = zfs_freebsd_access, .vop_inactive = zfs_freebsd_inactive, .vop_reclaim = zfs_freebsd_reclaim, Index: src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c =================================================================== --- src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c (revision 362844) +++ src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c (working copy) @@ -99,7 +99,12 @@ SYSCTL_INT(_debug_sizeof, OID_AUTO, znode, CTLFLAG */ krwlock_t zfsvfs_lock; +#if defined(_KERNEL) && !defined(KMEM_DEBUG) +#define _ZFS_USE_SMR +static uma_zone_t znode_uma_zone; +#else static kmem_cache_t *znode_cache = NULL; +#endif /*ARGSUSED*/ static void @@ -366,6 +371,23 @@ zfs_znode_move(void *buf, void *newbuf, size_t siz } #endif /* illumos */ +#ifdef _ZFS_USE_SMR +VFS_SMR_DECLARE; + +static int +zfs_znode_cache_constructor_smr(void *mem, int size __unused, void *private, int flags) +{ + + return (zfs_znode_cache_constructor(mem, private, flags)); +} + +static void +zfs_znode_cache_destructor_smr(void *mem, int size __unused, void *private) +{ + + zfs_znode_cache_destructor(mem, private); +} + void zfs_znode_init(void) { @@ -373,6 +395,34 @@ zfs_znode_init(void) * Initialize zcache */ rw_init(&zfsvfs_lock, NULL, RW_DEFAULT, NULL); + ASSERT(znode_uma_zone == NULL); + znode_uma_zone = uma_zcreate("zfs_znode_cache", + sizeof (znode_t), zfs_znode_cache_constructor_smr, + zfs_znode_cache_destructor_smr, NULL, NULL, 0, 0); + VFS_SMR_ZONE_SET(znode_uma_zone); +} + +static znode_t * +zfs_znode_alloc_kmem(int flags) +{ + + return (uma_zalloc_smr(znode_uma_zone, flags)); +} + +static void +zfs_znode_free_kmem(znode_t *zp) +{ + + uma_zfree_smr(znode_uma_zone, zp); +} +#else +void +zfs_znode_init(void) +{ + /* + * Initialize zcache + */ + rw_init(&zfsvfs_lock, NULL, RW_DEFAULT, NULL); ASSERT(znode_cache == NULL); znode_cache = kmem_cache_create("zfs_znode_cache", sizeof (znode_t), 0, zfs_znode_cache_constructor, @@ -380,6 +430,21 @@ zfs_znode_init(void) kmem_cache_set_move(znode_cache, zfs_znode_move); } +static znode_t * +zfs_znode_alloc_kmem(int flags) +{ + + return (kmem_cache_alloc(znode_cache, flags)); +} + +static void +zfs_znode_free_kmem(znode_t *zp) +{ + + kmem_cache_free(znode_cache, zp); +} +#endif + void zfs_znode_fini(void) { @@ -393,9 +458,17 @@ zfs_znode_fini(void) /* * Cleanup zcache */ - if (znode_cache) +#ifdef _ZFS_USE_SMR + if (znode_uma_zone) { + uma_zdestroy(znode_uma_zone); + znode_uma_zone = NULL; + } +#else + if (znode_cache) { kmem_cache_destroy(znode_cache); - znode_cache = NULL; + znode_cache = NULL; + } +#endif rw_destroy(&zfsvfs_lock); } @@ -508,7 +581,7 @@ zfs_create_share_dir(zfsvfs_t *zfsvfs, dmu_tx_t *t vattr.va_uid = crgetuid(kcred); vattr.va_gid = crgetgid(kcred); - sharezp = kmem_cache_alloc(znode_cache, KM_SLEEP); + sharezp = zfs_znode_alloc_kmem(KM_SLEEP); ASSERT(!POINTER_IS_VALID(sharezp->z_zfsvfs)); sharezp->z_moved = 0; sharezp->z_unlinked = 0; @@ -527,7 +600,7 @@ zfs_create_share_dir(zfsvfs_t *zfsvfs, dmu_tx_t *t zfs_acl_ids_free(&acl_ids); sa_handle_destroy(sharezp->z_sa_hdl); - kmem_cache_free(znode_cache, sharezp); + zfs_znode_free_kmem(sharezp); return (error); } @@ -642,13 +715,18 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, i int count = 0; int error; - zp = kmem_cache_alloc(znode_cache, KM_SLEEP); + zp = zfs_znode_alloc_kmem(KM_SLEEP); +#ifndef _ZFS_USE_SMR + KASSERT((zfsvfs->z_parent->z_vfs->mnt_kern_flag & MNTK_FPLOOKUP) == 0, + ("%s: fast path lookup enabled without smr", __func__)); +#endif + KASSERT(curthread->td_vp_reserved != NULL, ("zfs_znode_alloc: getnewvnode without preallocated vnode")); error = getnewvnode("zfs", zfsvfs->z_parent->z_vfs, &zfs_vnodeops, &vp); if (error != 0) { - kmem_cache_free(znode_cache, zp); + zfs_znode_free_kmem(zp); return (NULL); } zp->z_vnode = vp; @@ -695,7 +773,7 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, i sa_handle_destroy(zp->z_sa_hdl); zfs_vnode_forget(vp); zp->z_vnode = NULL; - kmem_cache_free(znode_cache, zp); + zfs_znode_free_kmem(zp); return (NULL); } @@ -1061,6 +1139,8 @@ zfs_xvattr_set(znode_t *zp, xvattr_t *xvap, dmu_tx xoap = xva_getxoptattr(xvap); ASSERT(xoap); + ASSERT_VOP_IN_SEQC(ZTOV(zp)); + if (XVA_ISSET_REQ(xvap, XAT_CREATETIME)) { uint64_t times[2]; ZFS_TIME_ENCODE(&xoap->xoa_createtime, times); @@ -1490,7 +1570,7 @@ zfs_znode_free(znode_t *zp) zp->z_acl_cached = NULL; } - kmem_cache_free(znode_cache, zp); + zfs_znode_free_kmem(zp); #ifdef illumos VFS_RELE(zfsvfs->z_vfs); @@ -1950,7 +2030,7 @@ zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t * zfsvfs = kmem_zalloc(sizeof (zfsvfs_t), KM_SLEEP); - rootzp = kmem_cache_alloc(znode_cache, KM_SLEEP); + rootzp = zfs_znode_alloc_kmem(KM_SLEEP); ASSERT(!POINTER_IS_VALID(rootzp->z_zfsvfs)); rootzp->z_moved = 0; rootzp->z_unlinked = 0; @@ -1994,7 +2074,7 @@ zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t * POINTER_INVALIDATE(&rootzp->z_zfsvfs); sa_handle_destroy(rootzp->z_sa_hdl); - kmem_cache_free(znode_cache, rootzp); + zfs_znode_free_kmem(rootzp); /* * Create shares directory Index: src/sys/compat/linux/linux_socket.c =================================================================== --- src/sys/compat/linux/linux_socket.c (revision 362844) +++ src/sys/compat/linux/linux_socket.c (working copy) @@ -40,7 +40,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -612,19 +611,17 @@ linux_accept_common(struct thread *td, int s, l_ui { struct l_sockaddr *lsa; struct sockaddr *sa; - struct file *fp, *fp1; + struct file *fp; int bflags, len; struct socket *so; int error, error1; bflags = 0; - fp = NULL; - sa = NULL; - error = linux_set_socket_flags(flags, &bflags); if (error != 0) return (error); + sa = NULL; if (PTRIN(addr) == NULL) { len = 0; error = kern_accept4(td, s, NULL, NULL, bflags, NULL); @@ -635,54 +632,48 @@ linux_accept_common(struct thread *td, int s, l_ui if (len < 0) return (EINVAL); error = kern_accept4(td, s, &sa, &len, bflags, &fp); + if (error == 0) + fdrop(fp, td); } - /* - * Translate errno values into ones used by Linux. - */ if (error != 0) { /* * XXX. This is wrong, different sockaddr structures * have different sizes. */ - switch (error) { - case EFAULT: - if (namelen != sizeof(struct sockaddr_in)) - error = EINVAL; - break; - case EINVAL: - error1 = getsock_cap(td, s, &cap_accept_rights, &fp1, NULL, NULL); + if (error == EFAULT && namelen != sizeof(struct sockaddr_in)) + { + error = EINVAL; + goto out; + } + if (error == EINVAL) { + error1 = getsock_cap(td, s, &cap_accept_rights, &fp, NULL, NULL); if (error1 != 0) { error = error1; - break; + goto out; } - so = fp1->f_data; + so = fp->f_data; if (so->so_type == SOCK_DGRAM) error = EOPNOTSUPP; - fdrop(fp1, td); - break; + fdrop(fp, td); } - return (error); + goto out; } - if (len != 0) { + if (len != 0 && error == 0) { error = bsd_to_linux_sockaddr(sa, &lsa, len); if (error == 0) error = copyout(lsa, PTRIN(addr), len); free(lsa, M_SONAME); + } - /* - * XXX: We should also copyout the len, shouldn't we? - */ + free(sa, M_SONAME); - if (error != 0) { - fdclose(td, fp, td->td_retval[0]); - td->td_retval[0] = 0; - } +out: + if (error != 0) { + (void)kern_close(td, td->td_retval[0]); + td->td_retval[0] = 0; } - if (fp != NULL) - fdrop(fp, td); - free(sa, M_SONAME); return (error); } Index: src/sys/compat/linuxkpi/common/src/linux_current.c =================================================================== --- src/sys/compat/linuxkpi/common/src/linux_current.c (revision 362844) +++ src/sys/compat/linuxkpi/common/src/linux_current.c (working copy) @@ -219,21 +219,11 @@ linux_get_pid_task(pid_t pid) bool linux_task_exiting(struct task_struct *task) { - struct thread *td; struct proc *p; bool ret; ret = false; - - /* try to find corresponding thread */ - td = tdfind(task->pid, -1); - if (td != NULL) { - p = td->td_proc; - } else { - /* try to find corresponding procedure */ - p = pfind(task->pid); - } - + p = pfind(task->pid); if (p != NULL) { if ((p->p_flag & P_WEXIT) != 0) ret = true; Index: src/sys/fs/tmpfs/tmpfs.h =================================================================== --- src/sys/fs/tmpfs/tmpfs.h (revision 362844) +++ src/sys/fs/tmpfs/tmpfs.h (working copy) @@ -527,6 +527,14 @@ VP_TO_TMPFS_NODE(struct vnode *vp) } static inline struct tmpfs_node * +VP_TO_TMPFS_NODE_SMR(struct vnode *vp) +{ + + MPASS(vp != NULL); + return (atomic_load_ptr(&vp->v_data)); +} + +static inline struct tmpfs_node * VP_TO_TMPFS_DIR(struct vnode *vp) { struct tmpfs_node *node; Index: src/sys/fs/tmpfs/tmpfs_subr.c =================================================================== --- src/sys/fs/tmpfs/tmpfs_subr.c (revision 362844) +++ src/sys/fs/tmpfs/tmpfs_subr.c (working copy) @@ -75,6 +75,7 @@ static long tmpfs_pages_reserved = TMPFS_PAGES_MIN static uma_zone_t tmpfs_dirent_pool; static uma_zone_t tmpfs_node_pool; +VFS_SMR_DECLARE; static int tmpfs_node_ctor(void *mem, int size, void *arg, int flags) @@ -131,6 +132,7 @@ tmpfs_subr_init(void) tmpfs_node_pool = uma_zcreate("TMPFS node", sizeof(struct tmpfs_node), tmpfs_node_ctor, tmpfs_node_dtor, tmpfs_node_init, tmpfs_node_fini, UMA_ALIGN_PTR, 0); + VFS_SMR_ZONE_SET(tmpfs_node_pool); } void @@ -288,7 +290,7 @@ tmpfs_alloc_node(struct mount *mp, struct tmpfs_mo if ((mp->mnt_kern_flag & MNT_RDONLY) != 0) return (EROFS); - nnode = uma_zalloc_arg(tmpfs_node_pool, tmp, M_WAITOK); + nnode = uma_zalloc_smr(tmpfs_node_pool, M_WAITOK); /* Generic initialization. */ nnode->tn_type = type; @@ -435,7 +437,7 @@ tmpfs_free_node_locked(struct tmpfs_mount *tmp, st panic("tmpfs_free_node: type %p %d", node, (int)node->tn_type); } - uma_zfree(tmpfs_node_pool, node); + uma_zfree_smr(tmpfs_node_pool, node); TMPFS_LOCK(tmp); tmpfs_free_tmp(tmp); return (true); @@ -1619,10 +1621,11 @@ tmpfs_chflags(struct vnode *vp, u_long flags, stru int tmpfs_chmod(struct vnode *vp, mode_t mode, struct ucred *cred, struct thread *p) { - int error; + int error, newmode; struct tmpfs_node *node; ASSERT_VOP_ELOCKED(vp, "chmod"); + ASSERT_VOP_IN_SEQC(vp); node = VP_TO_TMPFS_NODE(vp); @@ -1656,10 +1659,10 @@ tmpfs_chmod(struct vnode *vp, mode_t mode, struct return (error); } + newmode = node->tn_mode & ~ALLPERMS; + newmode |= mode & ALLPERMS; + atomic_store_int(&node->tn_mode, newmode); - node->tn_mode &= ~ALLPERMS; - node->tn_mode |= mode & ALLPERMS; - node->tn_status |= TMPFS_NODE_CHANGED; ASSERT_VOP_ELOCKED(vp, "chmod2"); @@ -1684,6 +1687,7 @@ tmpfs_chown(struct vnode *vp, uid_t uid, gid_t gid gid_t ogid; ASSERT_VOP_ELOCKED(vp, "chown"); + ASSERT_VOP_IN_SEQC(vp); node = VP_TO_TMPFS_NODE(vp); @@ -1730,7 +1734,7 @@ tmpfs_chown(struct vnode *vp, uid_t uid, gid_t gid if ((node->tn_mode & (S_ISUID | S_ISGID)) && (ouid != uid || ogid != gid)) { if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID)) - node->tn_mode &= ~(S_ISUID | S_ISGID); + atomic_store_int(&node->tn_mode, node->tn_mode & ~(S_ISUID | S_ISGID)); } ASSERT_VOP_ELOCKED(vp, "chown2"); Index: src/sys/fs/tmpfs/tmpfs_vfsops.c =================================================================== --- src/sys/fs/tmpfs/tmpfs_vfsops.c (revision 362844) +++ src/sys/fs/tmpfs/tmpfs_vfsops.c (working copy) @@ -462,6 +462,8 @@ tmpfs_mount(struct mount *mp) mp->mnt_flag |= MNT_LOCAL; mp->mnt_kern_flag |= MNTK_LOOKUP_SHARED | MNTK_EXTENDED_SHARED | MNTK_TEXT_REFS | MNTK_NOMSYNC; + if (!nonc) + mp->mnt_kern_flag |= MNTK_FPLOOKUP; MNT_IUNLOCK(mp); mp->mnt_data = tmp; Index: src/sys/fs/tmpfs/tmpfs_vnops.c =================================================================== --- src/sys/fs/tmpfs/tmpfs_vnops.c (revision 362844) +++ src/sys/fs/tmpfs/tmpfs_vnops.c (working copy) @@ -317,7 +317,33 @@ tmpfs_close(struct vop_close_args *v) return (0); } +/* + * VOP_FPLOOKUP_VEXEC routines are subject to special circumstances, see + * the comment above cache_fplookup for details. + */ int +tmpfs_fplookup_vexec(struct vop_fplookup_vexec_args *v) +{ + struct vnode *vp; + struct tmpfs_node *node; + struct ucred *cred; + mode_t all_x, mode; + + vp = v->a_vp; + node = VP_TO_TMPFS_NODE_SMR(vp); + if (__predict_false(node == NULL)) + return (EAGAIN); + + all_x = S_IXUSR | S_IXGRP | S_IXOTH; + mode = atomic_load_int(&node->tn_mode); + if (__predict_true((mode & all_x) == all_x)) + return (0); + + cred = v->a_cred; + return (vaccess_vexec_smr(mode, node->tn_uid, node->tn_gid, cred)); +} + +int tmpfs_access(struct vop_access_args *v) { struct vnode *vp = v->a_vp; @@ -428,6 +454,8 @@ tmpfs_setattr(struct vop_setattr_args *v) MPASS(VOP_ISLOCKED(vp)); + vn_seqc_write_begin(vp); + error = 0; /* Abort if any unsettable attribute is given. */ @@ -466,6 +494,8 @@ tmpfs_setattr(struct vop_setattr_args *v) * from tmpfs_update. */ tmpfs_update(vp); + vn_seqc_write_end(vp); + MPASS(VOP_ISLOCKED(vp)); return error; @@ -806,6 +836,7 @@ tmpfs_rename(struct vop_rename_args *v) struct tmpfs_node *tnode; struct tmpfs_node *tdnode; int error; + bool want_seqc_end; MPASS(VOP_ISLOCKED(tdvp)); MPASS(IMPLIES(tvp != NULL, VOP_ISLOCKED(tvp))); @@ -812,6 +843,8 @@ tmpfs_rename(struct vop_rename_args *v) MPASS(fcnp->cn_flags & HASBUF); MPASS(tcnp->cn_flags & HASBUF); + want_seqc_end = false; + /* * Disallow cross-device renames. * XXX Why isn't this done by the caller? @@ -852,6 +885,13 @@ tmpfs_rename(struct vop_rename_args *v) } } + if (tvp != NULL) + vn_seqc_write_begin(tvp); + vn_seqc_write_begin(tdvp); + vn_seqc_write_begin(fvp); + vn_seqc_write_begin(fdvp); + want_seqc_end = true; + tmp = VFS_TO_TMPFS(tdvp->v_mount); tdnode = VP_TO_TMPFS_DIR(tdvp); tnode = (tvp == NULL) ? NULL : VP_TO_TMPFS_NODE(tvp); @@ -1065,6 +1105,14 @@ out_locked: VOP_UNLOCK(fdvp); out: + if (want_seqc_end) { + if (tvp != NULL) + vn_seqc_write_end(tvp); + vn_seqc_write_end(tdvp); + vn_seqc_write_end(fvp); + vn_seqc_write_end(fdvp); + } + /* * Release target nodes. * XXX: I don't understand when tdvp can be the same as tvp, but @@ -1621,6 +1669,7 @@ struct vop_vector tmpfs_vnodeop_entries = { .vop_mknod = tmpfs_mknod, .vop_open = tmpfs_open, .vop_close = tmpfs_close, + .vop_fplookup_vexec = tmpfs_fplookup_vexec, .vop_access = tmpfs_access, .vop_getattr = tmpfs_getattr, .vop_setattr = tmpfs_setattr, Index: src/sys/fs/tmpfs/tmpfs_vnops.h =================================================================== --- src/sys/fs/tmpfs/tmpfs_vnops.h (revision 362844) +++ src/sys/fs/tmpfs/tmpfs_vnops.h (working copy) @@ -49,6 +49,7 @@ extern struct vop_vector tmpfs_vnodeop_entries; extern struct vop_vector tmpfs_vnodeop_nonc_entries; vop_access_t tmpfs_access; +vop_fplookup_vexec_t tmpfs_fplookup_vexec; vop_getattr_t tmpfs_getattr; vop_setattr_t tmpfs_setattr; vop_pathconf_t tmpfs_pathconf; Index: src/sys/kern/kern_descrip.c =================================================================== --- src/sys/kern/kern_descrip.c (revision 362844) +++ src/sys/kern/kern_descrip.c (working copy) @@ -102,8 +102,8 @@ MALLOC_DECLARE(M_FADVISE); static __read_mostly uma_zone_t file_zone; static __read_mostly uma_zone_t filedesc0_zone; -static __read_mostly uma_zone_t pwd_zone; -static __read_mostly smr_t pwd_smr; +__read_mostly uma_zone_t pwd_zone; +VFS_SMR_DECLARE; static int closefp(struct filedesc *fdp, int fd, struct file *fp, struct thread *td, int holdleaders); @@ -3346,17 +3346,27 @@ pwd_hold(struct thread *td) fdp = td->td_proc->p_fd; - smr_enter(pwd_smr); + vfs_smr_enter(); for (;;) { - pwd = smr_entered_load(&fdp->fd_pwd, pwd_smr); + pwd = smr_entered_load(&fdp->fd_pwd, VFS_SMR()); MPASS(pwd != NULL); if (refcount_acquire_if_not_zero(&pwd->pwd_refcount)) break; } - smr_exit(pwd_smr); + vfs_smr_exit(); return (pwd); } +struct pwd * +pwd_get_smr(void) +{ + struct pwd *pwd; + + pwd = smr_entered_load(&curproc->p_fd->fd_pwd, VFS_SMR()); + MPASS(pwd != NULL); + return (pwd); +} + static struct pwd * pwd_alloc(void) { @@ -4363,7 +4373,11 @@ filelistinit(void *dummy) NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); pwd_zone = uma_zcreate("PWD", sizeof(struct pwd), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_SMR); - pwd_smr = uma_zone_get_smr(pwd_zone); + /* + * XXXMJG this is a temporary hack due to boot ordering issues against + * the vnode zone. + */ + vfs_smr = uma_zone_get_smr(pwd_zone); mtx_init(&sigio_lock, "sigio lock", NULL, MTX_DEF); } SYSINIT(select, SI_SUB_LOCK, SI_ORDER_FIRST, filelistinit, NULL); Index: src/sys/kern/kern_proc.c =================================================================== --- src/sys/kern/kern_proc.c (revision 362844) +++ src/sys/kern/kern_proc.c (working copy) @@ -752,10 +752,8 @@ pgadjustjobc(struct pgrp *pgrp, int entering) PGRP_LOCK(pgrp); if (entering) { - MPASS(pgrp->pg_jobc >= 0); pgrp->pg_jobc++; } else { - MPASS(pgrp->pg_jobc > 0); --pgrp->pg_jobc; if (pgrp->pg_jobc == 0) orphanpg(pgrp); Index: src/sys/kern/subr_intr.c =================================================================== --- src/sys/kern/subr_intr.c (revision 362844) +++ src/sys/kern/subr_intr.c (working copy) @@ -1517,12 +1517,13 @@ intr_map_get_isrc(u_int res_id) { struct intr_irqsrc *isrc; - isrc = NULL; mtx_lock(&irq_map_lock); - if (res_id < irq_map_count && irq_map[res_id] != NULL) - isrc = irq_map[res_id]->isrc; + if ((res_id >= irq_map_count) || (irq_map[res_id] == NULL)) { + mtx_unlock(&irq_map_lock); + return (NULL); + } + isrc = irq_map[res_id]->isrc; mtx_unlock(&irq_map_lock); - return (isrc); } @@ -1531,8 +1532,11 @@ intr_map_set_isrc(u_int res_id, struct intr_irqsrc { mtx_lock(&irq_map_lock); - if (res_id < irq_map_count && irq_map[res_id] != NULL) - irq_map[res_id]->isrc = isrc; + if ((res_id >= irq_map_count) || (irq_map[res_id] == NULL)) { + mtx_unlock(&irq_map_lock); + return; + } + irq_map[res_id]->isrc = isrc; mtx_unlock(&irq_map_lock); } Index: src/sys/kern/vfs_cache.c =================================================================== --- src/sys/kern/vfs_cache.c (revision 362844) +++ src/sys/kern/vfs_cache.c (working copy) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -67,6 +68,11 @@ __FBSDID("$FreeBSD$"); #include #endif +#include + +#include +#include + #ifdef DDB #include #endif @@ -100,6 +106,8 @@ SDT_PROBE_DEFINE2(vfs, namecache, zap_negative, do SDT_PROBE_DEFINE2(vfs, namecache, shrink_negative, done, "struct vnode *", "char *"); +SDT_PROBE_DEFINE3(vfs, fplookup, lookup, done, "struct nameidata", "int", "bool"); + /* * This structure describes the elements in the cache of recent * names looked up by namei. @@ -2799,3 +2807,844 @@ DB_SHOW_COMMAND(vpath, db_show_vpath) } #endif + +extern uma_zone_t namei_zone; + +static bool __read_frequently cache_fast_lookup = true; +SYSCTL_BOOL(_vfs, OID_AUTO, cache_fast_lookup, CTLFLAG_RW, + &cache_fast_lookup, 0, ""); + +#define CACHE_FPL_FAILED -2020 + +static void +cache_fpl_cleanup_cnp(struct componentname *cnp) +{ + + uma_zfree(namei_zone, cnp->cn_pnbuf); +#ifdef DIAGNOSTIC + cnp->cn_pnbuf = NULL; + cnp->cn_nameptr = NULL; +#endif +} + +static void +cache_fpl_handle_root(struct nameidata *ndp, struct vnode **dpp) +{ + struct componentname *cnp; + + cnp = &ndp->ni_cnd; + while (*(cnp->cn_nameptr) == '/') { + cnp->cn_nameptr++; + ndp->ni_pathlen--; + } +} + +static void +cache_fpl_handle_root_initial(struct nameidata *ndp, struct vnode **dpp) +{ + + cache_fpl_handle_root(ndp, dpp); + *dpp = ndp->ni_rootdir; +} + +/* + * Components of nameidata (or objects it can point to) which may + * need restoring in case fast path lookup fails. + */ +struct nameidata_saved { + int cn_flags; + long cn_namelen; + char *cn_nameptr; + size_t ni_pathlen; +}; + +struct cache_fpl { + int line; + enum cache_fpl_status status; + bool in_smr; + struct nameidata *ndp; + struct nameidata_saved snd; + struct componentname *cnp; + struct vnode *dvp; + seqc_t dvp_seqc; + struct vnode *tvp; + seqc_t tvp_seqc; + struct pwd *pwd; +}; + +static void +cache_fpl_checkpoint(struct cache_fpl *fpl, struct nameidata_saved *snd) +{ + + snd->cn_flags = fpl->ndp->ni_cnd.cn_flags; + snd->cn_namelen = fpl->ndp->ni_cnd.cn_namelen; + snd->cn_nameptr = fpl->ndp->ni_cnd.cn_nameptr; + snd->ni_pathlen = fpl->ndp->ni_pathlen; +} + +static void +cache_fpl_restore(struct cache_fpl *fpl, struct nameidata_saved *snd) +{ + + fpl->ndp->ni_cnd.cn_flags = snd->cn_flags; + fpl->ndp->ni_cnd.cn_namelen = snd->cn_namelen; + fpl->ndp->ni_cnd.cn_nameptr = snd->cn_nameptr; + fpl->ndp->ni_pathlen = snd->ni_pathlen; +} + +#ifdef INVARIANTS +#define cache_fpl_smr_assert_entered(fpl) ({ \ + struct cache_fpl *_fpl = (fpl); \ + MPASS(_fpl->in_smr == true); \ + VFS_SMR_ASSERT_ENTERED(); \ +}) +#define cache_fpl_smr_assert_not_entered(fpl) ({ \ + struct cache_fpl *_fpl = (fpl); \ + MPASS(_fpl->in_smr == false); \ + VFS_SMR_ASSERT_NOT_ENTERED(); \ +}) +#else +#define cache_fpl_smr_assert_entered(fpl) do { } while (0) +#define cache_fpl_smr_assert_not_entered(fpl) do { } while (0) +#endif + +#define cache_fpl_smr_enter(fpl) ({ \ + struct cache_fpl *_fpl = (fpl); \ + MPASS(_fpl->in_smr == false); \ + vfs_smr_enter(); \ + _fpl->in_smr = true; \ +}) + +#define cache_fpl_smr_exit(fpl) ({ \ + struct cache_fpl *_fpl = (fpl); \ + MPASS(_fpl->in_smr == true); \ + vfs_smr_exit(); \ + _fpl->in_smr = false; \ +}) + +static int +cache_fpl_aborted_impl(struct cache_fpl *fpl, int line) +{ + + KASSERT(fpl->status == CACHE_FPL_STATUS_UNSET, + ("%s: lookup status already set at %d\n", __func__, fpl->line)); + fpl->status = CACHE_FPL_STATUS_ABORTED; + fpl->line = line; + return (CACHE_FPL_FAILED); +} + +#define cache_fpl_aborted(x) cache_fpl_aborted_impl((x), __LINE__) + +static int +cache_fpl_partial_impl(struct cache_fpl *fpl, int line) +{ + + KASSERT(fpl->status == CACHE_FPL_STATUS_UNSET, + ("%s: lookup status already set at %d\n", __func__, fpl->line)); + fpl->status = CACHE_FPL_STATUS_PARTIAL; + fpl->line = line; + return (CACHE_FPL_FAILED); +} + +#define cache_fpl_partial(x) cache_fpl_partial_impl((x), __LINE__) + +static int +cache_fpl_handled_impl(struct cache_fpl *fpl, int error, int line) +{ + + KASSERT(fpl->status == CACHE_FPL_STATUS_UNSET, + ("%s: lookup status already set at %d\n", __func__, fpl->line)); + MPASS(error != CACHE_FPL_FAILED); + fpl->status = CACHE_FPL_STATUS_HANDLED; + fpl->line = line; + return (error); +} + +#define cache_fpl_handled(x, e) cache_fpl_handled_impl((x), (e), __LINE__) + +#define CACHE_FPL_SUPPORTED_CN_FLAGS \ + (LOCKLEAF | FOLLOW | LOCKSHARED | SAVENAME | ISOPEN | AUDITVNODE1) + +static bool +cache_can_fplookup(struct cache_fpl *fpl) +{ + struct nameidata *ndp; + struct componentname *cnp; + struct thread *td; + + ndp = fpl->ndp; + cnp = fpl->cnp; + td = cnp->cn_thread; + + if (!cache_fast_lookup) { + cache_fpl_aborted(fpl); + return (false); + } + if (mac_vnode_check_lookup_enabled()) { + cache_fpl_aborted(fpl); + return (false); + } + if (cnp->cn_flags & ~CACHE_FPL_SUPPORTED_CN_FLAGS) { + cache_fpl_aborted(fpl); + return (false); + } + if ((cnp->cn_flags & LOCKLEAF) == 0) { + cache_fpl_aborted(fpl); + return (false); + } + if (cnp->cn_nameiop != LOOKUP) { + cache_fpl_aborted(fpl); + return (false); + } + if (ndp->ni_dirfd != AT_FDCWD) { + cache_fpl_aborted(fpl); + return (false); + } + if (IN_CAPABILITY_MODE(td)) { + cache_fpl_aborted(fpl); + return (false); + } + if (AUDITING_TD(td)) { + cache_fpl_aborted(fpl); + return (false); + } + if (ndp->ni_startdir != NULL) { + cache_fpl_aborted(fpl); + return (false); + } + return (true); +} + +static bool +cache_fplookup_vnode_supported(struct vnode *vp) +{ + + switch (vp->v_type) { + case VLNK: + return (false); + default: + break; + } + return (true); +} + +/* + * The target vnode is not supported, prepare for the slow path to take over. + */ +static int +cache_fplookup_partial_setup(struct cache_fpl *fpl) +{ + struct componentname *cnp; + struct vnode *dvp; + struct pwd *pwd; + seqc_t dvp_seqc; + + cnp = fpl->cnp; + dvp = fpl->dvp; + dvp_seqc = fpl->dvp_seqc; + + if (!vref_smr(dvp)) { + fpl->status = CACHE_FPL_STATUS_ABORTED; + cache_fpl_smr_exit(fpl); + return (CACHE_FPL_FAILED); + } + + cache_fpl_smr_exit(fpl); + if (!seqc_consistent(&dvp->v_seqc, dvp_seqc)) { + fpl->status = CACHE_FPL_STATUS_ABORTED; + return (CACHE_FPL_FAILED); + } + + pwd = pwd_hold(curthread); + if (fpl->pwd != pwd) { + fpl->status = CACHE_FPL_STATUS_ABORTED; + vrele(dvp); + pwd_drop(pwd); + return (CACHE_FPL_FAILED); + } + + fpl->ndp->ni_startdir = dvp; + return (0); +} + +static int +cache_fplookup_final(struct cache_fpl *fpl) +{ + struct componentname *cnp; + enum vgetstate tvs; + struct vnode *dvp, *tvp; + seqc_t dvp_seqc, tvp_seqc; + int error; + + cnp = fpl->cnp; + dvp = fpl->dvp; + dvp_seqc = fpl->dvp_seqc; + tvp = fpl->tvp; + tvp_seqc = fpl->tvp_seqc; + + VNPASS(cache_fplookup_vnode_supported(dvp), dvp); + MPASS((cnp->cn_flags & LOCKLEAF) != 0); + + tvs = vget_prep_smr(tvp); + if (tvs == VGET_NONE) { + return (cache_fpl_partial(fpl)); + } + + if (!seqc_consistent(&dvp->v_seqc, dvp_seqc)) { + cache_fpl_smr_exit(fpl); + vget_abort(tvp, tvs); + return (cache_fpl_aborted(fpl)); + } + + cache_fpl_smr_exit(fpl); + + error = vget_finish(tvp, cnp->cn_lkflags, tvs); + if (error != 0) { + return (cache_fpl_aborted(fpl)); + } + + if (!seqc_consistent(&tvp->v_seqc, tvp_seqc)) { + vput(tvp); + return (cache_fpl_aborted(fpl)); + } + + return (cache_fpl_handled(fpl, 0)); +} + +static int +cache_fplookup_next(struct cache_fpl *fpl) +{ + struct componentname *cnp; + struct namecache *ncp; + struct vnode *dvp, *tvp; + u_char nc_flag; + uint32_t hash; + + cnp = fpl->cnp; + dvp = fpl->dvp; + + if (__predict_false(cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.')) { + fpl->tvp = dvp; + fpl->tvp_seqc = seqc_read_any(&dvp->v_seqc); + if (seqc_in_modify(fpl->tvp_seqc)) { + return (cache_fpl_partial(fpl)); + } + return (0); + } + + hash = cache_get_hash(cnp->cn_nameptr, cnp->cn_namelen, dvp); + + CK_LIST_FOREACH(ncp, (NCHHASH(hash)), nc_hash) { + counter_u64_add(numchecks, 1); + if (ncp->nc_dvp == dvp && ncp->nc_nlen == cnp->cn_namelen && + !bcmp(ncp->nc_name, cnp->cn_nameptr, ncp->nc_nlen)) + break; + } + + fpl->tvp = (void *)0xdeadbeef; + + /* + * If there is no entry we have to punt to the slow path to perform + * actual lookup. Should there be nothing with this name a negative + * entry will be created. + */ + if (__predict_false(ncp == NULL)) { + return (cache_fpl_partial(fpl)); + } + + tvp = atomic_load_ptr(&ncp->nc_vp); + nc_flag = atomic_load_char(&ncp->nc_flag); + if (__predict_false(cache_ncp_invalid(ncp))) { + return (cache_fpl_partial(fpl)); + } + if (__predict_false(nc_flag & NCF_WHITE)) { + return (cache_fpl_partial(fpl)); + } + + fpl->tvp = tvp; + if (nc_flag & NCF_NEGATIVE) { + if ((nc_flag & NCF_HOTNEGATIVE) == 0) { + /* + * TODO + * Promoting to hot negative requires locks which are + * not yet supported for simplicity. + */ + return (cache_fpl_partial(fpl)); + } + SDT_PROBE2(vfs, namecache, lookup, hit__negative, dvp, + ncp->nc_name); + counter_u64_add(numneghits, 1); + cache_fpl_smr_exit(fpl); + return (cache_fpl_handled(fpl, ENOENT)); + } + + fpl->tvp_seqc = seqc_read_any(&tvp->v_seqc); + if (seqc_in_modify(fpl->tvp_seqc)) { + return (cache_fpl_partial(fpl)); + } + + if (!cache_fplookup_vnode_supported(tvp)) { + return (cache_fpl_partial(fpl)); + } + + counter_u64_add(numposhits, 1); + SDT_PROBE3(vfs, namecache, lookup, hit, dvp, ncp->nc_name, tvp); + return (0); +} + +static bool +cache_fplookup_mp_supported(struct mount *mp) +{ + + if (mp == NULL) + return (false); + if ((mp->mnt_kern_flag & MNTK_FPLOOKUP) == 0) + return (false); + if (mp->mnt_flag & MNT_UNION) + return (false); + return (true); +} + +/* + * Walk up the mount stack (if any). + * + * Correctness is provided in the following ways: + * - all vnodes are protected from freeing with SMR + * - struct mount objects are type stable making them always safe to access + * - stability of the particular mount is provided by busying it + * - relationship between the vnode which is mounted on and the mount is + * verified with the vnode sequence counter after busying + * - association between root vnode of the mount and the mount is protected + * by busy + * + * From that point on we can read the sequence counter of the root vnode + * and get the next mount on the stack (if any) using the same protection. + * + * By the end of successful walk we are guaranteed the reached state was + * indeed present at least at some point which matches the regular lookup. + */ +static int +cache_fplookup_climb_mount(struct cache_fpl *fpl) +{ + struct mount *mp, *prev_mp; + struct vnode *vp; + seqc_t vp_seqc; + + vp = fpl->tvp; + vp_seqc = fpl->tvp_seqc; + if (vp->v_type != VDIR) + return (0); + + mp = atomic_load_ptr(&vp->v_mountedhere); + if (mp == NULL) + return (0); + + prev_mp = NULL; + for (;;) { + if (!vfs_op_thread_enter(mp)) { + if (prev_mp != NULL) + vfs_op_thread_exit(prev_mp); + return (cache_fpl_partial(fpl)); + } + if (prev_mp != NULL) + vfs_op_thread_exit(prev_mp); + if (!seqc_consistent(&vp->v_seqc, vp_seqc)) { + vfs_op_thread_exit(mp); + return (cache_fpl_partial(fpl)); + } + if (!cache_fplookup_mp_supported(mp)) { + vfs_op_thread_exit(mp); + return (cache_fpl_partial(fpl)); + } + vp = atomic_load_ptr(&mp->mnt_rootvnode); + if (vp == NULL || VN_IS_DOOMED(vp)) { + vfs_op_thread_exit(mp); + return (cache_fpl_partial(fpl)); + } + vp_seqc = seqc_read_any(&vp->v_seqc); + if (seqc_in_modify(vp_seqc)) { + vfs_op_thread_exit(mp); + return (cache_fpl_partial(fpl)); + } + prev_mp = mp; + mp = atomic_load_ptr(&vp->v_mountedhere); + if (mp == NULL) + break; + } + + vfs_op_thread_exit(prev_mp); + fpl->tvp = vp; + fpl->tvp_seqc = vp_seqc; + return (0); +} + +/* + * Parse the path. + * + * The code is mostly copy-pasted from regular lookup, see lookup(). + * The structure is maintained along with comments for easier maintenance. + * Deduplicating the code will become feasible after fast path lookup + * becomes more feature-complete. + */ +static int +cache_fplookup_parse(struct cache_fpl *fpl) +{ + struct nameidata *ndp; + struct componentname *cnp; + char *cp; + char *prev_ni_next; /* saved ndp->ni_next */ + size_t prev_ni_pathlen; /* saved ndp->ni_pathlen */ + + ndp = fpl->ndp; + cnp = fpl->cnp; + + /* + * Search a new directory. + * + * The last component of the filename is left accessible via + * cnp->cn_nameptr for callers that need the name. Callers needing + * the name set the SAVENAME flag. When done, they assume + * responsibility for freeing the pathname buffer. + */ + for (cp = cnp->cn_nameptr; *cp != 0 && *cp != '/'; cp++) + continue; + cnp->cn_namelen = cp - cnp->cn_nameptr; + if (cnp->cn_namelen > NAME_MAX) { + return (cache_fpl_handled(fpl, ENAMETOOLONG)); + } + prev_ni_pathlen = ndp->ni_pathlen; + ndp->ni_pathlen -= cnp->cn_namelen; + KASSERT(ndp->ni_pathlen <= PATH_MAX, + ("%s: ni_pathlen underflow to %zd\n", __func__, ndp->ni_pathlen)); + prev_ni_next = ndp->ni_next; + ndp->ni_next = cp; + + /* + * Replace multiple slashes by a single slash and trailing slashes + * by a null. This must be done before VOP_LOOKUP() because some + * fs's don't know about trailing slashes. Remember if there were + * trailing slashes to handle symlinks, existing non-directories + * and non-existing files that won't be directories specially later. + */ + while (*cp == '/' && (cp[1] == '/' || cp[1] == '\0')) { + cp++; + ndp->ni_pathlen--; + if (*cp == '\0') { + /* + * TODO + * Regular lookup performs the following: + * *ndp->ni_next = '\0'; + * cnp->cn_flags |= TRAILINGSLASH; + * + * Which is problematic since it modifies data read + * from userspace. Then if fast path lookup was to + * abort we would have to either restore it or convey + * the flag. Since this is a corner case just ignore + * it for simplicity. + */ + return (cache_fpl_partial(fpl)); + } + } + ndp->ni_next = cp; + + cnp->cn_flags |= MAKEENTRY; + + if (cnp->cn_namelen == 2 && + cnp->cn_nameptr[1] == '.' && cnp->cn_nameptr[0] == '.') + cnp->cn_flags |= ISDOTDOT; + else + cnp->cn_flags &= ~ISDOTDOT; + if (*ndp->ni_next == 0) + cnp->cn_flags |= ISLASTCN; + else + cnp->cn_flags &= ~ISLASTCN; + + /* + * Check for degenerate name (e.g. / or "") + * which is a way of talking about a directory, + * e.g. like "/." or ".". + * + * TODO + * Another corner case handled by the regular lookup + */ + if (__predict_false(cnp->cn_nameptr[0] == '\0')) { + return (cache_fpl_partial(fpl)); + } + return (0); +} + +static void +cache_fplookup_parse_advance(struct cache_fpl *fpl) +{ + struct nameidata *ndp; + struct componentname *cnp; + + ndp = fpl->ndp; + cnp = fpl->cnp; + + cnp->cn_nameptr = ndp->ni_next; + while (*cnp->cn_nameptr == '/') { + cnp->cn_nameptr++; + ndp->ni_pathlen--; + } +} + +static int +cache_fplookup_impl(struct vnode *dvp, struct cache_fpl *fpl) +{ + struct nameidata *ndp; + struct componentname *cnp; + struct mount *mp; + int error; + + error = CACHE_FPL_FAILED; + ndp = fpl->ndp; + ndp->ni_lcf = 0; + cnp = fpl->cnp; + cnp->cn_lkflags = LK_SHARED; + if ((cnp->cn_flags & LOCKSHARED) == 0) + cnp->cn_lkflags = LK_EXCLUSIVE; + + cache_fpl_checkpoint(fpl, &fpl->snd); + + fpl->dvp = dvp; + fpl->dvp_seqc = seqc_read_any(&fpl->dvp->v_seqc); + if (seqc_in_modify(fpl->dvp_seqc)) { + cache_fpl_partial(fpl); + goto out; + } + mp = atomic_load_ptr(&fpl->dvp->v_mount); + if (!cache_fplookup_mp_supported(mp)) { + cache_fpl_partial(fpl); + goto out; + } + + VNPASS(cache_fplookup_vnode_supported(fpl->dvp), fpl->dvp); + + for (;;) { + error = cache_fplookup_parse(fpl); + if (__predict_false(error != 0)) { + break; + } + + if (cnp->cn_flags & ISDOTDOT) { + error = cache_fpl_partial(fpl); + break; + } + + VNPASS(cache_fplookup_vnode_supported(fpl->dvp), fpl->dvp); + + error = VOP_FPLOOKUP_VEXEC(fpl->dvp, cnp->cn_cred, cnp->cn_thread); + if (__predict_false(error != 0)) { + switch (error) { + case EAGAIN: + case EOPNOTSUPP: /* can happen when racing against vgone */ + cache_fpl_partial(fpl); + break; + default: + /* + * See the API contract for VOP_FPLOOKUP_VEXEC. + */ + if (!seqc_consistent(&fpl->dvp->v_seqc, fpl->dvp_seqc)) { + error = cache_fpl_partial(fpl); + } else { + cache_fpl_handled(fpl, error); + } + break; + } + break; + } + + error = cache_fplookup_next(fpl); + if (__predict_false(error != 0)) { + break; + } + + VNPASS(!seqc_in_modify(fpl->tvp_seqc), fpl->tvp); + + error = cache_fplookup_climb_mount(fpl); + if (__predict_false(error != 0)) { + break; + } + + VNPASS(!seqc_in_modify(fpl->tvp_seqc), fpl->tvp); + + if (cnp->cn_flags & ISLASTCN) { + error = cache_fplookup_final(fpl); + break; + } + + if (!seqc_consistent(&fpl->dvp->v_seqc, fpl->dvp_seqc)) { + /* + * We don't have the previous vnode stored and + * the directory has changed. Go the safe route + * and restart the entire lookup. This should be + * very rare in practice. + */ + error = cache_fpl_aborted(fpl); + break; + } + + fpl->dvp = fpl->tvp; + fpl->dvp_seqc = fpl->tvp_seqc; + + cache_fplookup_parse_advance(fpl); + cache_fpl_checkpoint(fpl, &fpl->snd); + } +out: + switch (fpl->status) { + case CACHE_FPL_STATUS_UNSET: + __assert_unreachable(); + break; + case CACHE_FPL_STATUS_PARTIAL: + cache_fpl_smr_assert_entered(fpl); + return (cache_fplookup_partial_setup(fpl)); + case CACHE_FPL_STATUS_ABORTED: + if (fpl->in_smr) + cache_fpl_smr_exit(fpl); + return (CACHE_FPL_FAILED); + case CACHE_FPL_STATUS_HANDLED: + cache_fpl_smr_assert_not_entered(fpl); + if (__predict_false(error != 0)) { + ndp->ni_dvp = NULL; + ndp->ni_vp = NULL; + cache_fpl_cleanup_cnp(cnp); + return (error); + } + ndp->ni_dvp = fpl->dvp; + ndp->ni_vp = fpl->tvp; + if (cnp->cn_flags & SAVENAME) + cnp->cn_flags |= HASBUF; + else + cache_fpl_cleanup_cnp(cnp); + return (error); + } +} + +/* + * Fast path lookup protected with SMR and sequence counters. + * + * Note: all VOP_FPLOOKUP_VEXEC routines have a comment referencing this one. + * + * Filesystems can opt in by setting the MNTK_FPLOOKUP flag and meeting criteria + * outlined below. + * + * Traditional vnode lookup conceptually looks like this: + * + * vn_lock(current); + * for (;;) { + * next = find(); + * vn_lock(next); + * vn_unlock(current); + * current = next; + * if (last) + * break; + * } + * + * Each jump to the next vnode is safe memory-wise and atomic with respect to + * any modifications thanks to holding respective locks. + * + * The same guarantee can be provided with a combination of safe memory + * reclamation and sequence counters instead. If all operations which affect + * the relationship between the current vnode and the one we are looking for + * also modify the counter, we can verify whether all the conditions held as + * we made the jump. This includes things like permissions, mount point etc. + * You can grep for vn_seqc_write_begin to check all the places. + * + * Thus this translates to: + * + * vfs_smr_enter(); + * current_seqc = seqc_read_any(current); + * if (seqc_in_modify(current_seqc)) // someone is altering the vnode + * abort(); + * for (;;) { + * next = find(); + * next_seqc = seqc_read_any(next); + * if (!seqc_consistent(current, current_seqc) // someone is altering the vnode + * abort(); + * current = next; // we know nothing of importance has changed + * current_seqc = next_seqc; // store the counter for the next iteration + * if (last) + * break; + * } + * + * API contract for VOP_FPLOOKUP_VEXEC routines is as follows: + * - they are called while within vfs_smr protection which they must never exit + * - EAGAIN can be returned to denote checking could not be performed, it is + * always valid to return it + * - if the sequence counter has not changed the result must be valid + * - if the sequence counter has changed both false positives and false negatives + * are permitted (since the result will be rejected later) + * - for simple cases of unix permission checks vaccess_vexec_smr can be used + * + * Caveats to watch out for: + * - vnodes are passed unlocked and unreferenced with nothing stopping + * VOP_RECLAIM, in turn meaning that ->v_data can become NULL. It is advised + * to use atomic_load_ptr to fetch it. + * - aforementioned object can also get freed, meaning absent other means it + * should be protected with vfs_smr + * - either safely checking permissions as they are modified or guaranteeing + * their stability is left to the routine + */ +int +cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status, + struct pwd **pwdp) +{ + struct cache_fpl fpl; + struct pwd *pwd; + struct vnode *dvp; + struct componentname *cnp; + struct nameidata_saved orig; + int error; + + *status = CACHE_FPL_STATUS_UNSET; + bzero(&fpl, sizeof(fpl)); + fpl.status = CACHE_FPL_STATUS_UNSET; + fpl.ndp = ndp; + fpl.cnp = &ndp->ni_cnd; + MPASS(curthread == fpl.cnp->cn_thread); + + if (!cache_can_fplookup(&fpl)) { + SDT_PROBE3(vfs, fplookup, lookup, done, ndp, fpl.line, fpl.status); + *status = fpl.status; + return (EOPNOTSUPP); + } + + cache_fpl_checkpoint(&fpl, &orig); + + cache_fpl_smr_enter(&fpl); + pwd = pwd_get_smr(); + fpl.pwd = pwd; + ndp->ni_rootdir = pwd->pwd_rdir; + ndp->ni_topdir = pwd->pwd_jdir; + + cnp = fpl.cnp; + cnp->cn_nameptr = cnp->cn_pnbuf; + if (cnp->cn_pnbuf[0] == '/') { + cache_fpl_handle_root_initial(ndp, &dvp); + } else { + MPASS(ndp->ni_dirfd == AT_FDCWD); + dvp = pwd->pwd_cdir; + } + + error = cache_fplookup_impl(dvp, &fpl); + cache_fpl_smr_assert_not_entered(&fpl); + SDT_PROBE3(vfs, fplookup, lookup, done, ndp, fpl.line, fpl.status); + + *status = fpl.status; + switch (fpl.status) { + case CACHE_FPL_STATUS_UNSET: + __assert_unreachable(); + break; + case CACHE_FPL_STATUS_HANDLED: + break; + case CACHE_FPL_STATUS_PARTIAL: + *pwdp = fpl.pwd; + cache_fpl_restore(&fpl, &fpl.snd); + break; + case CACHE_FPL_STATUS_ABORTED: + cache_fpl_restore(&fpl, &orig); + break; + } + return (error); +} Index: src/sys/kern/vfs_lookup.c =================================================================== --- src/sys/kern/vfs_lookup.c (revision 362844) +++ src/sys/kern/vfs_lookup.c (working copy) @@ -280,78 +280,22 @@ namei_handle_root(struct nameidata *ndp, struct vn return (0); } -/* - * Convert a pathname into a pointer to a locked vnode. - * - * The FOLLOW flag is set when symbolic links are to be followed - * when they occur at the end of the name translation process. - * Symbolic links are always followed for all other pathname - * components other than the last. - * - * The segflg defines whether the name is to be copied from user - * space or kernel space. - * - * Overall outline of namei: - * - * copy in name - * get starting directory - * while (!done && !error) { - * call lookup to search path. - * if symbolic link, massage name in buffer and continue - * } - */ -int -namei(struct nameidata *ndp) +static int +namei_setup(struct nameidata *ndp, struct vnode **dpp, struct pwd **pwdp) { - char *cp; /* pointer into pathname argument */ - struct vnode *dp; /* the directory we are searching */ - struct iovec aiov; /* uio for reading symbolic links */ struct componentname *cnp; struct file *dfp; struct thread *td; - struct proc *p; struct pwd *pwd; cap_rights_t rights; struct filecaps dirfd_caps; - struct uio auio; - int error, linklen, startdir_used; + int error, startdir_used; cnp = &ndp->ni_cnd; td = cnp->cn_thread; - p = td->td_proc; - ndp->ni_cnd.cn_cred = ndp->ni_cnd.cn_thread->td_ucred; - KASSERT(cnp->cn_cred && p, ("namei: bad cred/proc")); - KASSERT((cnp->cn_nameiop & (~OPMASK)) == 0, - ("namei: nameiop contaminated with flags")); - KASSERT((cnp->cn_flags & OPMASK) == 0, - ("namei: flags contaminated with nameiops")); - MPASS(ndp->ni_startdir == NULL || ndp->ni_startdir->v_type == VDIR || - ndp->ni_startdir->v_type == VBAD); - TAILQ_INIT(&ndp->ni_cap_tracker); - ndp->ni_lcf = 0; - /* We will set this ourselves if we need it. */ - cnp->cn_flags &= ~TRAILINGSLASH; + *pwdp = NULL; - /* - * Get a buffer for the name to be translated, and copy the - * name into the buffer. - */ - if ((cnp->cn_flags & HASBUF) == 0) - cnp->cn_pnbuf = uma_zalloc(namei_zone, M_WAITOK); - if (ndp->ni_segflg == UIO_SYSSPACE) - error = copystr(ndp->ni_dirp, cnp->cn_pnbuf, MAXPATHLEN, - &ndp->ni_pathlen); - else - error = copyinstr(ndp->ni_dirp, cnp->cn_pnbuf, MAXPATHLEN, - &ndp->ni_pathlen); - - /* - * Don't allow empty pathnames. - */ - if (error == 0 && *cnp->cn_pnbuf == '\0') - error = ENOENT; - #ifdef CAPABILITY_MODE /* * In capability mode, lookups must be restricted to happen in @@ -366,8 +310,7 @@ namei_handle_root(struct nameidata *ndp, struct vn * previously walked by us, which prevents an escape from * the relative root. */ - if (error == 0 && IN_CAPABILITY_MODE(td) && - (cnp->cn_flags & NOCAPCHECK) == 0) { + if (IN_CAPABILITY_MODE(td) && (cnp->cn_flags & NOCAPCHECK) == 0) { ndp->ni_lcf |= NI_LCF_STRICTRELATIVE; if (ndp->ni_dirfd == AT_FDCWD) { #ifdef KTRACE @@ -374,16 +317,10 @@ namei_handle_root(struct nameidata *ndp, struct vn if (KTRPOINT(td, KTR_CAPFAIL)) ktrcapfail(CAPFAIL_LOOKUP, NULL, NULL); #endif - error = ECAPMODE; + return (ECAPMODE); } } #endif - if (error != 0) { - namei_cleanup_cnp(cnp); - ndp->ni_vp = NULL; - return (error); - } - ndp->ni_loopcnt = 0; #ifdef KTRACE if (KTRPOINT(td, KTR_NAMEI)) { KASSERT(cnp->cn_thread == curthread, @@ -391,6 +328,8 @@ namei_handle_root(struct nameidata *ndp, struct vn ktrnamei(cnp->cn_pnbuf); } #endif + error = 0; + /* * Get starting point for the translation. */ @@ -402,19 +341,16 @@ namei_handle_root(struct nameidata *ndp, struct vn ndp->ni_rootdir = pwd->pwd_rdir; ndp->ni_topdir = pwd->pwd_jdir; - startdir_used = 0; - dp = NULL; - cnp->cn_nameptr = cnp->cn_pnbuf; if (cnp->cn_pnbuf[0] == '/') { ndp->ni_resflags |= NIRES_ABS; - error = namei_handle_root(ndp, &dp); + error = namei_handle_root(ndp, dpp); } else { if (ndp->ni_startdir != NULL) { - dp = ndp->ni_startdir; + *dpp = ndp->ni_startdir; startdir_used = 1; } else if (ndp->ni_dirfd == AT_FDCWD) { - dp = pwd->pwd_cdir; - vrefact(dp); + *dpp = pwd->pwd_cdir; + vrefact(*dpp); } else { rights = ndp->ni_rightsneeded; cap_rights_set_one(&rights, CAP_LOOKUP); @@ -441,8 +377,8 @@ namei_handle_root(struct nameidata *ndp, struct vn } else if (dfp->f_vnode == NULL) { error = ENOTDIR; } else { - dp = dfp->f_vnode; - vrefact(dp); + *dpp = dfp->f_vnode; + vrefact(*dpp); if ((dfp->f_flag & FSEARCH) != 0) cnp->cn_flags |= NOEXECCHECK; @@ -464,7 +400,7 @@ namei_handle_root(struct nameidata *ndp, struct vn } #endif } - if (error == 0 && dp->v_type != VDIR) + if (error == 0 && (*dpp)->v_type != VDIR) error = ENOTDIR; } if (error == 0 && (cnp->cn_flags & BENEATH) != 0) { @@ -476,7 +412,7 @@ namei_handle_root(struct nameidata *ndp, struct vn cap_rights_set_one(&rights, CAP_LOOKUP); error = fgetvp_rights(td, ndp->ni_dirfd, &rights, &dirfd_caps, &ndp->ni_beneath_latch); - if (error == 0 && dp->v_type != VDIR) { + if (error == 0 && (*dpp)->v_type != VDIR) { vrele(ndp->ni_beneath_latch); error = ENOTDIR; } @@ -488,15 +424,15 @@ namei_handle_root(struct nameidata *ndp, struct vn * If we are auditing the kernel pathname, save the user pathname. */ if (cnp->cn_flags & AUDITVNODE1) - AUDIT_ARG_UPATH1_VP(td, ndp->ni_rootdir, dp, cnp->cn_pnbuf); + AUDIT_ARG_UPATH1_VP(td, ndp->ni_rootdir, *dpp, cnp->cn_pnbuf); if (cnp->cn_flags & AUDITVNODE2) - AUDIT_ARG_UPATH2_VP(td, ndp->ni_rootdir, dp, cnp->cn_pnbuf); + AUDIT_ARG_UPATH2_VP(td, ndp->ni_rootdir, *dpp, cnp->cn_pnbuf); if (ndp->ni_startdir != NULL && !startdir_used) vrele(ndp->ni_startdir); if (error != 0) { - if (dp != NULL) - vrele(dp); - goto out; + if (*dpp != NULL) + vrele(*dpp); + return (error); } MPASS((ndp->ni_lcf & (NI_LCF_BENEATH_ABS | NI_LCF_LATCH)) != NI_LCF_BENEATH_ABS); @@ -505,8 +441,124 @@ namei_handle_root(struct nameidata *ndp, struct vn ((ndp->ni_lcf & NI_LCF_STRICTRELATIVE) == 0 && (cnp->cn_flags & BENEATH) != 0)) ndp->ni_lcf |= NI_LCF_CAP_DOTDOT; - SDT_PROBE3(vfs, namei, lookup, entry, dp, cnp->cn_pnbuf, + SDT_PROBE3(vfs, namei, lookup, entry, *dpp, cnp->cn_pnbuf, cnp->cn_flags); + *pwdp = pwd; + return (0); +} + +/* + * Convert a pathname into a pointer to a locked vnode. + * + * The FOLLOW flag is set when symbolic links are to be followed + * when they occur at the end of the name translation process. + * Symbolic links are always followed for all other pathname + * components other than the last. + * + * The segflg defines whether the name is to be copied from user + * space or kernel space. + * + * Overall outline of namei: + * + * copy in name + * get starting directory + * while (!done && !error) { + * call lookup to search path. + * if symbolic link, massage name in buffer and continue + * } + */ +int +namei(struct nameidata *ndp) +{ + char *cp; /* pointer into pathname argument */ + struct vnode *dp; /* the directory we are searching */ + struct iovec aiov; /* uio for reading symbolic links */ + struct componentname *cnp; + struct thread *td; + struct proc *p; + struct pwd *pwd; + struct uio auio; + int error, linklen; + enum cache_fpl_status status; + + cnp = &ndp->ni_cnd; + td = cnp->cn_thread; + p = td->td_proc; + ndp->ni_cnd.cn_cred = ndp->ni_cnd.cn_thread->td_ucred; + KASSERT(cnp->cn_cred && p, ("namei: bad cred/proc")); + KASSERT((cnp->cn_nameiop & (~OPMASK)) == 0, + ("namei: nameiop contaminated with flags")); + KASSERT((cnp->cn_flags & OPMASK) == 0, + ("namei: flags contaminated with nameiops")); + MPASS(ndp->ni_startdir == NULL || ndp->ni_startdir->v_type == VDIR || + ndp->ni_startdir->v_type == VBAD); + TAILQ_INIT(&ndp->ni_cap_tracker); + ndp->ni_lcf = 0; + ndp->ni_loopcnt = 0; + dp = NULL; + + /* We will set this ourselves if we need it. */ + cnp->cn_flags &= ~TRAILINGSLASH; + + ndp->ni_vp = NULL; + + /* + * Get a buffer for the name to be translated, and copy the + * name into the buffer. + */ + if ((cnp->cn_flags & HASBUF) == 0) + cnp->cn_pnbuf = uma_zalloc(namei_zone, M_WAITOK); + if (ndp->ni_segflg == UIO_SYSSPACE) + error = copystr(ndp->ni_dirp, cnp->cn_pnbuf, MAXPATHLEN, + &ndp->ni_pathlen); + else + error = copyinstr(ndp->ni_dirp, cnp->cn_pnbuf, MAXPATHLEN, + &ndp->ni_pathlen); + + if (error != 0) { + namei_cleanup_cnp(cnp); + return (error); + } + + cnp->cn_nameptr = cnp->cn_pnbuf; + + /* + * Don't allow empty pathnames. + */ + if (*cnp->cn_pnbuf == '\0') { + namei_cleanup_cnp(cnp); + return (ENOENT); + } + + /* + * First try the fast path. + * + * If it fails to handle the lookup, we are going to do perform it below. + * Note this means that we either start from scratch or continue where it + * left off. + */ + error = cache_fplookup(ndp, &status, &pwd); + switch (status) { + case CACHE_FPL_STATUS_UNSET: + __assert_unreachable(); + break; + case CACHE_FPL_STATUS_HANDLED: + return (error); + case CACHE_FPL_STATUS_PARTIAL: + dp = ndp->ni_startdir; + break; + case CACHE_FPL_STATUS_ABORTED: + error = namei_setup(ndp, &dp, &pwd); + if (error != 0) { + namei_cleanup_cnp(cnp); + return (error); + } + break; + } + + /* + * Perform the lookup. + */ for (;;) { ndp->ni_startdir = dp; error = lookup(ndp); Index: src/sys/kern/vfs_mount.c =================================================================== --- src/sys/kern/vfs_mount.c (revision 362844) +++ src/sys/kern/vfs_mount.c (working copy) @@ -947,6 +947,7 @@ vfs_domount_first( vput(vp); return (error); } + vn_seqc_write_begin(vp); VOP_UNLOCK(vp); /* Allocate and initialize the filesystem. */ @@ -979,9 +980,11 @@ vfs_domount_first( VI_LOCK(vp); vp->v_iflag &= ~VI_MOUNT; VI_UNLOCK(vp); + vn_seqc_write_end(vp); vrele(vp); return (error); } + vn_seqc_write_begin(newdp); VOP_UNLOCK(newdp); if (mp->mnt_opt != NULL) @@ -1018,6 +1021,8 @@ vfs_domount_first( EVENTHANDLER_DIRECT_INVOKE(vfs_mounted, mp, newdp, td); VOP_UNLOCK(newdp); mountcheckdirs(vp, newdp); + vn_seqc_write_end(vp); + vn_seqc_write_end(newdp); vrele(newdp); if ((mp->mnt_flag & MNT_RDONLY) == 0) vfs_allocate_syncvnode(mp); @@ -1094,7 +1099,9 @@ vfs_domount_update( VOP_UNLOCK(vp); vfs_op_enter(mp); + vn_seqc_write_begin(vp); + rootvp = NULL; MNT_ILOCK(mp); if ((mp->mnt_kern_flag & MNTK_UNMOUNT) != 0) { MNT_IUNLOCK(mp); @@ -1108,8 +1115,6 @@ vfs_domount_update( mp->mnt_kern_flag &= ~MNTK_ASYNC; rootvp = vfs_cache_root_clear(mp); MNT_IUNLOCK(mp); - if (rootvp != NULL) - vrele(rootvp); mp->mnt_optnew = *optlist; vfs_mergeopts(mp->mnt_optnew, mp->mnt_opt); @@ -1233,6 +1238,11 @@ vfs_domount_update( vfs_deallocate_syncvnode(mp); end: vfs_op_exit(mp); + if (rootvp != NULL) { + vn_seqc_write_end(rootvp); + vrele(rootvp); + } + vn_seqc_write_end(vp); vfs_unbusy(mp); VI_LOCK(vp); vp->v_iflag &= ~VI_MOUNT; @@ -1723,14 +1733,19 @@ dounmount(struct mount *mp, int flags, struct thre } mp->mnt_kern_flag |= MNTK_UNMOUNT; rootvp = vfs_cache_root_clear(mp); + if (coveredvp != NULL) + vn_seqc_write_begin(coveredvp); if (flags & MNT_NONBUSY) { MNT_IUNLOCK(mp); error = vfs_check_usecounts(mp); MNT_ILOCK(mp); if (error != 0) { + vn_seqc_write_end(coveredvp); dounmount_cleanup(mp, coveredvp, MNTK_UNMOUNT); - if (rootvp != NULL) + if (rootvp != NULL) { + vn_seqc_write_end(rootvp); vrele(rootvp); + } return (error); } } @@ -1759,22 +1774,19 @@ dounmount(struct mount *mp, int flags, struct thre ("%s: invalid return value for msleep in the drain path @ %s:%d", __func__, __FILE__, __LINE__)); - if (rootvp != NULL) + /* + * We want to keep the vnode around so that we can vn_seqc_write_end + * after we are done with unmount. Downgrade our reference to a mere + * hold count so that we don't interefere with anything. + */ + if (rootvp != NULL) { + vhold(rootvp); vrele(rootvp); + } if (mp->mnt_flag & MNT_EXPUBLIC) vfs_setpublicfs(NULL, NULL, NULL); - /* - * From now, we can claim that the use reference on the - * coveredvp is ours, and the ref can be released only by - * successfull unmount by us, or left for later unmount - * attempt. The previously acquired hold reference is no - * longer needed to protect the vnode from reuse. - */ - if (coveredvp != NULL) - vdrop(coveredvp); - vfs_periodic(mp, MNT_WAIT); MNT_ILOCK(mp); async_flag = mp->mnt_flag & MNT_ASYNC; @@ -1809,8 +1821,15 @@ dounmount(struct mount *mp, int flags, struct thre } vfs_op_exit_locked(mp); MNT_IUNLOCK(mp); - if (coveredvp) + if (coveredvp) { + vn_seqc_write_end(coveredvp); VOP_UNLOCK(coveredvp); + vdrop(coveredvp); + } + if (rootvp != NULL) { + vn_seqc_write_end(rootvp); + vdrop(rootvp); + } return (error); } mtx_lock(&mountlist_mtx); @@ -1819,8 +1838,14 @@ dounmount(struct mount *mp, int flags, struct thre EVENTHANDLER_DIRECT_INVOKE(vfs_unmounted, mp, td); if (coveredvp != NULL) { coveredvp->v_mountedhere = NULL; + vn_seqc_write_end(coveredvp); VOP_UNLOCK(coveredvp); + vdrop(coveredvp); } + if (rootvp != NULL) { + vn_seqc_write_end(rootvp); + vdrop(rootvp); + } vfs_event_signal(NULL, VQ_UNMOUNT, 0); if (rootvnode != NULL && mp == rootvnode->v_mount) { vrele(rootvnode); Index: src/sys/kern/vfs_subr.c =================================================================== --- src/sys/kern/vfs_subr.c (revision 362844) +++ src/sys/kern/vfs_subr.c (working copy) @@ -664,8 +664,8 @@ vntblinit(void *dummy __unused) vnode_list_reclaim_marker = vn_alloc_marker(NULL); TAILQ_INSERT_HEAD(&vnode_list, vnode_list_reclaim_marker, v_vnodelist); vnode_zone = uma_zcreate("VNODE", sizeof (struct vnode), NULL, NULL, - vnode_init, vnode_fini, UMA_ALIGN_PTR, UMA_ZONE_SMR); - vfs_smr = uma_zone_get_smr(vnode_zone); + vnode_init, vnode_fini, UMA_ALIGN_PTR, 0); + uma_zone_set_smr(vnode_zone, vfs_smr); vnodepoll_zone = uma_zcreate("VNODEPOLL", sizeof (struct vpollinfo), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); /* @@ -1761,6 +1761,7 @@ freevnode(struct vnode *vp) */ CTR2(KTR_VFS, "%s: destroying the vnode %p", __func__, vp); bo = &vp->v_bufobj; + VNPASS(vp->v_seqc_users == 0, vp); VNASSERT(vp->v_data == NULL, vp, ("cleaned vnode isn't")); VNPASS(vp->v_holdcnt == VHOLD_NO_SMR, vp); VNASSERT(vp->v_usecount == 0, vp, ("Non-zero use count")); @@ -2889,6 +2890,17 @@ vget_prep(struct vnode *vp) return (vs); } +void +vget_abort(struct vnode *vp, enum vgetstate vs) +{ + + VNPASS(vs == VGET_HOLDCNT || vs == VGET_USECOUNT, vp); + if (vs == VGET_USECOUNT) + vrele(vp); + else + vdrop(vp); +} + int vget(struct vnode *vp, int flags, struct thread *td) { @@ -2951,10 +2963,7 @@ vget_finish(struct vnode *vp, int flags, enum vget error = vn_lock(vp, flags); if (__predict_false(error != 0)) { - if (vs == VGET_USECOUNT) - vrele(vp); - else - vdrop(vp); + vget_abort(vp, vs); CTR2(KTR_VFS, "%s: impossible to lock vnode %p", __func__, vp); return (error); @@ -3032,6 +3041,44 @@ vref_vchr(struct vnode *vp, bool interlock) return; } +bool +vref_smr(struct vnode *vp) +{ + int old; + + CTR2(KTR_VFS, "%s: vp %p", __func__, vp); + VFS_SMR_ASSERT_ENTERED(); + + /* + * Devices are not supported since they may require taking the interlock. + */ + VNPASS(vp->v_type != VCHR, vp); + + if (refcount_acquire_if_not_zero(&vp->v_usecount)) { + VNODE_REFCOUNT_FENCE_ACQ(); + VNPASS(vp->v_holdcnt > 0, vp); + return (true); + } + + if (!vhold_smr(vp)) + return (false); + + /* + * See the comment in vget_finish. + */ + old = atomic_fetchadd_int(&vp->v_usecount, 1); + VNASSERT(old >= 0, vp, ("%s: wrong use count %d", __func__, old)); + if (old != 0) { +#ifdef INVARIANTS + old = atomic_fetchadd_int(&vp->v_holdcnt, -1); + VNASSERT(old > 1, vp, ("%s: wrong hold count %d", __func__, old)); +#else + refcount_release(&vp->v_holdcnt); +#endif + } + return (true); +} + void vref(struct vnode *vp) { @@ -3986,6 +4033,7 @@ vgonel(struct vnode *vp) */ if (vp->v_irflag & VIRF_DOOMED) return; + vn_seqc_write_begin_locked(vp); vunlazy_gone(vp); vp->v_irflag |= VIRF_DOOMED; @@ -4088,6 +4136,7 @@ vgonel(struct vnode *vp) vp->v_vnlock = &vp->v_lock; vp->v_op = &dead_vnodeops; vp->v_type = VBAD; + vn_seqc_write_end_locked(vp); } /* @@ -4128,8 +4177,9 @@ vn_printf(struct vnode *vp, const char *fmt, ...) printf("%p: ", (void *)vp); printf("type %s\n", typename[vp->v_type]); holdcnt = atomic_load_int(&vp->v_holdcnt); - printf(" usecount %d, writecount %d, refcount %d", - vp->v_usecount, vp->v_writecount, holdcnt & ~VHOLD_ALL_FLAGS); + printf(" usecount %d, writecount %d, refcount %d seqc users %d", + vp->v_usecount, vp->v_writecount, holdcnt & ~VHOLD_ALL_FLAGS, + vp->v_seqc_users); switch (vp->v_type) { case VDIR: printf(" mountedhere %p\n", vp->v_mountedhere); @@ -4381,6 +4431,7 @@ DB_SHOW_COMMAND(mount, db_show_mount) MNT_KERN_FLAG(MNTK_LOOKUP_EXCL_DOTDOT); MNT_KERN_FLAG(MNTK_MARKER); MNT_KERN_FLAG(MNTK_USES_BCACHE); + MNT_KERN_FLAG(MNTK_FPLOOKUP); MNT_KERN_FLAG(MNTK_NOASYNC); MNT_KERN_FLAG(MNTK_UNMOUNT); MNT_KERN_FLAG(MNTK_MWAIT); @@ -5197,6 +5248,38 @@ out: } /* + * VOP_FPLOOKUP_VEXEC routines are subject to special circumstances, see + * the comment above cache_fplookup for details. + * + * We never deny as priv_check_cred calls are not yet supported, see vaccess. + */ +int +vaccess_vexec_smr(mode_t file_mode, uid_t file_uid, gid_t file_gid, struct ucred *cred) +{ + + VFS_SMR_ASSERT_ENTERED(); + + /* Check the owner. */ + if (cred->cr_uid == file_uid) { + if (file_mode & S_IXUSR) + return (0); + return (EAGAIN); + } + + /* Otherwise, check the groups (first match) */ + if (groupmember(file_gid, cred)) { + if (file_mode & S_IXGRP) + return (0); + return (EAGAIN); + } + + /* Otherwise, check everyone else. */ + if (file_mode & S_IXOTH) + return (0); + return (EAGAIN); +} + +/* * Common filesystem object access control check routine. Accepts a * vnode's type, "mode", uid and gid, requested access mode, credentials, * and optional call-by-reference privused argument allowing vaccess() @@ -5476,6 +5559,14 @@ vop_rename_pre(void *ap) ASSERT_VOP_LOCKED(a->a_tvp, "vop_rename: tvp not locked"); ASSERT_VOP_LOCKED(a->a_tdvp, "vop_rename: tdvp not locked"); #endif + /* + * It may be tempting to add vn_seqc_write_begin/end calls here and + * in vop_rename_post but that's not going to work out since some + * filesystems relookup vnodes mid-rename. This is probably a bug. + * + * For now filesystems are expected to do the relevant calls after they + * decide what vnodes to operate on. + */ if (a->a_tdvp != a->a_fdvp) vhold(a->a_fdvp); if (a->a_tvp != a->a_fvp) @@ -5487,6 +5578,20 @@ vop_rename_pre(void *ap) #ifdef DEBUG_VFS_LOCKS void +vop_fplookup_vexec_pre(void *ap __unused) +{ + + VFS_SMR_ASSERT_ENTERED(); +} + +void +vop_fplookup_vexec_post(void *ap __unused, int rc __unused) +{ + + VFS_SMR_ASSERT_ENTERED(); +} + +void vop_strategy_pre(void *ap) { struct vop_strategy_args *a; @@ -5566,10 +5671,25 @@ vop_create_post(void *ap, int rc) } void +vop_deleteextattr_pre(void *ap) +{ + struct vop_deleteextattr_args *a; + struct vnode *vp; + + a = ap; + vp = a->a_vp; + vn_seqc_write_begin(vp); +} + +void vop_deleteextattr_post(void *ap, int rc) { - struct vop_deleteextattr_args *a = ap; + struct vop_deleteextattr_args *a; + struct vnode *vp; + a = ap; + vp = a->a_vp; + vn_seqc_write_end(vp); if (!rc) VFS_KNOTE_LOCKED(a->a_vp, NOTE_ATTRIB); } @@ -5673,21 +5793,73 @@ vop_rmdir_post(void *ap, int rc) } void +vop_setattr_pre(void *ap) +{ + struct vop_setattr_args *a; + struct vnode *vp; + + a = ap; + vp = a->a_vp; + vn_seqc_write_begin(vp); +} + +void vop_setattr_post(void *ap, int rc) { - struct vop_setattr_args *a = ap; + struct vop_setattr_args *a; + struct vnode *vp; + a = ap; + vp = a->a_vp; + vn_seqc_write_end(vp); if (!rc) - VFS_KNOTE_LOCKED(a->a_vp, NOTE_ATTRIB); + VFS_KNOTE_LOCKED(vp, NOTE_ATTRIB); } void +vop_setacl_pre(void *ap) +{ + struct vop_setacl_args *a; + struct vnode *vp; + + a = ap; + vp = a->a_vp; + vn_seqc_write_begin(vp); +} + +void +vop_setacl_post(void *ap, int rc __unused) +{ + struct vop_setacl_args *a; + struct vnode *vp; + + a = ap; + vp = a->a_vp; + vn_seqc_write_end(vp); +} + +void +vop_setextattr_pre(void *ap) +{ + struct vop_setextattr_args *a; + struct vnode *vp; + + a = ap; + vp = a->a_vp; + vn_seqc_write_begin(vp); +} + +void vop_setextattr_post(void *ap, int rc) { - struct vop_setextattr_args *a = ap; + struct vop_setextattr_args *a; + struct vnode *vp; + a = ap; + vp = a->a_vp; + vn_seqc_write_end(vp); if (!rc) - VFS_KNOTE_LOCKED(a->a_vp, NOTE_ATTRIB); + VFS_KNOTE_LOCKED(vp, NOTE_ATTRIB); } void @@ -6249,6 +6421,8 @@ vfs_cache_root_clear(struct mount *mp) */ MPASS(mp->mnt_vfs_ops > 0); vp = mp->mnt_rootvnode; + if (vp != NULL) + vn_seqc_write_begin(vp); mp->mnt_rootvnode = NULL; return (vp); } @@ -6545,3 +6719,45 @@ vn_dir_check_exec(struct vnode *vp, struct compone return (VOP_ACCESS(vp, VEXEC, cnp->cn_cred, cnp->cn_thread)); } + +void +vn_seqc_write_begin_locked(struct vnode *vp) +{ + + ASSERT_VI_LOCKED(vp, __func__); + VNPASS(vp->v_holdcnt > 0, vp); + VNPASS(vp->v_seqc_users >= 0, vp); + vp->v_seqc_users++; + if (vp->v_seqc_users == 1) + seqc_sleepable_write_begin(&vp->v_seqc); +} + +void +vn_seqc_write_begin(struct vnode *vp) +{ + + VI_LOCK(vp); + vn_seqc_write_begin_locked(vp); + VI_UNLOCK(vp); +} + +void +vn_seqc_write_end_locked(struct vnode *vp) +{ + + ASSERT_VI_LOCKED(vp, __func__); + VNPASS(vp->v_holdcnt > 0, vp); + VNPASS(vp->v_seqc_users > 0, vp); + vp->v_seqc_users--; + if (vp->v_seqc_users == 0) + seqc_sleepable_write_end(&vp->v_seqc); +} + +void +vn_seqc_write_end(struct vnode *vp) +{ + + VI_LOCK(vp); + vn_seqc_write_end_locked(vp); + VI_UNLOCK(vp); +} Index: src/sys/kern/vnode_if.src =================================================================== --- src/sys/kern/vnode_if.src (revision 362844) +++ src/sys/kern/vnode_if.src (working copy) @@ -142,6 +142,17 @@ vop_close { }; +%% fplookup_vexec vp - - - +%! fplookup_vexec pre vop_fplookup_vexec_pre +%! fplookup_vexec post vop_fplookup_vexec_post + +vop_fplookup_vexec { + IN struct vnode *vp; + IN struct ucred *cred; + IN struct thread *td; +}; + + %% access vp L L L vop_access { @@ -172,6 +183,7 @@ vop_getattr { %% setattr vp E E E +%! setattr pre vop_setattr_pre %! setattr post vop_setattr_post vop_setattr { @@ -523,6 +535,8 @@ vop_getacl { %% setacl vp E E E +%! setacl pre vop_setacl_pre +%! setacl post vop_setacl_post vop_setacl { IN struct vnode *vp; @@ -589,6 +603,7 @@ vop_openextattr { %% deleteextattr vp E E E +%! deleteextattr pre vop_deleteextattr_pre %! deleteextattr post vop_deleteextattr_post vop_deleteextattr { @@ -601,6 +616,7 @@ vop_deleteextattr { %% setextattr vp E E E +%! setextattr pre vop_setextattr_pre %! setextattr post vop_setextattr_post vop_setextattr { Index: src/sys/security/mac/mac_framework.h =================================================================== --- src/sys/security/mac/mac_framework.h (revision 362844) +++ src/sys/security/mac/mac_framework.h (working copy) @@ -422,6 +422,7 @@ int mac_vnode_check_listextattr(struct ucred *cred int mac_vnode_check_lookup_impl(struct ucred *cred, struct vnode *dvp, struct componentname *cnp); extern bool mac_vnode_check_lookup_fp_flag; +#define mac_vnode_check_lookup_enabled() __predict_false(mac_vnode_check_lookup_fp_flag) static inline int mac_vnode_check_lookup(struct ucred *cred, struct vnode *dvp, struct componentname *cnp) @@ -428,7 +429,7 @@ mac_vnode_check_lookup(struct ucred *cred, struct { mac_vnode_assert_locked(dvp, "mac_vnode_check_lookup"); - if (__predict_false(mac_vnode_check_lookup_fp_flag)) + if (mac_vnode_check_lookup_enabled()) return (mac_vnode_check_lookup_impl(cred, dvp, cnp)); return (0); } Index: src/sys/sys/filedesc.h =================================================================== --- src/sys/sys/filedesc.h (revision 362844) +++ src/sys/sys/filedesc.h (working copy) @@ -310,6 +310,7 @@ pwd_set(struct filedesc *fdp, struct pwd *newpwd) smr_serialized_store(&fdp->fd_pwd, newpwd, (FILEDESC_XLOCK_ASSERT(fdp), true)); } +struct pwd *pwd_get_smr(void); #endif /* _KERNEL */ Index: src/sys/sys/mount.h =================================================================== --- src/sys/sys/mount.h (revision 362844) +++ src/sys/sys/mount.h (working copy) @@ -420,6 +420,7 @@ void __mnt_vnode_markerfree_lazy(struct v #define MNTK_TEXT_REFS 0x00008000 /* Keep use ref for text */ #define MNTK_VMSETSIZE_BUG 0x00010000 #define MNTK_UNIONFS 0x00020000 /* A hack for F_ISUNIONSTACK */ +#define MNTK_FPLOOKUP 0x00040000 /* fast path lookup is supported */ #define MNTK_NOASYNC 0x00800000 /* disable async */ #define MNTK_UNMOUNT 0x01000000 /* unmount in progress */ #define MNTK_MWAIT 0x02000000 /* waiting for unmount to finish */ Index: src/sys/sys/namei.h =================================================================== --- src/sys/sys/namei.h (revision 362844) +++ src/sys/sys/namei.h (working copy) @@ -108,6 +108,12 @@ struct nameidata { }; #ifdef _KERNEL + +enum cache_fpl_status { CACHE_FPL_STATUS_ABORTED, CACHE_FPL_STATUS_PARTIAL, + CACHE_FPL_STATUS_HANDLED, CACHE_FPL_STATUS_UNSET }; +int cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status, + struct pwd **pwdp); + /* * namei operations */ Index: src/sys/sys/seqc.h =================================================================== --- src/sys/sys/seqc.h (revision 362844) +++ src/sys/sys/seqc.h (working copy) @@ -36,7 +36,7 @@ /* * seqc_t may be included in structs visible to userspace */ -typedef uint32_t seqc_t; +#include #ifdef _KERNEL @@ -111,5 +111,26 @@ seqc_consistent(const seqc_t *seqcp, seqc_t oldseq return (seqc_consistent_nomb(seqcp, oldseqc)); } +/* + * Variant which does not critical enter/exit. + */ +static __inline void +seqc_sleepable_write_begin(seqc_t *seqcp) +{ + + MPASS(!seqc_in_modify(*seqcp)); + *seqcp += 1; + atomic_thread_fence_rel(); +} + +static __inline void +seqc_sleepable_write_end(seqc_t *seqcp) +{ + + atomic_thread_fence_rel(); + *seqcp += 1; + MPASS(!seqc_in_modify(*seqcp)); +} + #endif /* _KERNEL */ #endif /* _SYS_SEQC_H_ */ Index: src/sys/sys/vnode.h =================================================================== --- src/sys/sys/vnode.h (revision 362844) +++ src/sys/sys/vnode.h (working copy) @@ -45,6 +45,7 @@ #include #include #include +#include /* * The vnode is the focus of all file activity in UNIX. There is a @@ -105,6 +106,7 @@ struct vnode { */ enum vtype v_type:8; /* u vnode type */ short v_irflag; /* i frequently read flags */ + seqc_t v_seqc; /* i modification count */ struct vop_vector *v_op; /* u vnode operations vector */ void *v_data; /* u private data for fs */ @@ -175,6 +177,7 @@ struct vnode { short v_dbatchcpu; /* i LRU requeue deferral batch */ int v_writecount; /* I ref count of writers or (negative) text users */ + int v_seqc_users; /* i modifications pending */ u_int v_hash; }; @@ -539,6 +542,18 @@ void assert_vop_unlocked(struct vnode *vp, const c #define ASSERT_VOP_LOCKED(vp, str) assert_vop_locked((vp), (str)) #define ASSERT_VOP_UNLOCKED(vp, str) assert_vop_unlocked((vp), (str)) +#define ASSERT_VOP_IN_SEQC(vp) do { \ + struct vnode *_vp = (vp); \ + \ + VNPASS(seqc_in_modify(_vp->v_seqc), _vp); \ +} while (0) + +#define ASSERT_VOP_NOT_IN_SEQC(vp) do { \ + struct vnode *_vp = (vp); \ + \ + VNPASS(!seqc_in_modify(_vp->v_seqc), _vp); \ +} while (0) + #else /* !DEBUG_VFS_LOCKS */ #define ASSERT_VI_LOCKED(vp, str) ((void)0) @@ -546,6 +561,10 @@ void assert_vop_unlocked(struct vnode *vp, const c #define ASSERT_VOP_ELOCKED(vp, str) ((void)0) #define ASSERT_VOP_LOCKED(vp, str) ((void)0) #define ASSERT_VOP_UNLOCKED(vp, str) ((void)0) + +#define ASSERT_VOP_IN_SEQC(vp) ((void)0) +#define ASSERT_VOP_NOT_IN_SEQC(vp) ((void)0) + #endif /* DEBUG_VFS_LOCKS */ @@ -602,6 +621,7 @@ struct uio; struct vattr; struct vfsops; struct vnode; +struct pwd; typedef int (*vn_get_ino_t)(struct mount *, void *, int, struct vnode **); @@ -619,6 +639,10 @@ int cache_lookup(struct vnode *dvp, struct vnode * void cache_purge(struct vnode *vp); void cache_purge_negative(struct vnode *vp); void cache_purgevfs(struct mount *mp, bool force); +void vn_seqc_write_begin_locked(struct vnode *vp); +void vn_seqc_write_begin(struct vnode *vp); +void vn_seqc_write_end_locked(struct vnode *vp); +void vn_seqc_write_end(struct vnode *vp); int change_dir(struct vnode *vp, struct thread *td); void cvtstat(struct stat *st, struct ostat *ost); void freebsd11_cvtnstat(struct stat *sb, struct nstat *nsb); @@ -644,6 +668,8 @@ struct vnode * int vn_commname(struct vnode *vn, char *buf, u_int buflen); int vn_path_to_global_path(struct thread *td, struct vnode *vp, char *path, u_int pathlen); +int vaccess_vexec_smr(mode_t file_mode, uid_t file_uid, gid_t file_gid, + struct ucred *cred); int vaccess(enum vtype type, mode_t file_mode, uid_t file_uid, gid_t file_gid, accmode_t accmode, struct ucred *cred, int *privused); @@ -663,6 +689,7 @@ int vget(struct vnode *vp, int flags, struct threa enum vgetstate vget_prep_smr(struct vnode *vp); enum vgetstate vget_prep(struct vnode *vp); int vget_finish(struct vnode *vp, int flags, enum vgetstate vs); +void vget_abort(struct vnode *vp, enum vgetstate vs); void vgone(struct vnode *vp); void vhold(struct vnode *); void vholdl(struct vnode *); @@ -805,6 +832,7 @@ int dead_write(struct vop_write_args *ap); /* These are called from within the actual VOPS. */ void vop_close_post(void *a, int rc); void vop_create_post(void *a, int rc); +void vop_deleteextattr_pre(void *a); void vop_deleteextattr_post(void *a, int rc); void vop_link_post(void *a, int rc); void vop_lookup_post(void *a, int rc); @@ -819,12 +847,18 @@ void vop_remove_post(void *a, int rc); void vop_rename_post(void *a, int rc); void vop_rename_pre(void *a); void vop_rmdir_post(void *a, int rc); +void vop_setattr_pre(void *a); void vop_setattr_post(void *a, int rc); +void vop_setacl_pre(void *a); +void vop_setacl_post(void *a, int rc); +void vop_setextattr_pre(void *a); void vop_setextattr_post(void *a, int rc); void vop_symlink_post(void *a, int rc); int vop_sigdefer(struct vop_vector *vop, struct vop_generic_args *a); #ifdef DEBUG_VFS_LOCKS +void vop_fplookup_vexec_pre(void *a); +void vop_fplookup_vexec_post(void *a, int rc); void vop_strategy_pre(void *a); void vop_lock_pre(void *a); void vop_lock_post(void *a, int rc); @@ -832,6 +866,8 @@ void vop_unlock_pre(void *a); void vop_need_inactive_pre(void *a); void vop_need_inactive_post(void *a, int rc); #else +#define vop_fplookup_vexec_pre(x) do { } while (0) +#define vop_fplookup_vexec_post(x, y) do { } while (0) #define vop_strategy_pre(x) do { } while (0) #define vop_lock_pre(x) do { } while (0) #define vop_lock_post(x, y) do { } while (0) @@ -901,6 +937,7 @@ do { \ void vput(struct vnode *vp); void vrele(struct vnode *vp); void vref(struct vnode *vp); +bool vref_smr(struct vnode *vp); void vrefl(struct vnode *vp); void vrefact(struct vnode *vp); void vrefactn(struct vnode *vp, u_int n); Index: src/sys/ufs/ffs/ffs_vfsops.c =================================================================== --- src/sys/ufs/ffs/ffs_vfsops.c (revision 362844) +++ src/sys/ufs/ffs/ffs_vfsops.c (working copy) @@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$"); #include static uma_zone_t uma_inode, uma_ufs1, uma_ufs2; +VFS_SMR_DECLARE; static int ffs_mountfs(struct vnode *, struct mount *, struct thread *); static void ffs_oldfscompat_read(struct fs *, struct ufsmount *, @@ -393,6 +394,7 @@ ffs_mount(struct mount *mp) uma_ufs2 = uma_zcreate("FFS2 dinode", sizeof(struct ufs2_dinode), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); + VFS_SMR_ZONE_SET(uma_inode); } vfs_deleteopt(mp->mnt_optnew, "groupquota"); @@ -455,6 +457,7 @@ ffs_mount(struct mount *mp) } MNT_ILOCK(mp); + mp->mnt_kern_flag &= ~MNTK_FPLOOKUP; mp->mnt_flag |= mntorflags; MNT_IUNLOCK(mp); /* @@ -795,6 +798,17 @@ ffs_mount(struct mount *mp) } } } + + MNT_ILOCK(mp); + /* + * This is racy versus lookup, see ufs_fplookup_vexec for details. + */ + if ((mp->mnt_kern_flag & MNTK_FPLOOKUP) != 0) + panic("MNTK_FPLOOKUP set on mount %p when it should not be", mp); + if ((mp->mnt_flag & (MNT_ACLS | MNT_NFS4ACLS)) == 0) + mp->mnt_kern_flag |= MNTK_FPLOOKUP; + MNT_IUNLOCK(mp); + vfs_mountedfrom(mp, fspec); return (0); } @@ -1968,7 +1982,7 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags) ump = VFSTOUFS(mp); fs = ump->um_fs; - ip = uma_zalloc(uma_inode, M_WAITOK | M_ZERO); + ip = uma_zalloc_smr(uma_inode, M_WAITOK | M_ZERO); /* Allocate a new vnode/inode. */ error = getnewvnode("ufs", mp, fs->fs_magic == FS_UFS1_MAGIC ? @@ -1975,7 +1989,7 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags) &ffs_vnodeops1 : &ffs_vnodeops2, &vp); if (error) { *vpp = NULL; - uma_zfree(uma_inode, ip); + uma_zfree_smr(uma_inode, ip); return (error); } /* @@ -2004,7 +2018,7 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags) vp->v_vflag |= VV_FORCEINSMQ; error = insmntque(vp, mp); if (error != 0) { - uma_zfree(uma_inode, ip); + uma_zfree_smr(uma_inode, ip); *vpp = NULL; return (error); } @@ -2327,7 +2341,7 @@ ffs_ifree(struct ufsmount *ump, struct inode *ip) uma_zfree(uma_ufs1, ip->i_din1); else if (ip->i_din2 != NULL) uma_zfree(uma_ufs2, ip->i_din2); - uma_zfree(uma_inode, ip); + uma_zfree_smr(uma_inode, ip); } static int dobkgrdwrite = 1; Index: src/sys/ufs/ffs/ffs_vnops.c =================================================================== --- src/sys/ufs/ffs/ffs_vnops.c (revision 362844) +++ src/sys/ufs/ffs/ffs_vnops.c (working copy) @@ -903,7 +903,7 @@ ffs_write(ap) if ((ip->i_mode & (ISUID | ISGID)) && resid > uio->uio_resid && ap->a_cred) { if (priv_check_cred(ap->a_cred, PRIV_VFS_RETAINSUGID)) { - ip->i_mode &= ~(ISUID | ISGID); + UFS_INODE_SET_MODE(ip, ip->i_mode & ~(ISUID | ISGID)); DIP_SET(ip, i_mode, ip->i_mode); } } @@ -1074,6 +1074,9 @@ ffs_extwrite(struct vnode *vp, struct uio *uio, in UFS_NXADDR * fs->fs_bsize) return (EFBIG); + if ((ip->i_mode & (ISUID | ISGID))) + vn_seqc_write_begin(vp); + resid = uio->uio_resid; osize = dp->di_extsize; flags = IO_EXT; @@ -1148,11 +1151,13 @@ ffs_extwrite(struct vnode *vp, struct uio *uio, in * we clear the setuid and setgid bits as a precaution against * tampering. */ - if ((ip->i_mode & (ISUID | ISGID)) && resid > uio->uio_resid && ucred) { - if (priv_check_cred(ucred, PRIV_VFS_RETAINSUGID)) { - ip->i_mode &= ~(ISUID | ISGID); + if ((ip->i_mode & (ISUID | ISGID))) { + if (resid > uio->uio_resid && ucred && + priv_check_cred(ucred, PRIV_VFS_RETAINSUGID)) { + UFS_INODE_SET_MODE(ip, ip->i_mode & ~(ISUID | ISGID)); dp->di_mode = ip->i_mode; } + vn_seqc_write_end(vp); } if (error) { if (ioflag & IO_UNIT) { Index: src/sys/ufs/ufs/inode.h =================================================================== --- src/sys/ufs/ufs/inode.h (revision 362844) +++ src/sys/ufs/ufs/inode.h (working copy) @@ -43,6 +43,7 @@ #include #include #include +#include /* * This must agree with the definition in . @@ -149,6 +150,14 @@ struct inode { #define UFS_INODE_FLAG_LAZY_MASK_ASSERTABLE \ (UFS_INODE_FLAG_LAZY_MASK & ~(IN_LAZYMOD | IN_LAZYACCESS)) +#define UFS_INODE_SET_MODE(ip, mode) do { \ + struct inode *_ip = (ip); \ + int _mode = (mode); \ + \ + ASSERT_VOP_IN_SEQC(ITOV(_ip)); \ + _ip->i_mode = _mode; \ +} while (0) + #define UFS_INODE_SET_FLAG(ip, flags) do { \ struct inode *_ip = (ip); \ struct vnode *_vp = ITOV(_ip); \ @@ -229,6 +238,7 @@ struct indir { /* Convert between inode pointers and vnode pointers. */ #define VTOI(vp) ((struct inode *)(vp)->v_data) +#define VTOI_SMR(vp) ((struct inode *)atomic_load_ptr(&(vp)->v_data)) #define ITOV(ip) ((ip)->i_vnode) /* Determine if soft dependencies are being done */ Index: src/sys/ufs/ufs/ufs_acl.c =================================================================== --- src/sys/ufs/ufs/ufs_acl.c (revision 362844) +++ src/sys/ufs/ufs/ufs_acl.c (working copy) @@ -139,9 +139,11 @@ ufs_sync_acl_from_inode(struct inode *ip, struct a void ufs_sync_inode_from_acl(struct acl *acl, struct inode *ip) { + int newmode; - ip->i_mode &= ACL_PRESERVE_MASK; - ip->i_mode |= acl_posix1e_acl_to_mode(acl); + newmode = ip->i_mode & ACL_PRESERVE_MASK; + newmode |= acl_posix1e_acl_to_mode(acl); + UFS_INODE_SET_MODE(ip, newmode); DIP_SET(ip, i_mode, ip->i_mode); } @@ -381,7 +383,7 @@ int ufs_setacl_nfs4_internal(struct vnode *vp, struct acl *aclp, struct thread *td) { int error; - mode_t mode; + mode_t mode, newmode; struct inode *ip = VTOI(vp); KASSERT(acl_nfs4_check(aclp, vp->v_type == VDIR) == 0, @@ -418,8 +420,9 @@ ufs_setacl_nfs4_internal(struct vnode *vp, struct acl_nfs4_sync_mode_from_acl(&mode, aclp); - ip->i_mode &= ACL_PRESERVE_MASK; - ip->i_mode |= mode; + newmode = ip->i_mode & ACL_PRESERVE_MASK; + newmode |= mode; + UFS_INODE_SET_MODE(ip, newmode); DIP_SET(ip, i_mode, ip->i_mode); UFS_INODE_SET_FLAG(ip, IN_CHANGE); Index: src/sys/ufs/ufs/ufs_vnops.c =================================================================== --- src/sys/ufs/ufs/ufs_vnops.c (revision 362844) +++ src/sys/ufs/ufs/ufs_vnops.c (working copy) @@ -100,6 +100,7 @@ FEATURE(suiddir, #include static vop_accessx_t ufs_accessx; +static vop_fplookup_vexec_t ufs_fplookup_vexec; static int ufs_chmod(struct vnode *, int, struct ucred *, struct thread *); static int ufs_chown(struct vnode *, uid_t, gid_t, struct ucred *, struct thread *); static vop_close_t ufs_close; @@ -422,6 +423,48 @@ ufs_accessx(ap) return (error); } +/* + * VOP_FPLOOKUP_VEXEC routines are subject to special circumstances, see + * the comment above cache_fplookup for details. + */ +static int +ufs_fplookup_vexec(ap) + struct vop_fplookup_vexec_args /* { + struct vnode *a_vp; + struct ucred *a_cred; + struct thread *a_td; + } */ *ap; +{ + struct vnode *vp; + struct inode *ip; + struct ucred *cred; + mode_t all_x, mode; + + vp = ap->a_vp; + ip = VTOI_SMR(vp); + if (__predict_false(ip == NULL)) + return (EAGAIN); + + /* + * XXX ACL race + * + * ACLs are not supported and UFS clears/sets the flag on mount + * and remount. However, we may still be racing with seeing them + * and there are no provisions to make sure they got accounted for. + * + * This happens to match the behavior of the locked case as well, + * since in it the lookup is also racy -- mount takes no measures + * to block anyone from progressing. + */ + all_x = S_IXUSR | S_IXGRP | S_IXOTH; + mode = atomic_load_int(&ip->i_mode); + if (__predict_true((mode & all_x) == all_x)) + return (0); + + cred = ap->a_cred; + return (vaccess_vexec_smr(mode, ip->i_uid, ip->i_gid, cred)); +} + /* ARGSUSED */ static int ufs_getattr(ap) @@ -711,7 +754,7 @@ ufs_chmod(vp, mode, cred, td) struct thread *td; { struct inode *ip = VTOI(vp); - int error; + int newmode, error; /* * To modify the permissions on a file, must possess VADMIN @@ -744,8 +787,9 @@ ufs_chmod(vp, mode, cred, td) return (error); } - ip->i_mode &= ~ALLPERMS; - ip->i_mode |= (mode & ALLPERMS); + newmode = ip->i_mode & ~ALLPERMS; + newmode |= (mode & ALLPERMS); + UFS_INODE_SET_MODE(ip, newmode); DIP_SET(ip, i_mode, ip->i_mode); UFS_INODE_SET_FLAG(ip, IN_CHANGE); #ifdef UFS_ACL @@ -869,7 +913,7 @@ good: UFS_INODE_SET_FLAG(ip, IN_CHANGE); if ((ip->i_mode & (ISUID | ISGID)) && (ouid != uid || ogid != gid)) { if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID)) { - ip->i_mode &= ~(ISUID | ISGID); + UFS_INODE_SET_MODE(ip, ip->i_mode & ~(ISUID | ISGID)); DIP_SET(ip, i_mode, ip->i_mode); } } @@ -1111,7 +1155,10 @@ ufs_rename(ap) int error = 0; struct mount *mp; ino_t ino; + bool want_seqc_end; + want_seqc_end = false; + #ifdef INVARIANTS if ((tcnp->cn_flags & HASBUF) == 0 || (fcnp->cn_flags & HASBUF) == 0) @@ -1315,6 +1362,13 @@ relock: tdp->i_effnlink == 0) panic("Bad effnlink fip %p, fdp %p, tdp %p", fip, fdp, tdp); + if (tvp != NULL) + vn_seqc_write_begin(tvp); + vn_seqc_write_begin(tdvp); + vn_seqc_write_begin(fvp); + vn_seqc_write_begin(fdvp); + want_seqc_end = true; + /* * 1) Bump link count while we're moving stuff * around. If we crash somewhere before @@ -1513,6 +1567,14 @@ relock: cache_purge_negative(tdvp); unlockout: + if (want_seqc_end) { + if (tvp != NULL) + vn_seqc_write_end(tvp); + vn_seqc_write_end(tdvp); + vn_seqc_write_end(fvp); + vn_seqc_write_end(fdvp); + } + vput(fdvp); vput(fvp); if (tvp) @@ -1556,6 +1618,14 @@ bad: goto unlockout; releout: + if (want_seqc_end) { + if (tvp != NULL) + vn_seqc_write_begin(tvp); + vn_seqc_write_begin(tdvp); + vn_seqc_write_begin(fvp); + vn_seqc_write_begin(fdvp); + } + vrele(fdvp); vrele(fvp); vrele(tdvp); @@ -1590,7 +1660,7 @@ ufs_do_posix1e_acl_inheritance_dir(struct vnode *d */ if (acl->acl_cnt != 0) { dmode = acl_posix1e_newfilemode(dmode, acl); - ip->i_mode = dmode; + UFS_INODE_SET_MODE(ip, dmode); DIP_SET(ip, i_mode, dmode); *dacl = *acl; ufs_sync_acl_from_inode(ip, acl); @@ -1602,7 +1672,7 @@ ufs_do_posix1e_acl_inheritance_dir(struct vnode *d /* * Just use the mode as-is. */ - ip->i_mode = dmode; + UFS_INODE_SET_MODE(ip, dmode); DIP_SET(ip, i_mode, dmode); error = 0; goto out; @@ -1673,7 +1743,7 @@ ufs_do_posix1e_acl_inheritance_file(struct vnode * * the it's not defined case. */ mode = acl_posix1e_newfilemode(mode, acl); - ip->i_mode = mode; + UFS_INODE_SET_MODE(ip, mode); DIP_SET(ip, i_mode, mode); ufs_sync_acl_from_inode(ip, acl); break; @@ -1684,7 +1754,7 @@ ufs_do_posix1e_acl_inheritance_file(struct vnode * /* * Just use the mode as-is. */ - ip->i_mode = mode; + UFS_INODE_SET_MODE(ip, mode); DIP_SET(ip, i_mode, mode); error = 0; goto out; @@ -1796,6 +1866,7 @@ ufs_mkdir(ap) error = UFS_VALLOC(dvp, dmode, cnp->cn_cred, &tvp); if (error) goto out; + vn_seqc_write_begin(tvp); ip = VTOI(tvp); ip->i_gid = dp->i_gid; DIP_SET(ip, i_gid, dp->i_gid); @@ -1846,6 +1917,7 @@ ufs_mkdir(ap) if (DOINGSOFTDEP(tvp)) softdep_revert_link(dp, ip); UFS_VFREE(tvp, ip->i_number, dmode); + vn_seqc_write_end(tvp); vgone(tvp); vput(tvp); return (error); @@ -1861,6 +1933,7 @@ ufs_mkdir(ap) if (DOINGSOFTDEP(tvp)) softdep_revert_link(dp, ip); UFS_VFREE(tvp, ip->i_number, dmode); + vn_seqc_write_end(tvp); vgone(tvp); vput(tvp); return (error); @@ -1868,7 +1941,7 @@ ufs_mkdir(ap) #endif #endif /* !SUIDDIR */ UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE); - ip->i_mode = dmode; + UFS_INODE_SET_MODE(ip, dmode); DIP_SET(ip, i_mode, dmode); tvp->v_type = VDIR; /* Rest init'd in getnewvnode(). */ ip->i_effnlink = 2; @@ -1974,6 +2047,7 @@ ufs_mkdir(ap) bad: if (error == 0) { *ap->a_vpp = tvp; + vn_seqc_write_end(tvp); } else { dp->i_effnlink--; dp->i_nlink--; @@ -1989,6 +2063,7 @@ bad: UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (DOINGSOFTDEP(tvp)) softdep_revert_mkdir(dp, ip); + vn_seqc_write_end(tvp); vgone(tvp); vput(tvp); } @@ -2637,8 +2712,9 @@ ufs_makeinode(mode, dvp, vpp, cnp, callfunc) } #endif #endif /* !SUIDDIR */ + vn_seqc_write_begin(tvp); /* Mostly to cover asserts */ UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE); - ip->i_mode = mode; + UFS_INODE_SET_MODE(ip, mode); DIP_SET(ip, i_mode, mode); tvp->v_type = IFTOVT(mode); /* Rest init'd in getnewvnode(). */ ip->i_effnlink = 1; @@ -2648,7 +2724,7 @@ ufs_makeinode(mode, dvp, vpp, cnp, callfunc) softdep_setup_create(VTOI(dvp), ip); if ((ip->i_mode & ISGID) && !groupmember(ip->i_gid, cnp->cn_cred) && priv_check_cred(cnp->cn_cred, PRIV_VFS_SETGID)) { - ip->i_mode &= ~ISGID; + UFS_INODE_SET_MODE(ip, ip->i_mode & ~ISGID); DIP_SET(ip, i_mode, ip->i_mode); } @@ -2688,6 +2764,7 @@ ufs_makeinode(mode, dvp, vpp, cnp, callfunc) error = ufs_direnter(dvp, tvp, &newdir, cnp, NULL, 0); if (error) goto bad; + vn_seqc_write_end(tvp); *vpp = tvp; return (0); @@ -2702,6 +2779,7 @@ bad: UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (DOINGSOFTDEP(tvp)) softdep_revert_create(VTOI(dvp), ip); + vn_seqc_write_end(tvp); vgone(tvp); vput(tvp); return (error); @@ -2740,6 +2818,7 @@ struct vop_vector ufs_vnodeops = { .vop_write = VOP_PANIC, .vop_accessx = ufs_accessx, .vop_bmap = ufs_bmap, + .vop_fplookup_vexec = ufs_fplookup_vexec, .vop_cachedlookup = ufs_lookup, .vop_close = ufs_close, .vop_create = ufs_create, -- Test scenario: misc/tmpfs8.sh