X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fkernel.c;h=95194113243dcf4dbf426e0dfaac19b192cd46ba;hb=ee69440bd276dbc8a5c78b0138c8e6944d571b4a;hp=b417cb07759c4f30795b9240508b31e2148ffd77;hpb=fb5f35b688fa31b21b25f9a6a831df3e5aa243ed;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/kernel.c b/src/bin/lttng-sessiond/kernel.c index b417cb077..951941132 100644 --- a/src/bin/lttng-sessiond/kernel.c +++ b/src/bin/lttng-sessiond/kernel.c @@ -40,6 +40,9 @@ int kernel_add_channel_context(struct ltt_kernel_channel *chan, { int ret; + assert(chan); + assert(ctx); + DBG("Adding context to channel %s", chan->channel->name); ret = kernctl_add_context(chan->fd, ctx); if (ret < 0) { @@ -75,6 +78,8 @@ int kernel_create_session(struct ltt_session *session, int tracer_fd) int ret; struct ltt_kernel_session *lks; + assert(session); + /* Allocate data structure */ lks = trace_kernel_create_session(session->path); if (lks == NULL) { @@ -113,19 +118,22 @@ error: * kernel session. */ int kernel_create_channel(struct ltt_kernel_session *session, - struct lttng_channel *chan, char *path) + struct lttng_channel *chan) { int ret; struct ltt_kernel_channel *lkc; + assert(session); + assert(chan); + /* Allocate kernel channel */ - lkc = trace_kernel_create_channel(chan, path); + lkc = trace_kernel_create_channel(chan); if (lkc == NULL) { goto error; } - DBG3("Kernel create channel %s in %s with attr: %d, %" PRIu64 ", %" PRIu64 ", %u, %u, %d", - chan->name, path, lkc->channel->attr.overwrite, + DBG3("Kernel create channel %s with attr: %d, %" PRIu64 ", %" PRIu64 ", %u, %u, %d", + chan->name, 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, lkc->channel->attr.output); @@ -168,6 +176,9 @@ int kernel_create_event(struct lttng_event *ev, int ret; struct ltt_kernel_event *event; + assert(ev); + assert(channel); + event = trace_kernel_create_event(ev); if (event == NULL) { ret = -1; @@ -231,6 +242,8 @@ int kernel_disable_channel(struct ltt_kernel_channel *chan) { int ret; + assert(chan); + ret = kernctl_disable(chan->fd); if (ret < 0) { PERROR("disable chan ioctl"); @@ -254,6 +267,8 @@ int kernel_enable_channel(struct ltt_kernel_channel *chan) { int ret; + assert(chan); + ret = kernctl_enable(chan->fd); if (ret < 0 && errno != EEXIST) { PERROR("Enable kernel chan"); @@ -276,6 +291,8 @@ int kernel_enable_event(struct ltt_kernel_event *event) { int ret; + assert(event); + ret = kernctl_enable(event->fd); if (ret < 0) { switch (errno) { @@ -305,6 +322,8 @@ int kernel_disable_event(struct ltt_kernel_event *event) { int ret; + assert(event); + ret = kernctl_disable(event->fd); if (ret < 0) { switch (errno) { @@ -336,6 +355,8 @@ int kernel_open_metadata(struct ltt_kernel_session *session) int ret; struct ltt_kernel_metadata *lkm; + assert(session); + /* Allocate kernel metadata */ lkm = trace_kernel_create_metadata(); if (lkm == NULL) { @@ -372,6 +393,8 @@ int kernel_start_session(struct ltt_kernel_session *session) { int ret; + assert(session); + ret = kernctl_start_session(session->fd); if (ret < 0) { PERROR("ioctl start session"); @@ -409,6 +432,8 @@ int kernel_calibrate(int fd, struct lttng_kernel_calibrate *calibrate) { int ret; + assert(calibrate); + ret = kernctl_calibrate(fd, calibrate); if (ret < 0) { PERROR("calibrate ioctl"); @@ -442,6 +467,8 @@ int kernel_flush_buffer(struct ltt_kernel_channel *channel) int ret; struct ltt_kernel_stream *stream; + assert(channel); + DBG("Flush buffer for channel %s", channel->channel->name); cds_list_for_each_entry(stream, &channel->stream_list.head, list) { @@ -464,6 +491,8 @@ int kernel_stop_session(struct ltt_kernel_session *session) { int ret; + assert(session); + ret = kernctl_stop_session(session->fd); if (ret < 0) { goto error; @@ -488,6 +517,8 @@ int kernel_open_channel_stream(struct ltt_kernel_channel *channel) int ret, count = 0; struct ltt_kernel_stream *lks; + assert(channel); + while ((ret = kernctl_create_stream(channel->fd)) >= 0) { lks = trace_kernel_create_stream(channel->channel->name, count); if (lks == NULL) { @@ -505,6 +536,9 @@ int kernel_open_channel_stream(struct ltt_kernel_channel *channel) PERROR("fcntl session fd"); } + lks->tracefile_size = channel->channel->attr.tracefile_size; + lks->tracefile_count = channel->channel->attr.tracefile_count; + /* Add stream to channe stream list */ cds_list_add(&lks->list, &channel->stream_list.head); channel->stream_count++; @@ -529,6 +563,8 @@ int kernel_open_metadata_stream(struct ltt_kernel_session *session) { int ret; + assert(session); + ret = kernctl_create_stream(session->metadata->fd); if (ret < 0) { PERROR("kernel create metadata stream"); @@ -560,6 +596,8 @@ ssize_t kernel_list_events(int tracer_fd, struct lttng_event **events) FILE *fp; struct lttng_event *elist; + assert(events); + fd = kernctl_tracepoint_list(tracer_fd); if (fd < 0) { PERROR("kernel tracepoint list");