lkml.org 
[lkml]   [2011]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCHv2 10/10] tracing/filter: Add startup tests for events filter
    From
    Date
    On Thu, 2011-08-04 at 13:22 +0200, Jiri Olsa wrote:
    > oops,
    > I sent wrong version with small leak, proper one attached..
    >
    > thanks,
    > jirka
    >
    >
    > ---
    > Adding automated tests running as late_initcall. Tests are
    > compiled in with CONFIG_FTRACE_STARTUP_TEST option.
    >
    > Adding test event "ftrace_test_filter" used to simulate
    > filter processing during event occurance.
    >
    > String filters are compiled and tested against several
    > test events with different values.
    >
    > Also testing that evaluation of explicit predicates is ommited
    > due to the lazy filter evaluation.
    >
    > Signed-off-by: Jiri Olsa <jolsa@redhat.com>
    > ---
    > include/trace/events/test.h | 45 ++++++++
    > kernel/trace/trace.h | 3 +
    > kernel/trace/trace_events_filter.c | 209 ++++++++++++++++++++++++++++++++++++
    > 3 files changed, 257 insertions(+), 0 deletions(-)
    > create mode 100644 include/trace/events/test.h
    >
    > diff --git a/include/trace/events/test.h b/include/trace/events/test.h
    > new file mode 100644
    > index 0000000..81c5484
    > --- /dev/null
    > +++ b/include/trace/events/test.h

    Hmm, I'd like to keep this out of the include/trace/events directory.
    Could you put this directly into the kernel/trace/ directory, using the
    Makefile tricks in samples/trace_events/Makefile and the
    TRACE_INCLUDE_PATH as seen in samples/trace_events/trace-events-sample.h

    -- Steve


    > @@ -0,0 +1,45 @@
    > +#undef TRACE_SYSTEM
    > +#define TRACE_SYSTEM test
    > +
    > +#if !defined(_TRACE_TEST_H) || defined(TRACE_HEADER_MULTI_READ)
    > +#define _TRACE_TEST_H
    > +
    > +#include <linux/tracepoint.h>
    > +
    > +TRACE_EVENT(ftrace_test_filter,
    > +
    > + TP_PROTO(int a, int b, int c, int d, int e, int f, int g, int h),
    > +
    > + TP_ARGS(a, b, c, d, e, f, g, h),
    > +
    > + TP_STRUCT__entry(
    > + __field(int, a)
    > + __field(int, b)
    > + __field(int, c)
    > + __field(int, d)
    > + __field(int, e)
    > + __field(int, f)
    > + __field(int, g)
    > + __field(int, h)
    > + ),
    > +
    > + TP_fast_assign(
    > + __entry->a = a;
    > + __entry->b = b;
    > + __entry->c = c;
    > + __entry->d = d;
    > + __entry->e = e;
    > + __entry->f = f;
    > + __entry->g = g;
    > + __entry->h = h;
    > + ),
    > +
    > + TP_printk("a %d, b %d, c %d, d %d, e %d, f %d, g %d, h %d",
    > + __entry->a, __entry->b, __entry->c, __entry->d,
    > + __entry->e, __entry->f, __entry->g, __entry->h)
    > +);
    > +




    \
     
     \ /
      Last update: 2011-08-10 23:27    [W:0.025 / U:96.472 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site