poll? ecpoll? in pgprof

When I want to check the profiling of my code with pgprof, I got the results like this

======== CPU profiling result (bottom up):
Time(%)      Time  Name
 33.34%  1329.66s  poll
 33.34%  1329.66s  | poll_dispatch
 33.34%   1329.6s  epoll_wait
 33.34%   1329.6s  | epoll_dispatch
  4.93%  196.427s  turb_k_w_sst_
  4.93%  196.427s  | lusgs_
  4.93%  196.427s  |   solve_
  4.93%  196.427s  |     MAIN_
  4.93%  196.427s  |       main
  4.91%  195.877s  distcal2_
  4.91%  195.877s  | readingrid_
  4.91%  195.877s  |   MAIN_
  4.91%  195.877s  |     main

what does the poll and expoll mean? I can’t find the function “poll” in my code.
the command I have used for profile was as follows:

mpirun -np 16 pgprof --annotate-mpi openmpi ./a.out

Hi xll_blt,

The code is most likely spawning some helper threads, with “poll” being the time these threads spend checking if they should wake-up.

By default, the CPU profile aggregates all the thread times together. Try running with “–cpu-profiling-thread-mode separated” to have each thread’s time split out.

pirun -np 16 pgprof --annotate-mpi openmpi --cpu-profiling-thread-mode separated ./a,out

Hope this helps,