lkml.org 
[lkml]   [2016]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/5] ftrace perf: Check sample types only for sampling events
    Hi Jiri,

    On Wed, Mar 09, 2016 at 09:46:41PM +0100, Jiri Olsa wrote:
    > Currently we check sample type for ftrace:function event
    > even if it's not created as sampling event. That prevents
    > creating ftrace_function event in counting mode.
    >
    > Making sure we check sample types only for sampling events.
    >
    > Before:
    > $ sudo perf stat -e ftrace:function ls
    > ...
    >
    > Performance counter stats for 'ls':
    >
    > <not supported> ftrace:function
    >
    > 0.001983662 seconds time elapsed
    >
    > After:
    > $ sudo perf stat -e ftrace:function ls
    > ...
    >
    > Performance counter stats for 'ls':
    >
    > 44,498 ftrace:function
    >
    > 0.037534722 seconds time elapsed
    >
    > Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    > ---
    > kernel/trace/trace_event_perf.c | 4 ++--
    > 1 file changed, 2 insertions(+), 2 deletions(-)
    >
    > diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c
    > index 00df25fd86ef..a7171ec2c1ca 100644
    > --- a/kernel/trace/trace_event_perf.c
    > +++ b/kernel/trace/trace_event_perf.c
    > @@ -52,14 +52,14 @@ static int perf_trace_event_perm(struct trace_event_call *tp_event,
    > * event, due to issues with page faults while tracing page
    > * fault handler and its overall trickiness nature.
    > */
    > - if (!p_event->attr.exclude_callchain_user)
    > + if (is_sampling_event(p_event) && !p_event->attr.exclude_callchain_user)
    > return -EINVAL;
    >
    > /*
    > * Same reason to disable user stack dump as for user space
    > * callchains above.
    > */
    > - if (p_event->attr.sample_type & PERF_SAMPLE_STACK_USER)
    > + if (is_sampling_event(p_event) && p_event->attr.sample_type & PERF_SAMPLE_STACK_USER)
    > return -EINVAL;
    > }
    >

    What about checking is_sampling_event() first and goto the last
    paranoid_tracepoint_raw check instead? This way we can remove the
    same check in the function trace case.

    Thanks,
    Namhyung

    \
     
     \ /
      Last update: 2016-03-10 02:01    [W:2.604 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site