- 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:
parent
a7f9eced9a
commit
035201cf96
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=32129
1 changed files with 3 additions and 42 deletions
|
|
@ -3938,48 +3938,9 @@ kern.timecounter.hardware: TSC -> 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>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue