projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: use a free running channel key between sessiond and kernel consumer
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
kernel.c
diff --git
a/src/bin/lttng-sessiond/kernel.c
b/src/bin/lttng-sessiond/kernel.c
index 8892e76dc144f7963be7813647df05e5f9006da1..535a5b8e8c4035918f0e2665ac0af8f0e7ad8eda 100644
(file)
--- a/
src/bin/lttng-sessiond/kernel.c
+++ b/
src/bin/lttng-sessiond/kernel.c
@@
-34,6
+34,12
@@
#include "kern-modules.h"
#include "utils.h"
#include "kern-modules.h"
#include "utils.h"
+/*
+ * Key used to reference a channel between the sessiond and the consumer. This
+ * is only read and updated with the session_list lock held.
+ */
+static uint64_t next_kernel_channel_key;
+
/*
* Add context on a kernel channel.
*
/*
* Add context on a kernel channel.
*
@@
-169,8
+175,10
@@
int kernel_create_channel(struct ltt_kernel_session *session,
cds_list_add(&lkc->list, &session->channel_list.head);
session->channel_count++;
lkc->session = session;
cds_list_add(&lkc->list, &session->channel_list.head);
session->channel_count++;
lkc->session = session;
+ lkc->key = ++next_kernel_channel_key;
- DBG("Kernel channel %s created (fd: %d)", lkc->channel->name, lkc->fd);
+ DBG("Kernel channel %s created (fd: %d, key: %" PRIu64 ")",
+ lkc->channel->name, lkc->fd, lkc->key);
return 0;
return 0;
@@
-291,7
+299,8
@@
int kernel_disable_channel(struct ltt_kernel_channel *chan)
}
chan->enabled = 0;
}
chan->enabled = 0;
- DBG("Kernel channel %s disabled (fd: %d)", chan->channel->name, chan->fd);
+ DBG("Kernel channel %s disabled (fd: %d, key: %" PRIu64 ")",
+ chan->channel->name, chan->fd, chan->key);
return 0;
return 0;
@@
-315,7
+324,8
@@
int kernel_enable_channel(struct ltt_kernel_channel *chan)
}
chan->enabled = 1;
}
chan->enabled = 1;
- DBG("Kernel channel %s enabled (fd: %d)", chan->channel->name, chan->fd);
+ DBG("Kernel channel %s enabled (fd: %d, key: %" PRIu64 ")",
+ chan->channel->name, chan->fd, chan->key);
return 0;
return 0;
This page took
0.035634 seconds
and
4
git commands to generate.