On CPU hotplug, we currently send a duplicate of the channel key, which
allocates its own object (duplicated) within the consumerd. We want the
newly added stream to map to the pre-existing channel key, so don't send
the channel duplicate.

Signed-off-by: Mathieu Desnoyers <[email protected]>
---
 src/bin/lttng-sessiond/kernel-consumer.c | 11 +++++++----
 src/bin/lttng-sessiond/trace-kernel.h    |  1 +
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/bin/lttng-sessiond/kernel-consumer.c 
b/src/bin/lttng-sessiond/kernel-consumer.c
index a65e149..067652b 100644
--- a/src/bin/lttng-sessiond/kernel-consumer.c
+++ b/src/bin/lttng-sessiond/kernel-consumer.c
@@ -338,7 +338,7 @@ int kernel_consumer_send_channel_stream(struct 
consumer_socket *sock,
                struct ltt_kernel_channel *channel, struct ltt_kernel_session 
*session,
                unsigned int monitor)
 {
-       int ret;
+       int ret = LTTNG_OK;
        struct ltt_kernel_stream *stream;
 
        /* Safety net */
@@ -356,9 +356,12 @@ int kernel_consumer_send_channel_stream(struct 
consumer_socket *sock,
        DBG("Sending streams of channel %s to kernel consumer",
                        channel->channel->name);
 
-       ret = kernel_consumer_add_channel(sock, channel, session, monitor);
-       if (ret < 0) {
-               goto error;
+       if (!channel->sent_to_consumer) {
+               ret = kernel_consumer_add_channel(sock, channel, session, 
monitor);
+               if (ret < 0) {
+                       goto error;
+               }
+               channel->sent_to_consumer = true;
        }
 
        /* Send streams */
diff --git a/src/bin/lttng-sessiond/trace-kernel.h 
b/src/bin/lttng-sessiond/trace-kernel.h
index 2092469..93870cb 100644
--- a/src/bin/lttng-sessiond/trace-kernel.h
+++ b/src/bin/lttng-sessiond/trace-kernel.h
@@ -71,6 +71,7 @@ struct ltt_kernel_channel {
        struct cds_list_head list;
        /* Session pointer which has a reference to this object. */
        struct ltt_kernel_session *session;
+       bool sent_to_consumer;
 };
 
 /* Metadata */
-- 
2.1.4

_______________________________________________
lttng-dev mailing list
[email protected]
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to