- Replace answer about "lock order reversal" with a link pointing to

the FreeBSD Glossary (FreeBSD Handbook) containing the almost the
  same description

Approved by:	gabor (mentor)
This commit is contained in:
Gabor Pali 2008-06-01 19:38:08 +00:00
parent a7f9eced9a
commit 035201cf96
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=32129

View file

@ -3938,48 +3938,9 @@ kern.timecounter.hardware: TSC -&gt; i8254</screen>
</question>
<answer>
<para>&a.rwatson; answered this question very succinctly on
the freebsd-current list in a thread entitled <quote><ulink
url="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=65165+0+/usr/local/www/db/text/2003/freebsd-current/20031221.freebsd-current">lock
order reversals - what do they mean?</ulink></quote></para>
<blockquote>
<attribution>&a.rwatson; on freebsd-current, December 14,
2003</attribution>
<para>These warnings are generated by Witness, a run-time lock
diagnostic system found in FreeBSD -CURRENT kernels (but
removed in releases). You can read more about Witness in the
&man.witness.4; man page, which talks about its capabilities. Among
other things, Witness performs run-time lock order verification
using a combination of hard coded lock orders, and run-time
detected lock orders, and generates console warnings when lock
orders are violated. The intent of this is to detect the
potential for deadlocks due to lock order violations; it is worth
observing that Witness is actually slightly conservative, and so
it is possible to get false positives. In the event that Witness
is accurately reporting a lock order problem, it is basically
saying "If you were unlucky, a deadlock would have happened
here". There are a couple of "well known" false positives,
which we need to do a better job of documenting to prevent
spurious reports. The non-well-known ones typically correspond
to bugs in newly added locking, as lock order reversals usually
get fixed pretty quickly because Witness is busy generating
warnings :-).</para>
</blockquote>
<note>
<para>A so-called "false positive" is actually Witness tripping
over a much more serious bug. Such bugs are typically a page
fault or memory corruption experienced inside of the kernel, or
a name clash with mutexes.</para>
</note>
<note>
<para>See <ulink
url="http://sources.zabbadoz.net/freebsd/lor.html">Bjoern
Zeeb's lock order reversal page</ulink> for the status of
known lock order reversals.</para>
</note>
<para>An answer for this question can be found in the FreeBSD
Glosssary, see <ulink
url="&url.books.handbook;/freebsd-glossary.html#LOR-GLOSSARY">LOR</ulink>.</para>
</answer>
</qandaentry>