From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jack Henschel Subject: Re: Filter option should follow a tracer option Date: Wed, 23 Aug 2017 10:51:15 +0200 (CEST) Message-ID: <98754540.17249.1503478275998@office.mailbox.org> References: <2141818167.39420.1503049431846@office.mailbox.org> <20170822190011.GA31893@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Return-path: Received: from mx1.mailbox.org ([80.241.60.212]:36957 "EHLO mx1.mailbox.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753786AbdHWJ5v (ORCPT ); Wed, 23 Aug 2017 05:57:51 -0400 In-Reply-To: Sender: linux-perf-users-owner@vger.kernel.org List-ID: To: Adrian Hunter Cc: linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo > Adrian Hunter hat am 23. August 2017 um 08:06 geschrieben: > > > On 22/08/17 22:00, Arnaldo Carvalho de Melo wrote: > > Em Fri, Aug 18, 2017 at 11:43:51AM +0200, Jack Henschel escreveu: > >> Hi everyone, > >> > >> I'm experimenting with Intel PT and perf, but I am currently stuck at getting filters to work with `perf record`. > >> > >> I have the following command: > >>> perf record -e intel_pt// --filter 'filter main @ /bin/sleep' /bin/sleep 1 > >> But it throws this error message: > >>> --filter option should follow a -e tracepoint or HW tracer option > >> > >> Maybe this is a trivial mistake, but I don't understand the error, because as far as I'm concerned the --filter options *is* following a -e HW tracer option. > >> > >> I'm using perf version 4.9.30 with kernel 4.9.30-2+deb9u3 on Debian 9 Stretch. > > It looks like either your CPU does not support Intel PT at all, or it does not support address filtering. My CPU (Xeon CPU E5-2680 v4) supports Intel PT (intel_pt flag is present in /proc/cpuinfo), but this is not an issue with Intel PT. Here are some more examples (with various syntaxes): > $ perf list | grep -E 'intel_pt|branch-loads|cache-misses' > cache-misses [Hardware event] > branch-loads [Hardware cache event] > cache-misses OR cpu/cache-misses/ [Kernel PMU event] > intel_pt// [Kernel PMU event] > $ perf record --event intel_pt// --exclude-perf -a > --exclude-perf option should follow a -e tracepoint option > $ perf record --event=branch-loads --filter 'filter main @ /bin/sleep' -- /bin/sleep 1 > --filter option should follow a -e tracepoint or HW tracer option > $ perf record -e cache-misses --filter 'filter main @ /bin/sleep' -- /bin/sleep 1 > --filter option should follow a -e tracepoint or HW tracer option > Have you checked the value of /sys/bus/event_source/devices/intel_pt/nr_addr_filters ? I don't have that file: > $ ls -l /sys/bus/event_source/devices/intel_pt/ > total 0 > drwxr-xr-x 2 root root 0 Aug 22 06:32 caps > drwxr-xr-x 2 root root 0 Aug 22 06:32 format > -r--r--r-- 1 root root 4096 Aug 23 04:47 max_nonturbo_ratio > -rw-r--r-- 1 root root 4096 Aug 23 04:47 perf_event_mux_interval_ms > drwxr-xr-x 2 root root 0 Aug 23 04:47 power > lrwxrwxrwx 1 root root 0 Aug 22 06:30 subsystem -> ../../bus/event_source > -r--r--r-- 1 root root 4096 Aug 23 04:47 tsc_art_ratio > -r--r--r-- 1 root root 4096 Aug 22 06:32 type > -rw-r--r-- 1 root root 4096 Aug 22 06:30 uevent The above commands were ran on linux kernel 4.13-rc6 along with perf 4.13 (both compiled from git): > $ uname -r > 4.13.0-rc6+ > $ perf version > perf version 4.13.rc6.g647081 Greetings Jack