]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC r201879:
authorattilio <attilio@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 25 Jan 2010 12:05:51 +0000 (12:05 +0000)
committerattilio <attilio@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 25 Jan 2010 12:05:51 +0000 (12:05 +0000)
commitb749c76e4e8c3e48596eef4a3bef997bd3be47f9
tree374e28a76adf2bc2aa2c11c8832553006d655ebc
parent5b21fbdd1cfe9e88e95c747f69ad9a28b45d148d
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

git-svn-id: svn://svn.freebsd.org/base/stable/8@202966 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
UPDATING
share/man/man9/sleepqueue.9
sys/conf/NOTES
sys/conf/options
sys/kern/kern_clock.c
sys/kern/subr_sleepqueue.c
sys/kern/subr_turnstile.c
sys/sys/proc.h
sys/sys/sleepqueue.h