How to get kernel stack trace if process not blocked?
From: Ethan Wilson
Date: Sun Aug 17 2014 - 06:13:13 EST
Hello list,
cat /proc/pid/stack shows the kernel call stack of a process, and this
is so good, but it will show just 0xffffffffffffffff if the process is
running in kernel space and not blocked (sleeping).
With just an 0xffffffffffffffff AFAIU it is also impossible to
distinguish a process running in kernel space from a process running in
user space.
It would be *very* useful to get the kernel stack trace for a running
process, even if imprecise, or at least knowing the name of the kernel
function executing now (top of the stack). Why is it not doable?
I tried to disable CONFIG_SCHED_OMIT_FRAME_POINTER but it didn't allow
to print the stack from /proc/pid/stack anyway. What is the benefit of
disabling such kernel option (i.e. having the frame pointer)?
I guessed that maybe with EIP from /proc/pid/stat it is possible to do
something like that but I can't find much information on how to do that.
Thanks for any information
EW
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/