From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757509AbbI1OMW (ORCPT ); Mon, 28 Sep 2015 10:12:22 -0400 Received: from mail.kernel.org ([198.145.29.136]:60292 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757487AbbI1OMU (ORCPT ); Mon, 28 Sep 2015 10:12:20 -0400 Date: Mon, 28 Sep 2015 11:12:16 -0300 From: Arnaldo Carvalho de Melo To: Adrian Hunter Cc: Jiri Olsa , linux-kernel@vger.kernel.org Subject: Re: [PATCH 01/25] perf auxtrace: Fix 'instructions' period of zero Message-ID: <20150928141216.GE6022@kernel.org> References: <1443186956-18718-1-git-send-email-adrian.hunter@intel.com> <1443186956-18718-2-git-send-email-adrian.hunter@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1443186956-18718-2-git-send-email-adrian.hunter@intel.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Fri, Sep 25, 2015 at 04:15:32PM +0300, Adrian Hunter escreveu: > Instruction tracing options (i.e. --itrace) include an option for > sampling instructions at an arbitrary period. e.g. > > --itrace=i10us > > means make an 'instructions' sample for every 10us of trace. > > Currently the logic does not distinguish between a period of > zero and no period being specified at all, so it gets treated > as the default period which is 100000. That doesn't really > make sense. > > Fix it so that zero period is accepted and treated as meaning > "as often as possible". Don't we have to update the documentation for this? > In the case of Intel PT that is the same as a period of 1 and > a unit of 'instructions' (i.e. --itrace=i1i). > > Signed-off-by: Adrian Hunter > --- > tools/perf/util/auxtrace.c | 4 +++- > tools/perf/util/intel-pt.c | 2 +- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c > index a980e7c50ee0..c4993b2e6c50 100644 > --- a/tools/perf/util/auxtrace.c > +++ b/tools/perf/util/auxtrace.c > @@ -950,6 +950,7 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str, > const char *p; > char *endptr; > bool period_type_set = false; > + bool period_set = false; > > synth_opts->set = true; > > @@ -971,6 +972,7 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str, > p += 1; > if (isdigit(*p)) { > synth_opts->period = strtoull(p, &endptr, 10); > + period_set = true; > p = endptr; > while (*p == ' ' || *p == ',') > p += 1; > @@ -1053,7 +1055,7 @@ out: > if (!period_type_set) > synth_opts->period_type = > PERF_ITRACE_DEFAULT_PERIOD_TYPE; > - if (!synth_opts->period) > + if (!period_set) > synth_opts->period = PERF_ITRACE_DEFAULT_PERIOD; > } > > diff --git a/tools/perf/util/intel-pt.c b/tools/perf/util/intel-pt.c > index 38942e1eac8f..c8bb5ca6a157 100644 > --- a/tools/perf/util/intel-pt.c > +++ b/tools/perf/util/intel-pt.c > @@ -720,7 +720,7 @@ static struct intel_pt_queue *intel_pt_alloc_queue(struct intel_pt *pt, > > if (!params.period) { > params.period_type = INTEL_PT_PERIOD_INSTRUCTIONS; > - params.period = 1000; > + params.period = 1; > } > } > > -- > 1.9.1