No subject
Mon Jul 23 17:50:42 EST 2007
threads currently running. With "P 0" you get the dump of
threads running on the kernel.
Example of the output for one thread:
id 0x900000000, ptr 0xc000000002b27f90, attachment 0xc0000000024c6e00, state BLOCKED
thread data 0xc000000002b27d80, groups 0x1c
generation -1, targetID 0xffffffffffffffff
call chain: c000000002381298 c00000000237c9f4 c000000002386af8
c000000002384df4 c0000000022d82e8 c000000002316038
c0000000020fb214 c0000000023159ac c0000000023806bc
c00000000237b958
So if you suspect that you have a deadlock, you can go through the
BLOCKED threads trying to identify one that is trying to acquire a
lock. The threads with "generation -1" information are usually
"deactivated", and the fact that they are blocked doesn't imply
on something wrong. Start your investigation with BLOCKED (or
BARRED) threads with generation != -1).
You can inspect the call chain using the tool dezig. For example,
iff the thread is part of the kernel, you can invoke
dezig boot_image.dbg
and then you cut and paste the call chain, so you can see the
invocations, file and line numbers. (If you are experiencing the
problem with noDeb, you won't have this info). For the example
above dezig gives us:
[kix:.../powerpc/fullDeb/os] dezig boot_image.dbg
Using binary image: boot_image.dbg
call chain: c000000002381298 c00000000237c9f4 c000000002386af8
c000000002384df4 c0000000022d82e8 c000000002316038
c0000000020fb214 c0000000023159ac c0000000023806bc
c00000000237b958
.DispatcherDefault_Suspend DispatcherDefaultAsm.S 279
.DispatcherDefault::disabledBlock() DispatcherDefault.C 798
.DispatcherDefault::block() DispatcherDefault.H 284
.Scheduler::Block() Scheduler.C 204
.BaseSemaphore<BLock>::P(BLock*, long) Sem.H 128
down_interruptible Sem.H 284
scsi_error_handler scsi_error.c 1665
ThreadStarter(unsigned long) Scheduler.C 66
.DispatcherDefault::ThreadBase(DispatcherDefa DispatcherDefault.C 415
DispatcherDefault_ThreadBase DispatcherDefault.C 445
Hopefully this info is useful to someone :)
Dilma
More information about the K42-discussion
mailing list