public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Best way to find where a lock is taken and not released?
@ 2004-10-16  9:30 Nigel Cunningham
  2004-10-16 16:46 ` Andreas Dilger
  0 siblings, 1 reply; 3+ messages in thread
From: Nigel Cunningham @ 2004-10-16  9:30 UTC (permalink / raw)
  To: Linux Kernel Mailing List

Hi all.

I saw a hang the other day (2.6.8.1) where all other processes except
the suspending to disk one were refrigerated and the process doing the
suspending was stuck trying to take the dcache_lock via
shrink_all_memory. Obviously some path called via shrink_all_memory had
taken the lock and not released it, then tried to retake it _or_ another
process had taken the lock and then not released it when backing out and
entering the refrigator. My question is, what's the best way to find the
path on which this occurs? Grepping, I see dcache_lock all over the
show, so if there's a more efficient method that reading the files, I'd
like to learn it. It occurs to me that I might try wrapping calls to
lock and unlock that lock in printks, but I'm wondering if there's some
better way I don't yet know.

Regards,

Nigel
-- 
Nigel Cunningham
Pastoral Worker
Christian Reformed Church of Tuggeranong
PO Box 1004, Tuggeranong, ACT 2901

Many today claim to be tolerant. True tolerance, however, can cope with others
being intolerant.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-10-16 21:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-16  9:30 Best way to find where a lock is taken and not released? Nigel Cunningham
2004-10-16 16:46 ` Andreas Dilger
2004-10-16 21:40   ` Nigel Cunningham

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox