Hi I got the below output that shows perf can not resolve symbols for forked threads. I did a system-wide collection from all CPUs after the application hello run.
-bash-4.1$ ./perf --version perf version 3.16.rc1.ge99cfa2 -bash-4.1$ ./hello & ./perf record -a sleep 5 -bash-4.1$ ./perf report # Overhead Command Shared Object Symbol # ........ ........... .................. ............................. # 54.77% hello [unknown] [.] 0x0000000000400610 28.59% hello [unknown] [.] 0x0000000000400615 16.53% hello [unknown] [.] 0x000000000040061f 0.01% hello [kernel.kallsyms] [k] __rcu_process_callbacks 0.01% perf [kernel.kallsyms] [k] copy_user_generic_string 0.01% sleep [kernel.kallsyms] [k] filemap_fault .... /***************************************************************************** FILE: hello.c ** DESCRIPTION: ** A "hello world" Pthreads program to trigger this bug. ***************************************************************************/ #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #define NUM_THREADS 5 void foo(void) { long i = 1000000000; while (i--) { ; } } void *PrintHello(void *threadid) { long tid; tid = (long)threadid; printf("Hello World! It's me, thread #%ld!\n", tid); foo(); pthread_exit(NULL); } int main(int argc, char *argv[]) { pthread_t threads[NUM_THREADS]; int rc; long t; for(t=0;t<NUM_THREADS;t++){ printf("In main: creating thread %ld\n", t); rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t); if (rc){ printf("ERROR; return code from pthread_create() is %d\n", rc); exit(-1); } } /* Last thing that main() should do */ pthread_exit(NULL); } Thanks -Tony -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/