X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrace-ust.c;h=486b53d30c117b1be901b2d1ce7b134ca310cd5b;hp=8d63e2525192ad3ef2f473c99f9245b955f86eb0;hb=4fc59cb88dd740e9b0d48c533393580229ceef66;hpb=88e3c2f5610b9ac89b0923d448fee34140fc46fb diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c index 8d63e2525..486b53d30 100644 --- a/src/bin/lttng-sessiond/trace-ust.c +++ b/src/bin/lttng-sessiond/trace-ust.c @@ -25,6 +25,7 @@ #include #include +#include #include "buffer-registry.h" #include "trace-ust.h" @@ -170,7 +171,7 @@ no_match: * lock MUST be acquired before calling this. */ struct ltt_ust_channel *trace_ust_find_channel_by_name(struct lttng_ht *ht, - char *name) + const char *name) { struct lttng_ht_node_str *node; struct lttng_ht_iter iter; @@ -563,6 +564,45 @@ int trace_ust_context_type_event_to_ust( case LTTNG_EVENT_CONTEXT_APP_CONTEXT: utype = LTTNG_UST_CONTEXT_APP_CONTEXT; break; + case LTTNG_EVENT_CONTEXT_CGROUP_NS: + utype = LTTNG_UST_CONTEXT_CGROUP_NS; + break; + case LTTNG_EVENT_CONTEXT_IPC_NS: + utype = LTTNG_UST_CONTEXT_IPC_NS; + break; + case LTTNG_EVENT_CONTEXT_MNT_NS: + utype = LTTNG_UST_CONTEXT_MNT_NS; + break; + case LTTNG_EVENT_CONTEXT_NET_NS: + utype = LTTNG_UST_CONTEXT_NET_NS; + break; + case LTTNG_EVENT_CONTEXT_PID_NS: + utype = LTTNG_UST_CONTEXT_PID_NS; + break; + case LTTNG_EVENT_CONTEXT_USER_NS: + utype = LTTNG_UST_CONTEXT_USER_NS; + break; + case LTTNG_EVENT_CONTEXT_UTS_NS: + utype = LTTNG_UST_CONTEXT_UTS_NS; + break; + case LTTNG_EVENT_CONTEXT_VUID: + utype = LTTNG_UST_CONTEXT_VUID; + break; + case LTTNG_EVENT_CONTEXT_VEUID: + utype = LTTNG_UST_CONTEXT_VEUID; + break; + case LTTNG_EVENT_CONTEXT_VSUID: + utype = LTTNG_UST_CONTEXT_VSUID; + break; + case LTTNG_EVENT_CONTEXT_VGID: + utype = LTTNG_UST_CONTEXT_VGID; + break; + case LTTNG_EVENT_CONTEXT_VEGID: + utype = LTTNG_UST_CONTEXT_VEGID; + break; + case LTTNG_EVENT_CONTEXT_VSGID: + utype = LTTNG_UST_CONTEXT_VSGID; + break; default: utype = -1; break; @@ -573,8 +613,8 @@ int trace_ust_context_type_event_to_ust( /* * Return 1 if contexts match, 0 otherwise. */ -int trace_ust_match_context(struct ltt_ust_context *uctx, - struct lttng_event_context *ctx) +int trace_ust_match_context(const struct ltt_ust_context *uctx, + const struct lttng_event_context *ctx) { int utype; @@ -623,7 +663,7 @@ int trace_ust_match_context(struct ltt_ust_context *uctx, * Return pointer to structure or NULL. */ struct ltt_ust_context *trace_ust_create_context( - struct lttng_event_context *ctx) + const struct lttng_event_context *ctx) { struct ltt_ust_context *uctx = NULL; int utype; @@ -1160,7 +1200,8 @@ static void destroy_domain_global(struct ltt_ust_domain_global *dom) } /* - * Cleanup ust session structure + * Cleanup ust session structure, keeping data required by + * destroy notifier. * * Should *NOT* be called with RCU read-side lock held. */ @@ -1196,9 +1237,13 @@ void trace_ust_destroy_session(struct ltt_ust_session *session) buffer_reg_uid_destroy(reg, session->consumer); } - consumer_output_put(session->consumer); - fini_pid_tracker(&session->pid_tracker); + lttng_trace_chunk_put(session->current_trace_chunk); +} +/* Free elements needed by destroy notifiers. */ +void trace_ust_free_session(struct ltt_ust_session *session) +{ + consumer_output_put(session->consumer); free(session); }