Comment buffer creation behavior wrt packet headers
[lttng-modules.git] / ltt-events.c
index 28d17fc772af2a89566468a992a73e1b494d5765..17d87095c5a1b4bea0c15f9e8906fcb7bab47992 100644 (file)
@@ -169,12 +169,17 @@ struct ltt_channel *ltt_channel_create(struct ltt_session *session,
                goto nomem;
        chan->session = session;
        init_waitqueue_head(&chan->notify_wait);
+       chan->id = session->free_chan_id++;
+       /*
+        * Note: the channel creation op already writes into the packet
+        * headers. Therefore the "chan" information used as input
+        * should be already accessible.
+        */
        chan->chan = transport->ops.channel_create("[lttng]", chan, buf_addr,
                        subbuf_size, num_subbuf, switch_timer_interval,
                        read_timer_interval);
        if (!chan->chan)
                goto create_error;
-       chan->id = session->free_chan_id++;
        chan->ops = &transport->ops;
        list_add(&chan->list, &session->chan);
        mutex_unlock(&sessions_mutex);
@@ -362,7 +367,7 @@ int lttng_metadata_printf(struct ltt_session *session,
                 */
                waitret = wait_event_interruptible_timeout(*chan->ops->get_reader_wait_queue(chan),
                        ({
-                               ret = chan->ops->event_reserve(&ctx);
+                               ret = chan->ops->event_reserve(&ctx, 0);
                                ret != -ENOBUFS || !ret;
                        }),
                        msecs_to_jiffies(LTTNG_METADATA_TIMEOUT_MSEC));
@@ -522,7 +527,7 @@ int _ltt_event_metadata_statedump(struct ltt_session *session,
                "       name = %s;\n"
                "       id = %u;\n"
                "       stream_id = %u;\n"
-               "       event.fields := struct {\n",
+               "       fields := struct {\n",
                event->desc->name,
                event->id,
                event->chan->id);
@@ -715,7 +720,7 @@ skip_session:
        }
 
        list_for_each_entry(event, &session->events, list) {
-               ret = _ltt_event_metadata_statedump(session, chan, event);
+               ret = _ltt_event_metadata_statedump(session, event->chan, event);
                if (ret)
                        goto end;
        }
This page took 0.023954 seconds and 4 git commands to generate.