Fix: hash table cleanup call_rcu deadlock
[lttng-tools.git] / src / bin / lttng-sessiond / lttng-sessiond.h
index 63e9be9989e0e978b04a5c37c0c1a027a41fcc87..6090e086c4f257311c57f068aa75ef71c585c393 100644 (file)
@@ -23,6 +23,7 @@
 #include <urcu/wfqueue.h>
 
 #include <common/sessiond-comm/sessiond-comm.h>
+#include <common/compat/poll.h>
 #include <common/compat/socket.h>
 
 #include "session.h"
@@ -64,4 +65,29 @@ struct ust_cmd_queue {
        struct cds_wfq_queue queue;
 };
 
+/*
+ * This pipe is used to inform the thread managing application notify
+ * communication that a command is queued and ready to be processed.
+ */
+extern int apps_cmd_notify_pipe[2];
+
+/*
+ * Used to notify that a hash table needs to be destroyed by dedicated
+ * thread. Required by design because we don't want to move destroy
+ * paths outside of large RCU read-side lock paths, and destroy cannot
+ * be called by call_rcu thread, because it may hang (waiting for
+ * call_rcu completion).
+ */
+extern int ht_cleanup_pipe[2];
+
+/*
+ * Populated when the daemon starts with the current page size of the system.
+ */
+extern long page_size;
+
+int sessiond_set_thread_pollset(struct lttng_poll_event *events, size_t size);
+int sessiond_check_thread_quit_pipe(int fd, uint32_t events);
+
+void *thread_ht_cleanup(void *data);
+
 #endif /* _LTT_SESSIOND_H */
This page took 0.02404 seconds and 4 git commands to generate.