From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753882AbbJZMj7 (ORCPT ); Mon, 26 Oct 2015 08:39:59 -0400 Received: from szxga03-in.huawei.com ([119.145.14.66]:39451 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753636AbbJZMj5 (ORCPT ); Mon, 26 Oct 2015 08:39:57 -0400 Message-ID: <562E1EEB.2030703@huawei.com> Date: Mon, 26 Oct 2015 20:39:07 +0800 From: "Wangnan (F)" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Adrian Hunter , , CC: , , , Arnaldo Carvalho de Melo , Peter Zijlstra Subject: Re: [RFC PATCH v2 1/2] perf tools: Set evsel->system_wide field for global system wide recording References: <1445859720-146146-1-git-send-email-wangnan0@huawei.com> <1445859720-146146-2-git-send-email-wangnan0@huawei.com> <562E1B6F.2020202@intel.com> In-Reply-To: <562E1B6F.2020202@intel.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.111.66.109] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020205.562E1EFB.01CB,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: cb9e5d86777223199b99a31993b53a90 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2015/10/26 20:24, Adrian Hunter wrote: > On 26/10/15 13:41, Wang Nan wrote: >> evsel->system_wide is introduced by commit bf8e8f4b832972c76d64ab2e2837 >> (perf evlist: Add 'system_wide' option), which is used for mixing evsels >> that aren't system-wide with ones that are [1]. However, for global >> system wide recording (perf record -a ...), evsel->system_wide is set >> to false, which is confusion. >> >> This patch set evsel->system_wide to true if the target.system_wide is >> set, which makes evsel->system_wide a reliable way to describe whether >> itself is system_wide or not. >> >> [1] http://lkml.kernel.org/r/562DF19B.2080608@intel.com >> >> Signed-off-by: Wang Nan >> Cc: Adrian Hunter >> Cc: Arnaldo Carvalho de Melo >> Cc: Alexei Starovoitov >> Cc: Peter Zijlstra >> Cc: Li Zefan >> Cc: pi3orama@163.com >> Link: http://lkml.kernel.org/n/ebpf-qm3gtwidc1o5ktjd9tgjex25@git.kernel.org >> --- >> tools/perf/util/evsel.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c >> index 3ac4ee9c..36ecf0e 100644 >> --- a/tools/perf/util/evsel.c >> +++ b/tools/perf/util/evsel.c >> @@ -734,6 +734,7 @@ void perf_evsel__config(struct perf_evsel *evsel, struct record_opts *opts) >> int track = evsel->tracking; >> bool per_cpu = opts->target.default_per_cpu && !opts->target.per_thread; >> >> + evsel->system_wide = opts->target.system_wide; > Well that breaks the way evsel->system_wide is used i.e. it is a parameter > to the evsel and here you just overwrote it. Currently the only user of evsel->system_wide is IPT: auxtrace_record__options -> intel_pt_recording_options and it only set it to true. So I think changing to this should make it safe: evsel->system_wide = (evsel->system_wide || opt->target.system_wide); Thought? If we want to add further config terms we can put it to apply_config_terms(), where we can implement something like: # perf record -e cycles/system-wide/ -e instruction/no-system-wide/ ... But currently I don't have such requirement. Thank you.