X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel.c;h=34695efff568e3855e8df32f79af4a895ecc97a0;hp=9049022f478e255416e15fb691698e096d01d8ea;hb=f73fabfda365d22e7dd180fb1614e37c446fbd9e;hpb=173af62f4804133d4a7f45e34b6f72126f3eca5f diff --git a/src/bin/lttng-sessiond/kernel.c b/src/bin/lttng-sessiond/kernel.c index 9049022f4..34695efff 100644 --- a/src/bin/lttng-sessiond/kernel.c +++ b/src/bin/lttng-sessiond/kernel.c @@ -22,11 +22,13 @@ #include #include #include +#include #include #include #include +#include "consumer.h" #include "kernel.h" #include "kern-modules.h" @@ -150,7 +152,7 @@ int kernel_create_channel(struct ltt_kernel_session *session, goto error; } - DBG3("Kernel create channel %s in %s with attr: %d, %zu, %zu, %u, %u, %d", + DBG3("Kernel create channel %s in %s with attr: %d, %" PRIu64 ", %" PRIu64 ", %u, %u, %d", chan->name, path, lkc->channel->attr.overwrite, lkc->channel->attr.subbuf_size, lkc->channel->attr.num_subbuf, lkc->channel->attr.switch_timer_interval, lkc->channel->attr.read_timer_interval, @@ -305,7 +307,7 @@ int kernel_enable_event(struct ltt_kernel_event *event) if (ret < 0) { switch (errno) { case EEXIST: - ret = LTTCOMM_KERN_EVENT_EXIST; + ret = LTTNG_ERR_KERN_EVENT_EXIST; break; default: PERROR("enable kernel event"); @@ -334,7 +336,7 @@ int kernel_disable_event(struct ltt_kernel_event *event) if (ret < 0) { switch (errno) { case EEXIST: - ret = LTTCOMM_KERN_EVENT_EXIST; + ret = LTTNG_ERR_KERN_EVENT_EXIST; break; default: PERROR("disable kernel event"); @@ -356,13 +358,13 @@ error: * Create kernel metadata, open from the kernel tracer and add it to the * kernel session. */ -int kernel_open_metadata(struct ltt_kernel_session *session, char *path) +int kernel_open_metadata(struct ltt_kernel_session *session) { int ret; struct ltt_kernel_metadata *lkm; /* Allocate kernel metadata */ - lkm = trace_kernel_create_metadata(path); + lkm = trace_kernel_create_metadata(); if (lkm == NULL) { goto error; } @@ -717,3 +719,21 @@ int init_kernel_workarounds(void) end_boot_id: return 0; } + +/* + * Complete teardown of a kernel session. + */ +void kernel_destroy_session(struct ltt_kernel_session *ksess) +{ + if (ksess == NULL) { + DBG3("No kernel session when tearing down session"); + return; + } + + DBG("Tearing down kernel session"); + + /* Close any relayd session */ + consumer_output_send_destroy_relayd(ksess->consumer); + + trace_kernel_destroy_session(ksess); +}