Re: [PATCH v7 2/6] perf record: Get the first sample time and last sample time

From: Jin, Yao
Date: Fri Jan 05 2018 - 17:56:03 EST




On 1/5/2018 8:53 PM, Arnaldo Carvalho de Melo wrote:
Em Fri, Jan 05, 2018 at 09:15:03AM +0800, Jin, Yao escreveu:


On 1/5/2018 3:09 AM, Arnaldo Carvalho de Melo wrote:
Em Fri, Dec 08, 2017 at 09:13:42PM +0800, Jin Yao escreveu:
In the default 'perf record' configuration, all samples are processed,
to create the HEADER_BUILD_ID table. So it's very easy to get the
first/last samples and save the time to perf file header via the
function write_sample_time().

Later, at post processing time, perf report/script will fetch
the time from perf file header.

So, at this point I was expecting that that record would be present on
the perf.data file:

[acme@jouet perf]$ perf record --timestamp-boundary sleep 1
Cannot read kernel map
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.001 MB perf.data (7 samples) ]
[acme@jouet perf]$ perf report -D | grep PERF_RECORD_SAMPLE | wc -l
7
[acme@jouet perf]$ perf report -D | grep PERF_RECORD_SAMPLE_TIME
[acme@jouet perf]$

What am I doing wrong?

To clarify, this is with just the first two patches in this series
applied.

- Arnaldo

Hi Arnaldo,

The timestamp boundary information is saved in perf file header.

Right, my bad, I somehow thought it would be as PERF_RECORD_SAMPLE_TIME,
duh.

Will continue reviewing, sorry about that.

- Arnaldo

Thanks for reviewing the patch.

If you see anything I should improve, please let me know.

Thanks
Jin Yao

So if we want to look at them, we need to add '--header' in perf report.

For example,

root@skl:/tmp# perf report -D --header | grep 'time of'
# time of first sample : 248333.706656
# time of last sample : 248357.215328

Thanks
Jin Yao