Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1093363ybl; Tue, 13 Aug 2019 07:17:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqy3QyUaHSki32VdtX7KFAKnp1XsE9f6aB2cUwxysfC0Bt1lXeANK07ZLlzb1lHDwt0DQuDz X-Received: by 2002:a63:1f1b:: with SMTP id f27mr34385935pgf.233.1565705824164; Tue, 13 Aug 2019 07:17:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565705824; cv=none; d=google.com; s=arc-20160816; b=jPQCOS4LXKI35hv3pBGvhnye3SH4i0VAH49Qh/2SMNLEQ96PXdcsmazbMkuDMrgSlU Ap5CIGfEfyUBfr7OC6fse1v96RbSfpdOHAuRWhJa8X25gJIFuPCKAWe9vSOeujAZAwE4 clL4yknFNVN+Eew2cMIN5TslFCgwmFmLn/a7i8YlxuN4WnxBBey+AAmO1iwkjnQxiAJY +OI1xeAbTkdU+qm8f/LB+3BpdPmNXd5QFGT3ZgMFr5+Un8r71vszv7p0bC7kLKMErPNB W8JGcfIYArQtmI+LyrVmrl7Dy40zYbEKHDOha64YVEF3lnzhx7j43bVojLACFQBJDU1q E+KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=k9dMEuFFZPHG7hSH4Ec7m772tqI6phHiE9aKBE4dJtg=; b=c1NubR+454jHYqlYEldv9sl2prk5Etyry+OPCB0Xl2XFmrsrY3/n+WQWE02Q+RpwhB 6NtBCX8QpWhWrodpqohHErzcn7YBUW/nI9bgf12zjnFxUDg6SOEPWF3H+Flt8cqxQw/k vPnBcfDjDGHy91uk1J6EGPVFGjvuUj/Pwz69dOyB96aU9taTvKvpFm539TpGyIhoU3FJ 5xHfdYYt0bKfFm2+2N7xZxFbferuaD5+15kwq5/4iN8aSCzkpnk7NHvC+Mdz7ZDOyeDq fK9+HvHuzB3jz7sft96z9RTGu/5w6bhU83GIX1yDeTuFMqMw1u41kj1TSofQgmgAKD2j t+ag== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w2si1025148pjn.29.2019.08.13.07.16.46; Tue, 13 Aug 2019 07:17:04 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729497AbfHMOO5 (ORCPT + 99 others); Tue, 13 Aug 2019 10:14:57 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60046 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727682AbfHMOO5 (ORCPT ); Tue, 13 Aug 2019 10:14:57 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 546BC30613CC; Tue, 13 Aug 2019 14:14:57 +0000 (UTC) Received: from sandy.ghostprotocols.net (ovpn-112-35.phx2.redhat.com [10.3.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 133A4804F8; Tue, 13 Aug 2019 14:14:55 +0000 (UTC) Received: by sandy.ghostprotocols.net (Postfix, from userid 1000) id 3F77112E; Tue, 13 Aug 2019 11:14:53 -0300 (BRT) Date: Tue, 13 Aug 2019 11:14:53 -0300 From: Arnaldo Carvalho de Melo To: Alexander Shishkin Cc: Peter Zijlstra , Ingo Molnar , linux-kernel@vger.kernel.org, kan.liang@linux.intel.com, Adrian Hunter Subject: Re: [PATCH v6 7/7] perf intel-pt: Add brief documentation for PEBS via Intel PT Message-ID: <20190813141453.GB3754@redhat.com> References: <20190806084606.4021-1-alexander.shishkin@linux.intel.com> <20190806084606.4021-8-alexander.shishkin@linux.intel.com> <20190813135149.GA3754@redhat.com> <87imr12m9x.fsf@ashishki-desk.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87imr12m9x.fsf@ashishki-desk.ger.corp.intel.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.20 (2009-12-10) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Tue, 13 Aug 2019 14:14:57 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Tue, Aug 13, 2019 at 05:05:46PM +0300, Alexander Shishkin escreveu: > Arnaldo Carvalho de Melo writes: > > > Em Tue, Aug 06, 2019 at 11:46:06AM +0300, Alexander Shishkin escreveu: > >> From: Adrian Hunter > >> > >> Document how to select PEBS via Intel PT and how to display synthesized > >> PEBS samples. > >> > >> Signed-off-by: Adrian Hunter > >> Signed-off-by: Alexander Shishkin > >> --- > >> tools/perf/Documentation/intel-pt.txt | 15 +++++++++++++++ > >> 1 file changed, 15 insertions(+) > >> > >> diff --git a/tools/perf/Documentation/intel-pt.txt b/tools/perf/Documentation/intel-pt.txt > >> index 50c5b60101bd..8dc513b6607b 100644 > >> --- a/tools/perf/Documentation/intel-pt.txt > >> +++ b/tools/perf/Documentation/intel-pt.txt > >> @@ -919,3 +919,18 @@ amended to take the number of elements as a parameter. > >> > >> Note there is currently no advantage to using Intel PT instead of LBR, but > >> that may change in the future if greater use is made of the data. > >> + > >> + > >> +PEBS via Intel PT > >> +================= > >> + > >> +Some hardware has the feature to redirect PEBS records to the Intel PT trace. > >> +Recording is selected by using the aux-output config term e.g. > >> + > >> + perf record -c 10000 -e cycles/aux-output/ppp -e intel_pt/branch=0/ uname > >> + > >> +Note that currently, software only supports redirecting at most one PEBS event. > > > > So, with these patches, but not the kernel ones I end up getting: > > > > [root@quaco ~]# perf record -c 10000 -e cycles/aux-output/ppp -e intel_pt/branch=0/ uname > > FWIW, the correct command line for that would have the two events > grouped and intel_pt be the group leader. I've just blindly followed the provided documentation :) So you say I should have tried this instead: # perf record -c 10000 -e '{intel_pt/branch=0/,cycles/aux-output/ppp}' uname Error: The 'aux_output' feature is not supported, update the kernel. # Or with leader sampling? # perf record -c 10000 -e '{intel_pt/branch=0/,cycles/aux-output/ppp}:S' uname Error: The 'aux_output' feature is not supported, update the kernel. # This is with the patch at the end of this message and without the kernel counterpart. - Arnaldo commit 58c5a9772d88f5dead1e561f6323f9f355625caa Author: Arnaldo Carvalho de Melo Date: Tue Aug 13 11:06:38 2019 -0300 perf evsel: Provide meaningful warning when trying to use 'aux_output' on older kernels Just like we do with the 'write_backwards' feature: Before: # perf record -c 10000 -e cycles/aux-output/ppp -e intel_pt/branch=0/ uname Error: The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (cycles/aux-output/ppp). /bin/dmesg | grep -i perf may provide additional information. # After: # perf record -c 10000 -e cycles/aux-output/ppp -e intel_pt/branch=0/ uname Error: The 'aux_output' feature is not supported, update the kernel. # Cc: Adrian Hunter Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: https://lkml.kernel.org/n/tip-wgjsjroe1e150c0metgwmqwd@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 6f08aea4f108..0b3b5af33954 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -1738,7 +1738,8 @@ int evsel__open(struct evsel *evsel, struct perf_cpu_map *cpus, int pid = -1, err; enum { NO_CHANGE, SET_TO_MAX, INCREASED_MAX } set_rlimit = NO_CHANGE; - if (perf_missing_features.write_backward && evsel->core.attr.write_backward) + if ((perf_missing_features.write_backward && evsel->core.attr.write_backward) || + (perf_missing_features.aux_output && evsel->core.attr.aux_output)) return -EINVAL; if (cpus == NULL) { @@ -1912,7 +1913,11 @@ int evsel__open(struct evsel *evsel, struct perf_cpu_map *cpus, * Must probe features in the order they were added to the * perf_event_attr interface. */ - if (!perf_missing_features.bpf_event && evsel->core.attr.bpf_event) { + if (!perf_missing_features.aux_output && evsel->core.attr.aux_output) { + perf_missing_features.aux_output = true; + pr_debug2("Kernel has no attr.aux_output support, bailing out\n"); + goto out_close; + } else if (!perf_missing_features.bpf_event && evsel->core.attr.bpf_event) { perf_missing_features.bpf_event = true; pr_debug2("switching off bpf_event\n"); goto fallback_missing_features; @@ -2926,6 +2931,8 @@ int perf_evsel__open_strerror(struct evsel *evsel, struct target *target, return scnprintf(msg, size, "clockid feature not supported."); if (perf_missing_features.clockid_wrong) return scnprintf(msg, size, "wrong clockid (%d).", clockid); + if (perf_missing_features.aux_output) + return scnprintf(msg, size, "The 'aux_output' feature is not supported, update the kernel."); break; default: break; diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h index 8a316dd54cd0..9cd6e3ae479a 100644 --- a/tools/perf/util/evsel.h +++ b/tools/perf/util/evsel.h @@ -184,6 +184,7 @@ struct perf_missing_features { bool group_read; bool ksymbol; bool bpf_event; + bool aux_output; }; extern struct perf_missing_features perf_missing_features;