[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160318102844.4b59686a@gandalf.local.home>
Date: Fri, 18 Mar 2016 10:28:44 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Jiri Olsa <jolsa@...nel.org>
Cc: lkml <linux-kernel@...r.kernel.org>,
Ingo Molnar <mingo@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Arnaldo Carvalho de Melo <acme@...nel.org>
Subject: Re: [PATCH 3/5] ftrace perf: Use ftrace_ops::private to store event
pointer
On Wed, 16 Mar 2016 15:34:31 +0100
Jiri Olsa <jolsa@...nel.org> wrote:
> Having following commands running concurrently:
>
> # perf record -e ftrace:function -a -o krava.data sleep 10
> # perf record -e ftrace:function --filter 'ip == SyS_read' ls
>
> will end up in the latter one to fail on the filter rules
> and store all functions (in perf.data) as instructed by the
> first perf record instead of just SyS_read records.
>
> The reason for this is, that tracepoint code by default
> triggers all events that registered for the tracepoint.
>
> While ftrace:function is special because ftrace_ops
> itself carries a filter and only the event that owns
> ftrace_ops is eligible to be triggered.
>
> Fixing this by using ftrace_ops::private value to keep
> the perf_event pointer. This way we don't need to search
> for triggered event (as tracepoint handler does) and
> directly store sample.
>
> Acked-by: Namhyung Kim <namhyung@...nel.org>
> Suggested-by: Steven Rostedt <rostedt@...dmis.org>
> Signed-off-by: Jiri Olsa <jolsa@...nel.org>
Acked-by: Steven Rostedt <rostedt@...dmis.org>
-- Steve
Powered by blists - more mailing lists