mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [BUG] perf: can not resolve symbols for forked threads
@ 2014-06-19  7:39 Tony Lu
  2014-06-23  9:12 ` Peter Zijlstra
  0 siblings, 1 reply; 4+ messages in thread
From: Tony Lu @ 2014-06-19  7:39 UTC (permalink / raw)
  To: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: linux-kernel, Tony Lu, Chris Metcalf

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

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

end of thread, other threads:[~2014-06-24 10:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-19  7:39 [BUG] perf: can not resolve symbols for forked threads Tony Lu
2014-06-23  9:12 ` Peter Zijlstra
2014-06-24  6:47   ` Tony Lu
2014-06-24 10:42     ` Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®