X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fchannel.c;h=91be4f41c8ff559296692d04decd0f7bdf4930ff;hb=6bb9e85f440e1ee6e54105b2f2c13035039ae64d;hp=559c3d154034193381357540e0c0bc7a01f30ce0;hpb=4d710ac2a9cffbfa9e4ebdba4162b8d6ee9020fc;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/channel.c b/src/bin/lttng-sessiond/channel.c index 559c3d154..91be4f41c 100644 --- a/src/bin/lttng-sessiond/channel.c +++ b/src/bin/lttng-sessiond/channel.c @@ -49,8 +49,6 @@ struct lttng_channel *channel_new_default_attr(int dom) } chan->attr.overwrite = DEFAULT_CHANNEL_OVERWRITE; - chan->attr.switch_timer_interval = DEFAULT_CHANNEL_SWITCH_TIMER; - chan->attr.read_timer_interval = DEFAULT_CHANNEL_READ_TIMER; switch (dom) { case LTTNG_DOMAIN_KERNEL: @@ -58,6 +56,8 @@ struct lttng_channel *channel_new_default_attr(int dom) default_get_kernel_channel_subbuf_size(); chan->attr.num_subbuf = DEFAULT_KERNEL_CHANNEL_SUBBUF_NUM; chan->attr.output = DEFAULT_KERNEL_CHANNEL_OUTPUT; + chan->attr.switch_timer_interval = DEFAULT_KERNEL_CHANNEL_SWITCH_TIMER; + chan->attr.read_timer_interval = DEFAULT_KERNEL_CHANNEL_READ_TIMER; break; case LTTNG_DOMAIN_UST: #if 0 @@ -68,6 +68,8 @@ struct lttng_channel *channel_new_default_attr(int dom) chan->attr.subbuf_size = default_get_ust_channel_subbuf_size(); chan->attr.num_subbuf = DEFAULT_UST_CHANNEL_SUBBUF_NUM; chan->attr.output = DEFAULT_UST_CHANNEL_OUTPUT; + chan->attr.switch_timer_interval = DEFAULT_UST_CHANNEL_SWITCH_TIMER; + chan->attr.read_timer_interval = DEFAULT_UST_CHANNEL_READ_TIMER; break; default: goto error; /* Not implemented */ @@ -90,11 +92,17 @@ int channel_kernel_disable(struct ltt_kernel_session *ksession, int ret; struct ltt_kernel_channel *kchan; + assert(ksession); + assert(channel_name); + kchan = trace_kernel_get_channel_by_name(channel_name, ksession); if (kchan == NULL) { ret = LTTNG_ERR_KERN_CHAN_NOT_FOUND; goto error; - } else if (kchan->enabled == 1) { + } + + /* Only if channel is enabled disable it. */ + if (kchan->enabled == 1) { ret = kernel_disable_channel(kchan); if (ret < 0 && ret != -EEXIST) { ret = LTTNG_ERR_KERN_CHAN_DISABLE_FAIL; @@ -116,6 +124,9 @@ int channel_kernel_enable(struct ltt_kernel_session *ksession, { int ret; + assert(ksession); + assert(kchan); + if (kchan->enabled == 0) { ret = kernel_enable_channel(kchan); if (ret < 0) { @@ -142,6 +153,8 @@ int channel_kernel_create(struct ltt_kernel_session *ksession, int ret; struct lttng_channel *defattr = NULL; + assert(ksession); + /* Creating channel attributes if needed */ if (attr == NULL) { defattr = channel_new_default_attr(LTTNG_DOMAIN_KERNEL); @@ -153,7 +166,7 @@ int channel_kernel_create(struct ltt_kernel_session *ksession, } /* Channel not found, creating it */ - ret = kernel_create_channel(ksession, attr, ksession->trace_path); + ret = kernel_create_channel(ksession, attr); if (ret < 0) { ret = LTTNG_ERR_KERN_CHAN_FAIL; goto error; @@ -180,6 +193,9 @@ int channel_ust_enable(struct ltt_ust_session *usess, int domain, { int ret = LTTNG_OK; + assert(usess); + assert(uchan); + /* If already enabled, everything is OK */ if (uchan->enabled) { DBG3("Channel %s already enabled. Skipping", uchan->name); @@ -229,6 +245,8 @@ int channel_ust_create(struct ltt_ust_session *usess, int domain, struct ltt_ust_channel *uchan = NULL; struct lttng_channel *defattr = NULL; + assert(usess); + /* Creating channel attributes if needed */ if (attr == NULL) { defattr = channel_new_default_attr(domain); @@ -245,16 +263,18 @@ int channel_ust_create(struct ltt_ust_session *usess, int domain, } /* - * Validate UST buffer size and number of buffers: must both be - * power of 2 and nonzero. We validate right here for UST, - * because applications will not report the error to the user - * (unlike kernel tracing). + * Validate UST buffer size and number of buffers: must both be power of 2 + * and nonzero. We validate right here for UST, because applications will + * not report the error to the user (unlike kernel tracing). */ - if (!attr->attr.subbuf_size || (attr->attr.subbuf_size & (attr->attr.subbuf_size - 1))) { + if (!attr->attr.subbuf_size || + (attr->attr.subbuf_size & (attr->attr.subbuf_size - 1))) { ret = LTTNG_ERR_INVALID; goto error; } - if (!attr->attr.num_subbuf || (attr->attr.num_subbuf & (attr->attr.num_subbuf - 1))) { + + if (!attr->attr.num_subbuf || + (attr->attr.num_subbuf & (attr->attr.num_subbuf - 1))) { ret = LTTNG_ERR_INVALID; goto error; } @@ -323,6 +343,9 @@ int channel_ust_disable(struct ltt_ust_session *usess, int domain, { int ret = LTTNG_OK; + assert(usess); + assert(uchan); + /* Already disabled */ if (uchan->enabled == 0) { DBG2("Channel UST %s already disabled", uchan->name);