From: Ondřej Surý Date: Mon, 26 Jun 2023 13:58:48 +0000 (+0200) Subject: Remove the explicit call_rcu thread creating and destruction X-Git-Tag: v9.19.15~17^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5bd9343c4e767e61c159e0e75d08f368be464ecf;p=thirdparty%2Fbind9.git Remove the explicit call_rcu thread creating and destruction The free_all_cpu_call_rcu_data() call can consume hundreds of milliseconds on shutdown. Don't try to be smart and let the RCU library handle this internally. --- diff --git a/lib/isc/loop.c b/lib/isc/loop.c index f9ebc49fe23..67f74c4571d 100644 --- a/lib/isc/loop.c +++ b/lib/isc/loop.c @@ -434,8 +434,6 @@ isc_loopmgr_run(isc_loopmgr_t *loopmgr) { */ ignore_signal(SIGPIPE, SIG_IGN); - bool free_call_rcu_data = !create_all_cpu_call_rcu_data(0); - /* * The thread 0 is this one. */ @@ -450,12 +448,6 @@ isc_loopmgr_run(isc_loopmgr_t *loopmgr) { } isc_thread_main(loop_thread, &loopmgr->loops[0]); - - rcu_barrier(); - - if (free_call_rcu_data) { - free_all_cpu_call_rcu_data(); - } } void