public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Jin, Yao" <yao.jin@linux.intel.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: acme@kernel.org, jolsa@kernel.org, peterz@infradead.org,
	mingo@redhat.com, alexander.shishkin@linux.intel.com,
	Linux-kernel@vger.kernel.org, ak@linux.intel.com,
	kan.liang@intel.com, yao.jin@intel.com
Subject: Re: [PATCH v5 2/6] perf record: Get the first sample time and last sample time
Date: Tue, 24 Oct 2017 10:03:05 +0800	[thread overview]
Message-ID: <818cd5bf-fd40-444e-4f4d-c9e25cf90b51@linux.intel.com> (raw)
In-Reply-To: <20171023150436.GA10746@krava>



On 10/23/2017 11:04 PM, Jiri Olsa wrote:
> On Sat, Oct 21, 2017 at 07:27:50AM +0800, Jin Yao wrote:
>> In perf record, it's walked on all samples yet. 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().
>>
>> In later, perf report/script will fetch the time from perf file header.
>>
>> Change log:
>> -----------
>> v5: There is an issue that the sample walking can only work when
>>      '--buildid-all' is not enabled. So we need to let the walking
>>      be able to work even if '--buildid-all' is enabled and let the
>>      processing skips the dso hit marking for this case.
>>
>>      At first, I want to provide a new option "--record-time-boundaries".
>>      While after consideration, I think a new option is not very
>>      necessary.
>>
>> v3: Remove the definitions of first_sample_time and last_sample_time
>>      from struct record and directly save them in perf_evlist.
>>
>> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
>> ---
>>   tools/perf/builtin-record.c | 20 ++++++++++++--------
>>   1 file changed, 12 insertions(+), 8 deletions(-)
>>
>> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
>> index a6cbf16..bd711e8 100644
>> --- a/tools/perf/builtin-record.c
>> +++ b/tools/perf/builtin-record.c
>> @@ -391,8 +391,19 @@ static int process_sample_event(struct perf_tool *tool,
>>   {
>>   	struct record *rec = container_of(tool, struct record, tool);
>>   
>> -	rec->samples++;
>> +	if (rec->evlist->first_sample_time == 0)
>> +		rec->evlist->first_sample_time = sample->time;
>> +
>> +	rec->evlist->last_sample_time = sample->time;
>> +
>> +	/*
>> +	 * If --buildid-all is given, it marks all DSO regardless of hits,
>> +	 * so no need to process this sample.
>> +	 */
>> +	if (rec->buildid_all)
>> +		return 0;
>>   
>> +	rec->samples++;
>>   	return build_id__mark_dso_hit(tool, event, sample, evsel, machine);
>>   }
>>   
>> @@ -415,13 +426,6 @@ static int process_buildids(struct record *rec)
>>   	 */
>>   	symbol_conf.ignore_vmlinux_buildid = true;
>>   
>> -	/*
>> -	 * If --buildid-all is given, it marks all DSO regardless of hits,
>> -	 * so no need to process samples.
>> -	 */
>> -	if (rec->buildid_all)
>> -		rec->tool.sample = NULL;
> 
> hum, could you still unset the sample if there's no time given?
> and keep the speed in this case..
> 
> jirka
> 

Hi Jiri,

I check this question again. The '--time' option is for perf report but 
not for perf record.

For perf record, we have to always walk on all samples to get the time 
of first sample and the time of last sample whatever buildid_all is 
enabled or not enabled. So 'rec->tool.sample = NULL' is removed.

Sorry, the previous mail was replied at midnight, I was drowsy. :(

If my answer is correct, I will not send v6. If my understanding is 
still not correct, please let me know.

Thanks
Jin Yao

  parent reply	other threads:[~2017-10-24  2:03 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-20 23:27 [PATCH v5 0/6] perf report/script: Support percent and multiple range in --time option Jin Yao
2017-10-20 23:27 ` [PATCH v5 1/6] perf header: Record first sample time and last sample time in perf file header Jin Yao
2017-10-20 23:27 ` [PATCH v5 2/6] perf record: Get the first sample time and last sample time Jin Yao
2017-10-23 15:04   ` Jiri Olsa
2017-10-23 17:38     ` Jin, Yao
2017-10-23 19:05       ` Arnaldo Carvalho de Melo
2017-10-24  2:03     ` Jin, Yao [this message]
2017-10-24  7:16       ` Jiri Olsa
2017-10-24  7:29         ` Jin, Yao
2017-11-03 13:00         ` Jin, Yao
2017-11-03 16:29         ` Arnaldo Carvalho de Melo
2017-11-03 21:33           ` Jin, Yao
2017-11-04 10:24           ` Jiri Olsa
2017-11-06  0:28             ` Jin, Yao
2017-10-20 23:27 ` [PATCH v5 3/6] perf util: Create function to parse time percent Jin Yao
2017-10-20 23:27 ` [PATCH v5 4/6] perf util: Create function to perform multiple time range checking Jin Yao
2017-10-20 23:27 ` [PATCH v5 5/6] perf report: support time percent and multiple time ranges Jin Yao
2017-10-20 23:27 ` [PATCH v5 6/6] perf script: " Jin Yao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=818cd5bf-fd40-444e-4f4d-c9e25cf90b51@linux.intel.com \
    --to=yao.jin@linux.intel.com \
    --cc=Linux-kernel@vger.kernel.org \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=jolsa@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=kan.liang@intel.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=yao.jin@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox