opnsense-src/sys/kern
Attilio Rao 93a45f0f56 MFC r201879:
Introduce the new kernel thread called "deadlock resolver".
It is used in order to seek within the threads state and heuristically
understand if there is any deadlock happening.

In order to implement it, the sq_type in sleepqueues is mandatory and not
only compiled along with INVARIANTS option. Additively, a new sleepqueue
function, sleepq_type() is added, returning the type of the sleepqueue
linked to a wchan.
Three new sysctls are added in order to configure the thread:
debug.deadlkres.slptime_threshold
debug.deadlkres.blktime_threshold
debug.deadlkres.sleepfreq

rappresenting the thresholds for sleep and block time that will lead to
a deadlock matching (when exceeded), while the sleepfreq rappresents the
number of seconds between 2 consecutive thread runnings.
In order to enable the deadlock resolver thread recompile your kernel
with the option DEADLKRES.

Sponsored by:	Sandvine Incorporated
2010-01-25 12:05:51 +00:00
..
bus_if.m MFC 198134,198149,198170,198171,198391,200948: 2010-01-21 17:54:29 +00:00
clock_if.m
cpufreq_if.m
device_if.m
genassym.sh refactor code so it can run in a chroot without having to have /dev/mounted 2008-01-18 17:02:14 +00:00
imgact_aout.c Add sv_flags field to struct sysentvec with intention to provide description 2008-11-22 12:36:15 +00:00
imgact_elf.c MFC r197726: 2009-12-05 20:40:28 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_gzip.c VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
imgact_shell.c Decontextualize the couplet VOP_GETATTR / VOP_SETATTR as the passed thread 2008-08-28 15:23:18 +00:00
inflate.c
init_main.c MFC 197658: print machine in kernel boot version string 2009-11-01 17:40:05 +00:00
init_sysent.c Regen 2009-12-19 11:50:04 +00:00
kern_acct.c Do not use casts (int *)0 and (struct thread *)0 for the arguments of 2009-06-16 15:13:45 +00:00
kern_alq.c Add another flags argument to vn_open_cred. Use it to specify that some 2009-06-21 13:41:32 +00:00
kern_clock.c MFC r201879: 2010-01-25 12:05:51 +00:00
kern_condvar.c Remove unused variables p' and unneeded assignments of rval'. 2009-02-26 13:00:13 +00:00
kern_conf.c MFC 196615: 2009-10-29 15:09:54 +00:00
kern_cons.c Remove unneeded variable `ocn_mute'. 2009-02-26 13:01:45 +00:00
kern_context.c MFC r198507: 2009-12-19 11:31:28 +00:00
kern_cpu.c MFC: r201848 2010-01-22 17:03:49 +00:00
kern_cpuset.c Remove unnecessary/redundant includes. 2009-06-23 14:39:21 +00:00
kern_ctf.c Add the CTF source file which gets shared with link_elf.c and link_elf_obj.c. 2008-05-23 03:04:27 +00:00
kern_descrip.c MFC revision 197579 and 199617: 2009-12-07 19:59:28 +00:00
kern_dtrace.c Remove code that isn't required. It actually breaks the case where KDTRACE_HOOKS 2008-06-16 04:44:29 +00:00
kern_environment.c Move "options MAC" from opt_mac.h to opt_global.h, as it's now in GENERIC 2009-06-05 14:55:22 +00:00
kern_event.c MFC r201350: 2010-01-22 19:51:34 +00:00
kern_exec.c MFC 198411: 2010-01-21 19:11:18 +00:00
kern_exit.c MFC r197942: 2009-10-13 09:24:51 +00:00
kern_fail.c fail(9) support: 2009-05-27 16:36:54 +00:00
kern_fork.c MFC r196730: 2009-09-08 15:31:23 +00:00
kern_idle.c In keeping with style(9)'s recommendations on macros, use a ';' 2008-03-16 10:58:09 +00:00
kern_intr.c MFC 198134,198149,198170,198171,198391,200948: 2010-01-21 17:54:29 +00:00
kern_jail.c MFC r202468: 2010-01-23 16:40:35 +00:00
kern_kthread.c MFC r196730: 2009-09-08 15:31:23 +00:00
kern_ktr.c
kern_ktrace.c MFC 198411: 2010-01-21 19:11:18 +00:00
kern_linker.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
kern_lock.c MFC r200447,201703,201709-201710: 2010-01-18 14:43:44 +00:00
kern_lockf.c In lf_iteratelocks_vnode, increment state->ls_threads around iterating 2009-06-25 18:54:56 +00:00
kern_lockstat.c Add the OpenSolaris dtrace lockstat provider. The lockstat provider 2009-05-26 20:28:22 +00:00
kern_malloc.c If we're passed garbage in malloc_init(), panic() rather than expecting 2009-06-05 09:16:52 +00:00
kern_mbuf.c Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
kern_mib.c MFC r201953: 2010-01-12 06:09:56 +00:00
kern_module.c When the SYSINIT() to load a module invokes the MOD_LOAD event successfully, 2008-12-05 16:47:30 +00:00
kern_mtxpool.c Fix a number of style issues in the MALLOC / FREE commit. I've tried to 2008-10-23 20:26:15 +00:00
kern_mutex.c MFC r196334: 2009-08-17 16:33:53 +00:00
kern_ntptime.c In keeping with style(9)'s recommendations on macros, use a ';' 2008-03-16 10:58:09 +00:00
kern_osd.c Make the rmlock(9) interface a bit more like the rwlock(9) interface: 2009-05-29 10:52:37 +00:00
kern_physio.c
kern_pmc.c Support sparsely numbered CPUs. 2008-09-22 10:37:02 +00:00
kern_poll.c Merge r196267 from head to stable/8: 2009-08-20 21:29:49 +00:00
kern_priv.c Move "options MAC" from opt_mac.h to opt_global.h, as it's now in GENERIC 2009-06-05 14:55:22 +00:00
kern_proc.c MFC r200995: 2009-12-28 14:44:22 +00:00
kern_prot.c Remove the interim vimage containers, struct vimage and struct procg, 2009-07-17 14:48:21 +00:00
kern_resource.c Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
kern_rmlock.c MFC r201000: 2009-12-28 14:47:25 +00:00
kern_rwlock.c MFC r197643, r197735: 2009-10-12 15:32:00 +00:00
kern_sdt.c Add kernel support for the Statically Defined Trace provider. 2008-05-18 19:32:36 +00:00
kern_sema.c
kern_shutdown.c MFC r196196: 2009-08-13 17:54:11 +00:00
kern_sig.c MFC r199355: 2009-12-19 12:06:12 +00:00
kern_subr.c Make ureadc() warn when holding any locks, just like uiomove(). 2008-08-28 19:34:58 +00:00
kern_switch.c - Use DPCPU for SCHED_STATS. This is somewhat awkward because the 2009-06-25 01:33:51 +00:00
kern_sx.c MFC r200447,201703,201709-201710: 2010-01-18 14:43:44 +00:00
kern_synch.c Add new msleep(9) flag PBDY that shall be specified together with 2009-07-14 22:52:46 +00:00
kern_syscalls.c Various style fixes. 7 space indent is just odd. 2008-09-18 20:10:11 +00:00
kern_sysctl.c MFC r196176: 2009-08-13 10:31:02 +00:00
kern_tc.c Remove conditionally compiled time counter statistics; tools like 2009-04-11 22:01:40 +00:00
kern_thr.c MFC r197963: 2009-12-19 10:54:29 +00:00
kern_thread.c MFC 198464: 2009-12-08 18:23:52 +00:00
kern_time.c Remove VOP_LEASE and supporting functions. This hasn't been used since 2009-04-10 10:52:19 +00:00
kern_timeout.c Add explicit static DTrace tracing to the callout mechanism, capturing 2009-01-24 10:22:49 +00:00
kern_umtx.c MFC r197476: 2009-10-13 13:03:31 +00:00
kern_uuid.c Merge r196481 from head to stable/8: 2009-08-28 20:06:02 +00:00
kern_xxx.c Place hostnames and similar information fully under the prison system. 2009-05-29 21:27:12 +00:00
ksched.c
link_elf.c Build on Jeff Roberson's linker-set based dynamic per-CPU allocator 2009-07-14 22:48:30 +00:00
link_elf_obj.c Add macros VNET_SETNAME and VNET_SYMPREFIX, and expose to userspace if 2009-07-20 07:50:50 +00:00
linker_if.m strict kobj signatures: linker_if fixes 2009-06-11 17:05:45 +00:00
Make.tags.inc Catch up with the disappearance of sys/dev/hfa. 2008-12-01 14:34:42 +00:00
Makefile style.Makefile(5) 2007-12-14 21:30:51 +00:00
makesyscalls.sh Add a new COMPAT7 flag for FreeBSD 7.x compatibility system calls. 2009-06-24 13:36:37 +00:00
md4c.c
md5c.c
p1003_1b.c Remove kernel support for M:N threading. 2008-03-12 10:12:01 +00:00
posix4_mib.c
sched_4bsd.c MFC r201790: 2010-01-25 11:56:53 +00:00
sched_ule.c MFC r201347: 2010-01-07 11:41:47 +00:00
serdev_if.m
stack_protector.c MFC r198295: 2009-10-24 04:55:14 +00:00
subr_acl_nfs4.c Add part of NFSv4 ACL kernel support code that is required for the upcoming 2009-06-09 19:51:22 +00:00
subr_acl_posix1e.c Make 'struct acl' larger, as required to support NFSv4 ACLs. Provide 2009-05-22 15:56:43 +00:00
subr_autoconf.c Prefer ANSI function definitions to K&R ones. 2009-02-03 07:52:07 +00:00
subr_blist.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
subr_bufring.c - bump __FreeBSD version to reflect added buf_ring, memory barriers, 2008-11-22 05:55:56 +00:00
subr_bus.c MFC 198411: 2010-01-21 19:11:18 +00:00
subr_clock.c Now that all platforms use genclock, shuffle things around slightly 2008-04-22 19:38:30 +00:00
subr_devstat.c Use NULL in preference to 0 in pointer contexts. 2009-02-03 07:54:42 +00:00
subr_disk.c Clarify and reimplement the bioq API so that bioq_disksort() has 2009-02-13 11:36:32 +00:00
subr_eventhandler.c MFC r200652 2009-12-31 00:09:47 +00:00
subr_fattime.c
subr_firmware.c Use NULL in preference to 0 for pointers. 2009-02-03 07:51:11 +00:00
subr_hints.c
subr_kdb.c MFC r196196: 2009-08-13 17:54:11 +00:00
subr_kobj.c Use NULL in preference to 0 in pointer contexts. 2009-02-03 07:54:42 +00:00
subr_lock.c - Implement a new mechanism for resetting lock profiling. We now 2009-03-15 06:41:47 +00:00
subr_log.c In keeping with style(9)'s recommendations on macros, use a ';' 2008-03-16 10:58:09 +00:00
subr_mbpool.c
subr_mchain.c Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
subr_module.c
subr_msgbuf.c
subr_param.c Increase HZ_VM from 10 to 100. While 10 hz saves cpu time 2009-07-08 01:09:12 +00:00
subr_pcpu.c MFC r196132: 2009-08-12 12:10:28 +00:00
subr_power.c
subr_prf.c Remove redundant code in printf() and vprintf(). 2009-02-27 13:28:54 +00:00
subr_prof.c Use ANSI function definition for profil. 2009-02-03 07:52:36 +00:00
subr_rman.c sysctl_rman: report shared resources to devinfo 2009-05-19 14:08:21 +00:00
subr_rtc.c Clean up MI inittodr(9) and kill noop code. 2009-03-23 21:16:21 +00:00
subr_sbuf.c Switch to simplified BSD license (with phk's approval), plus whitespace 2008-08-09 10:26:21 +00:00
subr_scanf.c
subr_sglist.c MFC 196417: 2009-08-21 03:14:39 +00:00
subr_sleepqueue.c MFC r201879: 2010-01-25 12:05:51 +00:00
subr_smp.c MFC r197390: 2009-09-28 11:31:21 +00:00
subr_stack.c Add stack_print_short() and stack_print_short_ddb() interfaces to 2009-06-24 12:06:15 +00:00
subr_taskqueue.c MFC 198411: 2010-01-21 19:11:18 +00:00
subr_trap.c MFC r198508, r198509: 2009-12-19 11:47:00 +00:00
subr_turnstile.c MFC r201879: 2010-01-25 12:05:51 +00:00
subr_unit.c Since cdev mutex is after system map mutex in global lock order, free() 2007-07-04 06:56:58 +00:00
subr_witness.c MFC r196891 to stable/8: 2009-10-31 12:26:40 +00:00
sys_generic.c MFC r198508, r198509: 2009-12-19 11:47:00 +00:00
sys_pipe.c Fix poll(2) and select(2) for named pipes to return "ready for read" 2009-07-07 09:43:44 +00:00
sys_process.c Clean up a number of aspects of token generation from audit arguments to 2009-07-02 09:15:30 +00:00
sys_socket.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
syscalls.c Regen 2009-12-19 11:50:04 +00:00
syscalls.master MFC r198508, r198509: 2009-12-19 11:47:00 +00:00
systrace_args.c Regen 2009-12-19 11:50:04 +00:00
sysv_ipc.c Change the ABI of some of the structures used by the SYSV IPC API: 2009-06-24 21:10:52 +00:00
sysv_msg.c Change the ABI of some of the structures used by the SYSV IPC API: 2009-06-24 21:10:52 +00:00
sysv_sem.c Change the ABI of some of the structures used by the SYSV IPC API: 2009-06-24 21:10:52 +00:00
sysv_shm.c Use the correct cast for the arguments passed to freebsd_shmctl() in 2009-06-25 17:11:27 +00:00
tty.c MFC r201532: 2010-01-18 09:04:53 +00:00
tty_compat.c MFC r201532: 2010-01-18 09:04:53 +00:00
tty_info.c Print an extra newline when not at the first column already. 2009-05-17 16:17:48 +00:00
tty_inq.c Enable secure TTY input buffer flushing by default. 2009-05-21 16:48:06 +00:00
tty_outq.c Use unsigned longs for the TTY's sysctl stats. 2009-02-26 10:28:32 +00:00
tty_pts.c MFC r201532: 2010-01-18 09:04:53 +00:00
tty_pty.c MFC r196378: 2009-08-19 14:38:43 +00:00
tty_tty.c Remove unneeded Giant locking of /dev/tty. 2008-06-03 12:38:00 +00:00
tty_ttydisc.c MFC r198185: 2009-12-31 10:53:04 +00:00
uipc_accf.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
uipc_cow.c Extend the struct vm_page wire_count to u_int to avoid the overflow 2009-01-03 13:24:08 +00:00
uipc_debug.c Add missing socket options. 2009-05-26 09:19:21 +00:00
uipc_domain.c MFC r196501: 2009-08-28 19:08:56 +00:00
uipc_mbuf.c Add m_mbuftouio() helper function to copy(out) an arbitrary 2009-06-22 22:20:38 +00:00
uipc_mbuf2.c Move "options MAC" from opt_mac.h to opt_global.h, as it's now in GENERIC 2009-06-05 14:55:22 +00:00
uipc_mqueue.c Adapt vfs kqfilter to the shared vnode lock used by zfs write vop. Use 2009-06-10 20:59:32 +00:00
uipc_sem.c Move "options MAC" from opt_mac.h to opt_global.h, as it's now in GENERIC 2009-06-05 14:55:22 +00:00
uipc_shm.c Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
uipc_sockbuf.c In sbappendstream_locked() demote all incoming packet mbufs (and 2009-06-22 21:46:40 +00:00
uipc_socket.c Merge r197720 from head to stable/8: 2009-12-14 10:48:19 +00:00
uipc_syscalls.c MFC 200620,200621: fix argument order to mtx_init call. 2009-12-27 22:49:34 +00:00
uipc_usrreq.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
vfs_acl.c MFC r197789: 2009-11-06 09:39:35 +00:00
vfs_aio.c Adapt vfs kqfilter to the shared vnode lock used by zfs write vop. Use 2009-06-10 20:59:32 +00:00
vfs_bio.c When buffer write is failed, it is wrong for brelse() to invalidate 2009-07-19 20:25:59 +00:00
vfs_cache.c MFC r196203: 2009-08-14 11:06:58 +00:00
vfs_cluster.c Remove a stale comment. The very same revision (r85511) that introduced 2009-06-30 19:39:17 +00:00
vfs_default.c Add explicit struct ucred * argument for VOP_VPTOCNP, to be used by 2009-06-21 19:21:01 +00:00
vfs_export.c MFC r197581, r197583, r197584: 2009-10-01 13:11:45 +00:00
vfs_extattr.c Replace AUDIT_ARG() with variable argument macros with a set more more 2009-06-27 13:58:44 +00:00
vfs_hash.c In keeping with style(9)'s recommendations on macros, use a ';' 2008-03-16 10:58:09 +00:00
vfs_init.c Expand the scope of the sysctllock sx lock to protect the sysctl tree itself. 2009-02-06 14:51:32 +00:00
vfs_lookup.c MFC r199137: 2009-11-17 11:46:55 +00:00
vfs_mount.c MFC r199227: 2009-11-27 02:45:50 +00:00
vfs_subr.c MFC r200770: 2010-01-11 12:35:16 +00:00
vfs_syscalls.c MFC r196887: 2009-09-09 13:28:18 +00:00
vfs_vnops.c MFC revision 197579 and 199617: 2009-12-07 19:59:28 +00:00
vnode_if.src Add explicit struct ucred * argument for VOP_VPTOCNP, to be used by 2009-06-21 19:21:01 +00:00