Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Aug 2004 00:12:05 -0400 (EDT)
From:      Robert Watson <rwatson@freebsd.org>
To:        Roman Kurakin <rik@cronyx.ru>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Tracking down LORs
Message-ID:  <Pine.NEB.3.96L.1040820001041.20697B-100000@fledge.watson.org>
In-Reply-To: <41252924.4020305@cronyx.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

On Fri, 20 Aug 2004, Roman Kurakin wrote:

> 	Currently I am trying to track down a couple of LORS in my code.
> But it seems that I do not undestand smth or all things id realy so bad. 

I find it's very helpful to add lock orders to the hard-coded lock order
table in subr_witness.c.  Without hard-coded entries, WITNESS will
dynamically build an order based on observed lock use.  This is generally
fine, but once in a while the "wrong" order will be used before the
"right" order, so the lock order warning will print for the "right" order,
leaving less useful debugging information.  The table allows the
definition of partial orders, so you can specify relationships between
subsets of mutexes of interest.  WITNESS will flesh out remaining orders
through dynamic discovery.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert@fledge.watson.org      Principal Research Scientist, McAfee Research


> 
> 	So I want to ask some questions to find out if my thoughts
> correct or wrong.
> 
> 1. If I am right LOR means that we have at least two mutexs.
> Lets call them a and b. If we set a, then b in first case
> and b then a in second we could get dead loop, and thus LOR.
> 
> 2. If I have some driver that have mutex a, and we have some
> sytem code that could call this driver with Giant (b), we would
> get LOR if driver lock a and some other part of system will
> try to lock Giant?
> 
> or I am wrong?
> 
> rik
> 
> 
> 
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1040820001041.20697B-100000>