X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fmain.cpp;h=d8d2caf8b2c9c387d4762b03d0968790584e0199;hb=3c3390532736cfb5198f863d0d2b218e21fcf76d;hp=58cf092eac444762ea9d96960f65dd53326fcffd;hpb=ff9fe3137fc1aec6e18ebbf7c218907698206e7d;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/main.cpp b/src/bin/lttng-sessiond/main.cpp index 58cf092ea..d8d2caf8b 100644 --- a/src/bin/lttng-sessiond/main.cpp +++ b/src/bin/lttng-sessiond/main.cpp @@ -67,7 +67,6 @@ #include "notification-thread-commands.h" #include "rotation-thread.h" #include "agent.h" -#include "ht-cleanup.h" #include "sessiond-config.h" #include "timer.h" #include "thread.h" @@ -1448,7 +1447,6 @@ int main(int argc, char **argv) struct lttng_pipe *ust32_channel_monitor_pipe = NULL, *ust64_channel_monitor_pipe = NULL, *kernel_channel_monitor_pipe = NULL; - struct lttng_thread *ht_cleanup_thread = NULL; struct timer_thread_parameters timer_thread_parameters; /* Rotation thread handle. */ struct rotation_thread_handle *rotation_thread_handle = NULL; @@ -1497,9 +1495,7 @@ int main(int argc, char **argv) * Parse arguments and load the daemon configuration file. * * We have an exit_options exit path to free memory reserved by - * set_options. This is needed because the rest of sessiond_cleanup() - * depends on ht_cleanup_thread, which depends on lttng_daemonize, which - * depends on set_options. + * set_options. */ progname = argv[0]; if (set_options(argc, argv)) { @@ -1600,13 +1596,6 @@ int main(int argc, char **argv) goto stop_threads; } - /* Create thread to clean up RCU hash tables */ - ht_cleanup_thread = launch_ht_cleanup_thread(); - if (!ht_cleanup_thread) { - retval = -1; - goto stop_threads; - } - /* Create thread quit pipe */ if (sessiond_init_thread_quit_pipe()) { retval = -1; @@ -1961,10 +1950,7 @@ stop_threads: * perform lookups in those structures. */ rcu_barrier(); - /* - * sessiond_cleanup() is called when no other thread is running, except - * the ht_cleanup thread, which is needed to destroy the hash tables. - */ + rcu_thread_online(); sessiond_cleanup(); @@ -2001,18 +1987,6 @@ stop_threads: modprobe_remove_lttng_all(); } - /* - * Ensure all prior call_rcu are done. call_rcu callbacks may push - * hash tables to the ht_cleanup thread. Therefore, we ensure that - * the queue is empty before shutting down the clean-up thread. - */ - rcu_barrier(); - - if (ht_cleanup_thread) { - lttng_thread_shutdown(ht_cleanup_thread); - lttng_thread_put(ht_cleanup_thread); - } - rcu_thread_offline(); rcu_unregister_thread();