[lttng-dev] [PATCH lttng-tools 2/3] Fix: lttng-sessiond: cpu hotplug: send channel to consumer only once
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Thu May 11 20:00:55 UTC 2017
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 <mathieu.desnoyers at efficios.com>
---
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
More information about the lttng-dev
mailing list