2007-09-02 19:40:41

by Philippe De Muyter

[permalink] [raw]
Subject: Hint needed : how to debug sempahore's problem

Hi all,

Can someone give me some hint or link for the following question :

I have several processes blocked in 'D' state, and I surmise they are
waiting for a semaphore (in the `down' routine). How is it possible :
- to verify the processes are really blocked on a semaphore,
- to see which semaphore they are waiting on,
- to find out which process/driver/whatever holds those semaphores.

If that matters, I work on a m68k board.

Thanks in advance

Philippe


2007-09-02 19:47:21

by Alexander Shishkin

[permalink] [raw]
Subject: Re: Hint needed : how to debug sempahore's problem

On 9/2/07, Philippe De Muyter <[email protected]> wrote:
> Hi all,
Hi,

> Can someone give me some hint or link for the following question :
>
> I have several processes blocked in 'D' state, and I surmise they are
> waiting for a semaphore (in the `down' routine). How is it possible :
> - to verify the processes are really blocked on a semaphore,
> - to see which semaphore they are waiting on,
> - to find out which process/driver/whatever holds those semaphores.
I'm sure there might be a better solution, but the easiest one I've
found for myself is enabling sysrq and sending sysrq-p or sysrq-t
combination to the board's console and see the callpaths that lead to
a deadlock (or other incorrect locking situation) in the kernel.

--
I like long walks, especially when they are taken by people who annoy me.