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.056 / U:0.208 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site