From: Will C. <wc...@re...> - 2004-03-22 22:06:43
|
I tried the callgraph-0.2.diff patch with the relatively recent kernel 2.6.4 kernel (kernel-source-2.6.4-1.275 from http://people.redhat.com/arjanv/2.6/). The patch appears to work with earlier version of the kernel, linux-2.6.2-1.180. However, with this 2.6.4 kernel the call graph code causes the machine to lock up. Used the following to start oprofile. $ sudo /usr/local/bin/opcontrol --setup --vmlinux=/home/wcohen/oprofile/linux-2.6.4-1.275.callgraph/vmlinux --separate=library --callgraph=2 $ sudo /usr/local/bin/opcontrol --start --callgraph=2 I have done some exploring using "#ifdef 0" and "#endif" to exclude certain sections of code. The problem seems to be in the backtrace.c for the user space code. The kernel backtrace in backtrace.c:x86_backtrace() seems to work fine. However, the corresponding loop later in x86_backtrace() for the userspace backtrace hangs. I made a copy of dump_backtrace for the userspace loop then made the new function return immediately rather than recording the return address. This avoided lock up. Anyone else noticed similar problems? -Will |