All of lore.kernel.org
 help / color / mirror / Atom feed
* lost some call trace for sleep function
@ 2017-10-26 10:24 yuzhoujian
  2017-10-26 17:32 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 2+ messages in thread
From: yuzhoujian @ 2017-10-26 10:24 UTC (permalink / raw)
  To: peterz, mingo, alexander.shishkin, jolsa, dsahern, namhyung,
	milian.wolff, arnaldo.melo, yuzhoujian, adrian.hunter, wangnan0
  Cc: linux-perf-users, linux-kernel, acme

Hi, all.
I find a strange problem. Perf cannot record call stack which contains sleep functions.
The last function of the call trace is always "__GI___libc_nanosleep" for each sample.
one of the sample for perf script is below:

test_sleep 12275 185233.961287:          1 cycles:ppp: 
        ffffffff8100add0 intel_bts_enable_local ([kernel.kallsyms])
        ffffffff81008f20 intel_pmu_enable_all ([kernel.kallsyms])
        ffffffff810057ec x86_pmu_enable ([kernel.kallsyms])
        ffffffff81173e57 perf_pmu_enable ([kernel.kallsyms])
        ffffffff81175404 __perf_event_task_sched_in ([kernel.kallsyms])
        ffffffff810c1aa8 finish_task_switch ([kernel.kallsyms])
        ffffffff81690e00 __schedule ([kernel.kallsyms])
        ffffffff81691409 schedule ([kernel.kallsyms])
        ffffffff816902d6 do_nanosleep ([kernel.kallsyms])
        ffffffff810b747b hrtimer_nanosleep ([kernel.kallsyms])
        ffffffff810b75be sys_nanosleep ([kernel.kallsyms])
        ffffffff8169c749 system_call_fastpath ([kernel.kallsyms])
		   bf190 __GI___libc_nanosleep (/usr/lib64/libc-2.17.so)

Below is the source code of test_sleep:

void f2()
{
        sleep(1);
}
void f1()
{
        f2();
}
int main()
{
  	while(1)
     		f1();
   	return 0;
}

I think the right call stack should contain the __sleep function in glibc, just as follow

test_sleep 12275 185233.961287:          1 cycles:ppp: 
        ffffffff8100add0 intel_bts_enable_local ([kernel.kallsyms])
        ffffffff81008f20 intel_pmu_enable_all ([kernel.kallsyms])
        ffffffff810057ec x86_pmu_enable ([kernel.kallsyms])
        ffffffff81173e57 perf_pmu_enable ([kernel.kallsyms])
        ffffffff81175404 __perf_event_task_sched_in ([kernel.kallsyms])
        ffffffff810c1aa8 finish_task_switch ([kernel.kallsyms])
        ffffffff81690e00 __schedule ([kernel.kallsyms])
        ffffffff81691409 schedule ([kernel.kallsyms])
        ffffffff816902d6 do_nanosleep ([kernel.kallsyms])
        ffffffff810b747b hrtimer_nanosleep ([kernel.kallsyms])
        ffffffff810b75be sys_nanosleep ([kernel.kallsyms])
        ffffffff8169c749 system_call_fastpath ([kernel.kallsyms])
		   bf190 __GI___libc_nanosleep (/usr/lib64/libc-2.17.so)
		   bef70 __sleep (/usr/lib64/libc-2.17.so)
        	   5a1 f2 (/home/test_sleep)
        	   5c1 f1 (/home/test_sleep)
        	   5d1 main (/home/test_sleep)
        	   21c05 __libc_start_main (/usr/lib64/libc-2.17.so)

Is it a bug for perf record ??

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-10-26 17:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-26 10:24 lost some call trace for sleep function yuzhoujian
2017-10-26 17:32 ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.