From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753543AbdLMO2b (ORCPT ); Wed, 13 Dec 2017 09:28:31 -0500 Received: from mail.kernel.org ([198.145.29.99]:39322 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753489AbdLMO2Y (ORCPT ); Wed, 13 Dec 2017 09:28:24 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DAC41218AF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=acme@kernel.org Date: Wed, 13 Dec 2017 11:28:19 -0300 From: Arnaldo Carvalho de Melo To: Jin Yao 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 Subject: Re: [PATCH v7 0/6] perf report/script: Support percent and multiple range in --time option Message-ID: <20171213142819.GA9490@kernel.org> References: <1512738826-2628-1-git-send-email-yao.jin@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1512738826-2628-1-git-send-email-yao.jin@linux.intel.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > 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