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


--
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/

Reply via email to