projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: add a kernel context list to the channel
[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 b6b24a5a2b2b426fc78845bb8ca4bf7b1f16770a..b997a4aeab6b7ac0aac7208fa82bacd6e964ce28 100644
(file)
--- a/
src/bin/lttng-sessiond/kernel.c
+++ b/
src/bin/lttng-sessiond/kernel.c
@@
-37,7
+37,7
@@
* Add context on a kernel channel.
*/
int kernel_add_channel_context(struct ltt_kernel_channel *chan,
* Add context on a kernel channel.
*/
int kernel_add_channel_context(struct ltt_kernel_channel *chan,
- struct ltt
ng
_kernel_context *ctx)
+ struct ltt_kernel_context *ctx)
{
int ret;
{
int ret;
@@
-45,7
+45,7
@@
int kernel_add_channel_context(struct ltt_kernel_channel *chan,
assert(ctx);
DBG("Adding context to channel %s", chan->channel->name);
assert(ctx);
DBG("Adding context to channel %s", chan->channel->name);
- ret = kernctl_add_context(chan->fd, ctx);
+ ret = kernctl_add_context(chan->fd,
&ctx->
ctx);
if (ret < 0) {
if (errno != EEXIST) {
PERROR("add context ioctl");
if (ret < 0) {
if (errno != EEXIST) {
PERROR("add context ioctl");
@@
-56,13
+56,7
@@
int kernel_add_channel_context(struct ltt_kernel_channel *chan,
goto error;
}
goto error;
}
- chan->ctx = zmalloc(sizeof(struct lttng_kernel_context));
- if (chan->ctx == NULL) {
- PERROR("zmalloc event context");
- goto error;
- }
-
- memcpy(chan->ctx, ctx, sizeof(struct lttng_kernel_context));
+ cds_list_add_tail(&ctx->list, &chan->ctx_list);
return 0;
return 0;
@@
-201,6
+195,9
@@
int kernel_create_event(struct lttng_event *ev,
case ENOSYS:
WARN("Event type not implemented");
break;
case ENOSYS:
WARN("Event type not implemented");
break;
+ case ENOENT:
+ WARN("Event %s not found!", ev->name);
+ break;
default:
PERROR("create event ioctl");
}
default:
PERROR("create event ioctl");
}
@@
-759,11
+756,11
@@
void kernel_destroy_session(struct ltt_kernel_session *ksess)
DBG("Tearing down kernel session");
/*
DBG("Tearing down kernel session");
/*
- * Destroy channels on the consumer if
in no output mode because th
e
- *
streams are in *no* monitor mode so we have to send a command to clean
- * them up or else they leaked.
+ * Destroy channels on the consumer if
at least one FD has been sent and w
e
+ *
are in no output mode because the streams are in *no* monitor mode so we
+ *
have to send a command to clean
them up or else they leaked.
*/
*/
- if (!ksess->output_traces) {
+ if (!ksess->output_traces
&& ksess->consumer_fds_sent
) {
int ret;
struct consumer_socket *socket;
struct lttng_ht_iter iter;
int ret;
struct consumer_socket *socket;
struct lttng_ht_iter iter;
This page took
0.025672 seconds
and
5
git commands to generate.