attr->attr.overwrite = !!ksession->snapshot_mode;
}
- /* Enforce mmap output for snapshot sessions. */
- if (ksession->snapshot_mode) {
- attr->attr.output = LTTNG_EVENT_MMAP;
- }
-
/* Validate common channel properties. */
if (channel_validate(attr) < 0) {
ret = LTTNG_ERR_INVALID;
DBG3("Channel %s already enabled. Skipping", uchan->name);
ret = LTTNG_ERR_UST_CHAN_EXIST;
goto end;
+ } else {
+ uchan->enabled = 1;
+ DBG2("Channel %s enabled successfully", uchan->name);
+ }
+
+ if (!usess->active) {
+ /*
+ * The channel will be activated against the apps
+ * when the session is started as part of the
+ * application channel "synchronize" operation.
+ */
+ goto end;
}
DBG2("Channel %s being enabled in UST domain", uchan->name);
*/
(void) ust_app_enable_channel_glb(usess, uchan);
- uchan->enabled = 1;
- DBG2("Channel %s enabled successfully", uchan->name);
end:
return ret;
goto error_free_chan;
}
- /* Enable channel for global domain */
- ret = ust_app_create_channel_glb(usess, uchan);
- if (ret < 0 && ret != -LTTNG_UST_ERR_EXIST) {
- ret = LTTNG_ERR_UST_CHAN_FAIL;
- goto error_free_chan;
+ if (usess->active) {
+ /* Enable channel for global domain */
+ ret = ust_app_create_channel_glb(usess, uchan);
+ if (ret < 0 && ret != -LTTNG_UST_ERR_EXIST) {
+ ret = LTTNG_ERR_UST_CHAN_FAIL;
+ goto error_free_chan;
+ }
}
/* Adding the channel to the channel hash table. */
DBG2("Channel UST %s already disabled", uchan->name);
goto end;
}
+ if (!usess->active) {
+ goto end;
+ }
DBG2("Channel %s being disabled in UST global domain", uchan->name);
/* Disable channel for global domain */