From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751902AbdLNAsM (ORCPT ); Wed, 13 Dec 2017 19:48:12 -0500 Received: from mga09.intel.com ([134.134.136.24]:57399 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750749AbdLNAsL (ORCPT ); Wed, 13 Dec 2017 19:48:11 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,399,1508828400"; d="scan'208";a="2350848" Subject: Re: [PATCH v7 0/6] perf report/script: Support percent and multiple range in --time option To: Arnaldo Carvalho de Melo Cc: 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 References: <1512738826-2628-1-git-send-email-yao.jin@linux.intel.com> <20171213142819.GA9490@kernel.org> From: "Jin, Yao" Message-ID: <6b9018c0-94ba-93e3-6aaa-64000c1b4962@linux.intel.com> Date: Thu, 14 Dec 2017 08:48:08 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171213142819.GA9490@kernel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/13/2017 10:28 PM, Arnaldo Carvalho de Melo wrote: > Em Fri, Dec 08, 2017 at 09:13:40PM +0800, Jin Yao escreveu: >> v7: >> --- >> v7 doesn't have functional change. The update is only: > > Thanks for working on this, will try and get this processed in my next > round. > > - Arnaldo > Thanks in advance Thanks Jin Yao >> 1. Rebase to latest perf/core branch >> >> 2. Update patch description according to Arnaldo's comments. >> >> Impacted patch: >> --------------- >> perf header: Record first sample time and last sample time in perf file header >> perf record: Get the first sample time and last sample time >> >> v6: >> --- >> 1. Create a new option "--timestamp-boundary" in perf record. >> >> Currently '--buildid-all' is not enabled by default. So the walking >> on all samples is the default operation. There is no big overhead >> to calculate the timestamp boundary in process_sample_event handler >> once we already go through all samples. So the timestamp boundary >> calculation is enabled by default when '--buildid-all' is not enabled. >> >> While if '--buildid-all' is enabled, we creates a new option >> "--timestamp-boundary" for user to decide if it enables the >> timestamp boundary calculation. >> >> Impacted patch: >> --------------- >> perf record: Get the first sample time and last sample time >> >> 2. Fix the merge issue with the latest perf/core branch. >> No functional changes. >> >> Impacted patch: >> --------------- >> perf report: support time percent and multiple time ranges >> perf script: support time percent and multiple time ranges >> >> v5: >> --- >> 1. 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. >> >> 2. Check if first/last sample time is recorded in perf data file. >> If it's not recorded, return error message to user. >> >> Patched modified in v5: >> perf record: Get the first sample time and last sample time >> perf report: support time percent and multiple time ranges >> perf script: support time percent and multiple time ranges >> >> v4: >> --- >> 1. Use perf script time style for timestamp printing. Also add with >> the printing of sample duration. For example: >> >> perf report --header >> >> time of first sample : 5276531.323099 >> time of last sample : 5276555.345625 >> sample duration : 24022.526 ms >> >> 2. Fix an invalid time string issue. For example, >> >> perf script --time 10%/10x12321xsdfdasfdsafdsafdsa >> >> Now in code, it uses strtol to replace atoi. >> >> 3. Remove perf_time__skip_sample, only uses perf_time__ranges_skip_sample >> in perf report/perf script. >> >> v3: >> --- >> 1. Move the definitions of first_sample_time/last_sample_time from >> perf_session and struct record to perf_evlist and update the >> related code. >> >> v2: >> --- >> 1. This patch creates a new header feature type HEADER_SAMPLE_TIME and related >> ops. Save the first sample time and the last sample time to the feature >> section in perf file header. >> >> 2. Add checking for last element in time range. >> >> For example, select the first and second 10% time slices. >> perf report --time 10%/1,10%/2 >> >> Note that now it includes the last element in [10%, 20%] but it >> doesn't include the last element in [0, 10%). It's to avoid >> the overlap. >> >> Following patches are changed: >> >> perf header: Record first sample time and last sample time in perf file header >> perf record: Get the first sample time and last sample time >> perf util: Create function to perform multiple time range checking >> >> v1: initial post >> ---------------- >> >> Current perf report/script/... have a --time option to limit the time >> range of output. But it only supports the absolute time. >> >> The patch series extend this option to let it support percent of time >> and support the multiple time ranges. >> >> For example: >> >> 1. Select the second 10% time slice >> perf report --time 10%/2 >> >> 2. Select from 0% to 10% time slice >> perf report --time 0%-10% >> >> It also support the multiple time ranges. >> >> 3. Select the first and second 10% time slices >> perf report --time 10%/1,10%/2 >> >> 4. Select from 0% to 10% and 30% to 40% slices >> perf report --time 0%-10%,30%-40% >> >> Jin Yao (6): >> perf header: Record first sample time and last sample time in perf >> file header >> perf record: Get the first sample time and last sample time >> perf util: Create function to parse time percent >> perf util: Create function to perform multiple time range checking >> perf report: support time percent and multiple time ranges >> perf script: support time percent and multiple time ranges >> >> tools/perf/Documentation/perf-record.txt | 3 + >> tools/perf/Documentation/perf-report.txt | 16 ++ >> tools/perf/Documentation/perf-script.txt | 16 ++ >> tools/perf/Documentation/perf.data-file-format.txt | 4 + >> tools/perf/builtin-record.c | 18 +- >> tools/perf/builtin-report.c | 31 ++- >> tools/perf/builtin-script.c | 34 ++- >> tools/perf/util/evlist.h | 2 + >> tools/perf/util/header.c | 60 ++++++ >> tools/perf/util/header.h | 1 + >> tools/perf/util/time-utils.c | 233 +++++++++++++++++++-- >> tools/perf/util/time-utils.h | 6 + >> 12 files changed, 398 insertions(+), 26 deletions(-) >> >> -- >> 2.7.4