From: David F. <df...@ni...> - 2012-12-12 14:45:57
|
On 12/11/2012 7:39 PM, Maynard Johnson wrote: > On 12/11/2012 08:46 AM, David Flater wrote: >> I was raising what I think is a separate issue (forwarding complete message with >> disassemblies to oprofile list). The analogous output from operf has both the >> anomalous recursion and the missing main problem (summarized in operf_O1.dot.png). > ^--- ?? I see 'main' in the output below, showing as a caller of fn2. The anomaly is that main appears in only half of the callchains, when in fact it should be in all of them. Perhaps I'm reading the report wrong, but gprof2dot visualized it according to the dot graph that I attached previously, where half of the callchains went directly from __libc_start_main to fn2 without the intervening main. > The output below is for the app named 'val4', not val4_01. Maybe you pasted in the wrong output. It was just sloppiness on my part, hastily gathering the comparable results from operf. > Nevertheless, I am not seeing this callgraph problem with either perf or operf on my RHEL 6.3/Sandybridge laptop. Below, you mention you're running kernel 3.6.7. Maybe this is a regression. Can you try to reproduce on an older distro (like RHEL 6.x or SLES 11 SPx? Taking that as agreement that I'm seeing a real problem, the first thing I will try is to see if an older version of gcc has a different behavior and yields different results through the profiling tools. Thanks, DWF > -Maynard >> >> ------------------------------------------------------------------------------- >> 2496 33.1915 val4 fn2 >> 2511 33.3910 libc-2.15.so __libc_start_main >> 2513 33.4176 val4 main >> 2496 49.6618 val4 fn2 >> 2513 33.4176 val4 fn1 >> 2496 33.1915 val4 fn2 >> 2496 33.1915 val4 fn2 [self] >> 14 0.1862 vmlinux apic_timer_interrupt >> 1 0.0133 vmlinux smp_apic_timer_interrupt >> ------------------------------------------------------------------------------- |