projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix enable syscall and bad value of poll set size
[lttng-tools.git]
/
ltt-sessiond
/
main.c
diff --git
a/ltt-sessiond/main.c
b/ltt-sessiond/main.c
index e1bf1e416b49be23b8ca860d21062249b70a01df..c66ecb95690df819ce95825b83f20ac147dd4137 100644
(file)
--- a/
ltt-sessiond/main.c
+++ b/
ltt-sessiond/main.c
@@
-701,6
+701,12
@@
static void *thread_manage_kernel(void *data)
while (1) {
if (update_poll_flag == 1) {
while (1) {
if (update_poll_flag == 1) {
+ /*
+ * Reset number of fd in the poll set. Always 2 since there is the thread
+ * quit pipe and the kernel pipe.
+ */
+ events.nb_fd = 2;
+
ret = update_kernel_poll(&events);
if (ret < 0) {
goto error;
ret = update_kernel_poll(&events);
if (ret < 0) {
goto error;
@@
-1432,12
+1438,13
@@
static int mount_debugfs(char *path)
ret = mkdir_recursive(path, S_IRWXU | S_IRWXG, geteuid(), getegid());
if (ret < 0) {
ret = mkdir_recursive(path, S_IRWXU | S_IRWXG, geteuid(), getegid());
if (ret < 0) {
+ PERROR("Cannot create debugfs path");
goto error;
}
ret = mount(type, path, type, 0, NULL);
if (ret < 0) {
goto error;
}
ret = mount(type, path, type, 0, NULL);
if (ret < 0) {
-
perror("
mount debugfs");
+
PERROR("Cannot
mount debugfs");
goto error;
}
goto error;
}
@@
-1487,6
+1494,7
@@
static void init_kernel_tracer(void)
}
ret = mount_debugfs(debugfs_path);
if (ret < 0) {
}
ret = mount_debugfs(debugfs_path);
if (ret < 0) {
+ perror("Cannot mount debugfs");
goto error;
}
}
goto error;
}
}
@@
-1739,6
+1747,9
@@
static void list_lttng_events(struct ltt_kernel_channel *kchan,
case LTTNG_KERNEL_SYSCALL:
events[i].type = LTTNG_EVENT_SYSCALL;
break;
case LTTNG_KERNEL_SYSCALL:
events[i].type = LTTNG_EVENT_SYSCALL;
break;
+ case LTTNG_KERNEL_ALL:
+ assert(0);
+ break;
}
i++;
}
}
i++;
}
@@
-1910,7
+1921,7
@@
static int cmd_disable_event(struct ltt_session *session, int domain,
goto error;
}
goto error;
}
- ret = event_kernel_disable(session->kernel_session, kchan, event_name);
+ ret = event_kernel_disable
_tracepoint
(session->kernel_session, kchan, event_name);
if (ret != LTTCOMM_OK) {
goto error;
}
if (ret != LTTCOMM_OK) {
goto error;
}
@@
-2027,7
+2038,7
@@
static int cmd_enable_event(struct ltt_session *session, int domain,
goto error;
}
goto error;
}
- ret = event_kernel_enable(session->kernel_session, kchan, event);
+ ret = event_kernel_enable
_tracepoint
(session->kernel_session, kchan, event);
if (ret != LTTCOMM_OK) {
goto error;
}
if (ret != LTTCOMM_OK) {
goto error;
}
@@
-2077,18
+2088,28
@@
static int cmd_enable_event_all(struct ltt_session *session, int domain,
goto error;
}
goto error;
}
- if (event_type == LTTNG_KERNEL_SYSCALL) {
- ret = event_kernel_enable_syscalls(session->kernel_session,
+ switch (event_type) {
+ case LTTNG_KERNEL_SYSCALL:
+ ret = event_kernel_enable_all_syscalls(session->kernel_session,
kchan, kernel_tracer_fd);
kchan, kernel_tracer_fd);
- } else {
+ break;
+ case LTTNG_KERNEL_TRACEPOINT:
/*
/*
- * This call enables all LTTNG_KERNEL_TRACEPOINTS and
events
- * already registered to the channel.
+ * This call enables all LTTNG_KERNEL_TRACEPOINTS and
+ *
events
already registered to the channel.
*/
*/
+ ret = event_kernel_enable_all_tracepoints(session->kernel_session,
+ kchan, kernel_tracer_fd);
+ break;
+ case LTTNG_KERNEL_ALL:
+ /* Enable syscalls and tracepoints */
ret = event_kernel_enable_all(session->kernel_session,
kchan, kernel_tracer_fd);
ret = event_kernel_enable_all(session->kernel_session,
kchan, kernel_tracer_fd);
+ break;
+ default:
+ ret = LTTCOMM_KERN_ENABLE_FAIL;
+ goto error;
}
}
-
if (ret != LTTCOMM_OK) {
goto error;
}
if (ret != LTTCOMM_OK) {
goto error;
}
This page took
0.026129 seconds
and
4
git commands to generate.