X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Flttng-events.c;h=91a0810030047d59ea281a8dced6d91dc49f5aca;hb=d053f3eecd81fad0189e12f9f63a6095d421d5d8;hp=176c38326bc6f8bff15e96e2bf57f14bbcca4676;hpb=8ced8896fe832af52b749d429b8eceb872a83d1b;p=lttng-modules.git diff --git a/src/lttng-events.c b/src/lttng-events.c index 176c3832..91a08100 100644 --- a/src/lttng-events.c +++ b/src/lttng-events.c @@ -329,9 +329,6 @@ void lttng_event_notifier_group_destroy( mutex_lock(&sessions_mutex); - ret = lttng_syscalls_unregister_event_notifier(event_notifier_group); - WARN_ON(ret); - list_for_each_entry_safe(event_notifier, tmpevent_notifier, &event_notifier_group->event_notifiers_head, list) { ret = _lttng_event_notifier_unregister(event_notifier); @@ -615,13 +612,13 @@ int lttng_event_notifier_enable(struct lttng_event_notifier *event_notifier) } switch (event_notifier->instrumentation) { case LTTNG_KERNEL_TRACEPOINT: - case LTTNG_KERNEL_SYSCALL: ret = -EINVAL; break; case LTTNG_KERNEL_KPROBE: case LTTNG_KERNEL_UPROBE: WRITE_ONCE(event_notifier->enabled, 1); break; + case LTTNG_KERNEL_SYSCALL: case LTTNG_KERNEL_FUNCTION: case LTTNG_KERNEL_NOOP: case LTTNG_KERNEL_KRETPROBE: @@ -645,13 +642,13 @@ int lttng_event_notifier_disable(struct lttng_event_notifier *event_notifier) } switch (event_notifier->instrumentation) { case LTTNG_KERNEL_TRACEPOINT: - case LTTNG_KERNEL_SYSCALL: ret = -EINVAL; break; case LTTNG_KERNEL_KPROBE: case LTTNG_KERNEL_UPROBE: WRITE_ONCE(event_notifier->enabled, 0); break; + case LTTNG_KERNEL_SYSCALL: case LTTNG_KERNEL_FUNCTION: case LTTNG_KERNEL_NOOP: case LTTNG_KERNEL_KRETPROBE: @@ -1012,12 +1009,12 @@ struct lttng_event_notifier *_lttng_event_notifier_create( break; case LTTNG_KERNEL_KPROBE: case LTTNG_KERNEL_UPROBE: - case LTTNG_KERNEL_SYSCALL: event_name = event_notifier_param->event.name; break; case LTTNG_KERNEL_KRETPROBE: case LTTNG_KERNEL_FUNCTION: case LTTNG_KERNEL_NOOP: + case LTTNG_KERNEL_SYSCALL: default: WARN_ON_ONCE(1); ret = -EINVAL; @@ -1089,20 +1086,6 @@ struct lttng_event_notifier *_lttng_event_notifier_create( ret = try_module_get(event_notifier->desc->owner); WARN_ON_ONCE(!ret); break; - case LTTNG_KERNEL_NOOP: - case LTTNG_KERNEL_SYSCALL: - /* - * Needs to be explicitly enabled after creation, since - * we may want to apply filters. - */ - event_notifier->enabled = 0; - event_notifier->registered = 0; - event_notifier->desc = event_desc; - if (!event_notifier->desc) { - ret = -EINVAL; - goto register_error; - } - break; case LTTNG_KERNEL_UPROBE: /* * Needs to be explicitly enabled after creation, since @@ -1128,6 +1111,8 @@ struct lttng_event_notifier *_lttng_event_notifier_create( break; case LTTNG_KERNEL_KRETPROBE: case LTTNG_KERNEL_FUNCTION: + case LTTNG_KERNEL_NOOP: + case LTTNG_KERNEL_SYSCALL: default: WARN_ON_ONCE(1); ret = -EINVAL; @@ -1272,13 +1257,11 @@ void register_event_notifier(struct lttng_event_notifier *event_notifier) desc->event_notifier_callback, event_notifier); break; - case LTTNG_KERNEL_SYSCALL: - ret = lttng_syscall_filter_enable_event_notifier(event_notifier); - break; case LTTNG_KERNEL_KPROBE: case LTTNG_KERNEL_UPROBE: ret = 0; break; + case LTTNG_KERNEL_SYSCALL: case LTTNG_KERNEL_KRETPROBE: case LTTNG_KERNEL_FUNCTION: case LTTNG_KERNEL_NOOP: @@ -1314,11 +1297,9 @@ int _lttng_event_notifier_unregister( lttng_uprobes_unregister_event_notifier(event_notifier); ret = 0; break; - case LTTNG_KERNEL_SYSCALL: - ret = lttng_syscall_filter_disable_event_notifier(event_notifier); - break; case LTTNG_KERNEL_KRETPROBE: case LTTNG_KERNEL_FUNCTION: + case LTTNG_KERNEL_SYSCALL: case LTTNG_KERNEL_NOOP: default: WARN_ON_ONCE(1); @@ -1376,15 +1357,14 @@ void _lttng_event_notifier_destroy(struct lttng_event_notifier *event_notifier) module_put(event_notifier->desc->owner); lttng_kprobes_destroy_event_notifier_private(event_notifier); break; - case LTTNG_KERNEL_NOOP: - case LTTNG_KERNEL_SYSCALL: - break; case LTTNG_KERNEL_UPROBE: module_put(event_notifier->desc->owner); lttng_uprobes_destroy_event_notifier_private(event_notifier); break; case LTTNG_KERNEL_KRETPROBE: case LTTNG_KERNEL_FUNCTION: + case LTTNG_KERNEL_NOOP: + case LTTNG_KERNEL_SYSCALL: default: WARN_ON_ONCE(1); } @@ -1667,6 +1647,7 @@ int lttng_match_enabler_name(const char *desc_name, return 1; } +static int lttng_desc_match_enabler(const struct lttng_event_desc *desc, struct lttng_enabler *enabler) { @@ -1732,7 +1713,7 @@ int lttng_desc_match_enabler(const struct lttng_event_desc *desc, return -EINVAL; } switch (enabler->event_param.u.syscall.match) { - case LTTNG_SYSCALL_MATCH_NAME: + case LTTNG_KERNEL_SYSCALL_MATCH_NAME: switch (enabler->format_type) { case LTTNG_ENABLER_FORMAT_STAR_GLOB: return lttng_match_enabler_star_glob(desc_name, enabler_name); @@ -1742,7 +1723,7 @@ int lttng_desc_match_enabler(const struct lttng_event_desc *desc, return -EINVAL; } break; - case LTTNG_SYSCALL_MATCH_NR: + case LTTNG_KERNEL_SYSCALL_MATCH_NR: return -EINVAL; /* Not implemented. */ default: return -EINVAL; @@ -1920,17 +1901,6 @@ void lttng_create_syscall_event_if_missing(struct lttng_event_enabler *event_ena WARN_ON_ONCE(ret); } -static -void lttng_create_syscall_event_notifier_if_missing(struct lttng_event_notifier_enabler *event_notifier_enabler) -{ - int ret; - - ret = lttng_syscalls_register_event_notifier(event_notifier_enabler, NULL); - WARN_ON_ONCE(ret); - ret = lttng_syscals_create_matching_event_notifiers(event_notifier_enabler, NULL); - WARN_ON_ONCE(ret); -} - /* * Create struct lttng_event if it is missing and present in the list of * tracepoint probes. @@ -1968,7 +1938,7 @@ int lttng_event_enabler_ref_events(struct lttng_event_enabler *event_enabler) if (base_enabler->event_param.instrumentation == LTTNG_KERNEL_SYSCALL && base_enabler->event_param.u.syscall.entryexit == LTTNG_KERNEL_SYSCALL_ENTRYEXIT && base_enabler->event_param.u.syscall.abi == LTTNG_KERNEL_SYSCALL_ABI_ALL && - base_enabler->event_param.u.syscall.match == LTTNG_SYSCALL_MATCH_NAME && + base_enabler->event_param.u.syscall.match == LTTNG_KERNEL_SYSCALL_MATCH_NAME && !strcmp(base_enabler->event_param.name, "*")) { if (base_enabler->enabled) WRITE_ONCE(chan->syscall_all, 1); @@ -2025,9 +1995,6 @@ void lttng_create_event_notifier_if_missing(struct lttng_event_notifier_enabler case LTTNG_KERNEL_TRACEPOINT: lttng_create_tracepoint_event_notifier_if_missing(event_notifier_enabler); break; - case LTTNG_KERNEL_SYSCALL: - lttng_create_syscall_event_notifier_if_missing(event_notifier_enabler); - break; default: WARN_ON_ONCE(1); break;