X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Fust-tracepoint-event.h;h=3cecec9b06bb021bd1f5e14ae3130d4bc43f9095;hb=f488575f3420027d33050e779e1e3916e3b91c8c;hp=74d06e19ad182fc5b8b863543116581f6ae12240;hpb=59034aabb2f237e81a92d772e2d56e52eb14f1af;p=lttng-ust.git diff --git a/include/lttng/ust-tracepoint-event.h b/include/lttng/ust-tracepoint-event.h index 74d06e19..3cecec9b 100644 --- a/include/lttng/ust-tracepoint-event.h +++ b/include/lttng/ust-tracepoint-event.h @@ -14,6 +14,7 @@ #include #include +#include #include #include #include @@ -485,11 +486,16 @@ void __event_probe__##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args)) \ return; \ if (caa_unlikely(!CMM_ACCESS_ONCE(__event->enabled))) \ return; \ - if (caa_unlikely(__event->filter)) { \ + if (caa_unlikely(!cds_list_empty(&__event->bytecode_runtime))) { \ + struct lttng_bytecode_runtime *bc_runtime; \ + \ __event_prepare_filter_stack__##_provider##___##_name(__stackvar.__filter_stack_data, \ - _TP_ARGS_DATA_VAR(_args)); \ - if (caa_likely(!__event->filter(__event->filter_data, __stackvar.__filter_stack_data))) \ - return; \ + _TP_ARGS_DATA_VAR(_args)); \ + cds_list_for_each_entry_rcu(bc_runtime, &__event->bytecode_runtime, node) { \ + if (caa_likely(!bc_runtime->filter(bc_runtime, \ + __stackvar.__filter_stack_data))) \ + return; \ + } \ } \ __event_len = __event_get_size__##_provider##___##_name(__stackvar.__dynamic_len, \ _TP_ARGS_DATA_VAR(_args)); \