Re: [PATCH 1/1] perf,tools: add time out to force stop endless mmap processing

From: David Ahern
Date: Fri Jun 12 2015 - 15:29:27 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/