Dear folks,
On Sat, Jan 26, 2008 at 05:57:50PM +0000, Andrew Doran wrote:
> > 3) I think it'd be nice if we could retain something akin to
> > lockmgr_printinfo(). I realize that our locking is now such that we need
> > to print more than just one big heavy lock. However being able to figure
> > out what's up/broken with locks can help. :-)
>
> We have 'show lock' from ddb. I'll see about providing a replacement.
I'd opt for a couple of fields in each lock that states its last
modification location; say
struct kmutex {
.....
char const *modification_file;
int modification_line;
}
then a kmutex_enter() *macro* could set kmutex->modification_file to
__FILE__ and kmutex->modification_line to __LINE__ if the LOCKDEBUG is
defined and proceed. Maybe even a seperate entry for lock and release.
Debugging on deadlock detection then becomes printing out the locks and
their claim and release points.
Could a kmutex be given a kind of `timeout' value? i.e. if it hasn't been
exited after the specified time it is considered a deadlock? Say a minute
or so as default?
comments?
With regards,
Reinoud
Attachment:
pgpM5cM7mv0Kl.pgp
Description: PGP signature