*
* Return pointer to structure or NULL.
*/
-struct ltt_kernel_session *trace_kernel_create_session(char *path)
+struct ltt_kernel_session *trace_kernel_create_session(void)
{
struct ltt_kernel_session *lks = NULL;
*/
lks->tmp_consumer = NULL;
- if (path && strlen(path) > 0) {
- int ret;
-
- /* Use the default consumer output which is the tracing session path. */
- ret = snprintf(lks->consumer->dst.trace_path, PATH_MAX,
- "%s" DEFAULT_KERNEL_TRACE_DIR, path);
- if (ret < 0) {
- PERROR("snprintf consumer trace path");
- goto error;
- }
-
- /* Set session path */
- ret = asprintf(&lks->trace_path, "%s" DEFAULT_KERNEL_TRACE_DIR, path);
- if (ret < 0) {
- PERROR("asprintf kernel traces path");
- goto error;
- }
- }
-
return lks;
error:
lkc->channel = zmalloc(sizeof(struct lttng_channel));
if (lkc->channel == NULL) {
PERROR("lttng_channel zmalloc");
+ free(lkc);
goto error;
}
memcpy(lkc->channel, chan, sizeof(struct lttng_channel));
chan->attr.overwrite = DEFAULT_CHANNEL_OVERWRITE;
chan->attr.subbuf_size = default_get_metadata_subbuf_size();
chan->attr.num_subbuf = DEFAULT_METADATA_SUBBUF_NUM;
- chan->attr.switch_timer_interval = DEFAULT_CHANNEL_SWITCH_TIMER;
- chan->attr.read_timer_interval = DEFAULT_CHANNEL_READ_TIMER;
+ chan->attr.switch_timer_interval = DEFAULT_KERNEL_CHANNEL_SWITCH_TIMER;
+ chan->attr.read_timer_interval = DEFAULT_KERNEL_CHANNEL_READ_TIMER;
chan->attr.output = DEFAULT_KERNEL_CHANNEL_OUTPUT;
/* Init metadata */
/* Init stream */
lks->fd = -1;
lks->state = 0;
+ lks->cpu = count;
return lks;
/*
* Cleanup kernel session structure
+ *
+ * Should *NOT* be called with RCU read-side lock held.
*/
void trace_kernel_destroy_session(struct ltt_kernel_session *session)
{
consumer_destroy_output(session->consumer);
consumer_destroy_output(session->tmp_consumer);
- free(session->trace_path);
free(session);
}