Couldn't you just do some math off current->timestamp to see how long the task has been running? This per arch stuff seems a bit invasive..
Daniel On Tue, 2005-08-02 at 15:45 -0400, Steven Rostedt wrote: > On Tue, 2005-08-02 at 12:19 +0200, Ingo Molnar wrote: > > * Steven Rostedt <[EMAIL PROTECTED]> wrote: > > > > > In my custom kernel, I have a wchan field of the task that records > > > where the task calls something that might schedule. This way I can see > > > where things locked up if I don't have a back trace of the task. This > > > field is always zero when it switches to usermode. Something like > > > this can also be used to check how long the process is in kernel mode. > > > If a task is in the kernel for more than 10 seconds without sleeping, > > > that would definitely be a good indication of something wrong. I > > > probably could write something to check for this if people are > > > interested. I wont waste my time if nobody would want it. > > > > this would be a pretty useful extension of the softlockup checker! > > Here it is (Finally). I just had to be patient with the kjournal > lockup. I had to wait some time before the lockup occurred, but when it > did, I got my message out: > -------------------------------------------- > BUG: possible soft lockup detected on CPU#0! 1314840-1313839(1314839) > curr=kjournald:734 count=11 > [<c010410f>] dump_stack+0x1f/0x30 (20) > [<c01441e0>] softlockup_tick+0x170/0x1a0 (44) > [<c0125d32>] update_process_times+0x62/0x140 (28) > [<c010861d>] timer_interrupt+0x4d/0x100 (20) > [<c014450f>] handle_IRQ_event+0x6f/0x120 (48) > [<c014469c>] __do_IRQ+0xdc/0x1a0 (48) > [<c0105abe>] do_IRQ+0x4e/0x90 (28) > [<c0103b67>] common_interrupt+0x1f/0x24 (112) > [<c01edc36>] journal_commit_transaction+0x1206/0x1430 (112) > [<c01f06d0>] kjournald+0xd0/0x1e0 (84) > [<c01011ed>] kernel_thread_helper+0x5/0x18 (825638940) > --------------------------- > | preempt count: 20010003 ] > | 3-level deep critical section nesting: > ---------------------------------------- > .. [<c013d49a>] .... add_preempt_count+0x1a/0x20 > .....[<c01085ec>] .. ( <= timer_interrupt+0x1c/0x100) > .. [<c013d49a>] .... add_preempt_count+0x1a/0x20 > .....[<c014418d>] .. ( <= softlockup_tick+0x11d/0x1a0) > .. [<c013d49a>] .... add_preempt_count+0x1a/0x20 > .....[<c013e727>] .. ( <= print_traces+0x17/0x50) > > ------------------------------ > | showing all locks held by: | (kjournald/734 [c13e20b0, 69]): > ------------------------------ > ----------------------------------------------- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/