Messages in this thread | | | Date | Fri, 12 Jun 2015 13:29:13 -0600 | From | David Ahern <> | Subject | Re: [PATCH 1/1] perf,tools: add time out to force stop endless mmap processing |
| |
On 6/12/15 12:19 PM, Liang, Kan wrote: >>> [perf]$ sudo ./perf record -e instructions:pp --pid 14560 Reading >>> /proc/14560/maps cost 13.12690599 s ^C[ perf record: Woken up 1 times >>> to write data ] [ perf record: Captured and wrote 0.108 MB perf.data >>> (2783 samples) ] >> >> so perf was able to read the proc file? > > Yes, perf always can read proc file. The problem is that the proc file is > huge and keep growing faster than proc reader. > So perf top do loop in perf_event__synthesize_mmap_events until the > test case exit.
I'm confused. How are you getting the above time to read /proc maps if it never finishes?
>> Are you sure task_diag is enabled? There is an option under General I >> believe: >> config TASK_DIAG >> bool "Export task/process properties through netlink" >> depends on NET && TASKSTATS >> default n >> help >> Export selected properties for tasks/processes through the >> generic netlink interface. Unlike the proc file system, task_diag >> returns information in a binary format, allows to specify which >> information are required. >> >> Say N if unsure. >> > It works now.
for this test case how does perf-record compare between proc and task_diag? You can use my command for both. It defaults to using task_diag and then you can add --no-task_diag to have it read /proc. And as mentioned before it is only setup for 'perf record -a' case. So
launch your test program perf record -a -- usleep 1 perf record -a --no-task_diag -- usleep 1
| |