]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
rcu/kvfree: Initialize kvfree_rcu() separately
authorUladzislau Rezki (Sony) <urezki@gmail.com>
Thu, 12 Dec 2024 18:02:04 +0000 (19:02 +0100)
committerVlastimil Babka <vbabka@suse.cz>
Sat, 11 Jan 2025 19:39:02 +0000 (20:39 +0100)
Introduce a separate initialization of kvfree_rcu() functionality.
For such purpose a kfree_rcu_batch_init() is renamed to a kvfree_rcu_init()
and it is invoked from the main.c right after rcu_init() is done.

Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Acked-by: Hyeonggon Yoo <hyeonggon.yoo@sk.com>
Tested-by: Hyeonggon Yoo <hyeonggon.yoo@sk.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
include/linux/rcupdate.h
init/main.c
kernel/rcu/tree.c

index 48e5c03df1dd83c246a61d0fcc8aa638adcd7654..acb0095b4dbe946aaf84a1cf8ee680a392a778c3 100644 (file)
@@ -118,6 +118,7 @@ static inline void call_rcu_hurry(struct rcu_head *head, rcu_callback_t func)
 
 /* Internal to kernel */
 void rcu_init(void);
+void __init kvfree_rcu_init(void);
 extern int rcu_scheduler_active;
 void rcu_sched_clock_irq(int user);
 
index 00fac1170294f547a3a4252b7006f04aeb2fa937..893cb77aef22e7d987dbb80b1ac7213fb26806e5 100644 (file)
@@ -992,6 +992,7 @@ void start_kernel(void)
        workqueue_init_early();
 
        rcu_init();
+       kvfree_rcu_init();
 
        /* Trace events are available after this */
        trace_init();
index ff98233d4aa59f6ad4488ee96c1ea07ce56e9935..e69b867de8ef4eda93ee222cb3f5cc3814e0c58e 100644 (file)
@@ -5648,7 +5648,7 @@ static void __init rcu_dump_rcu_node_tree(void)
 
 struct workqueue_struct *rcu_gp_wq;
 
-static void __init kfree_rcu_batch_init(void)
+void __init kvfree_rcu_init(void)
 {
        int cpu;
        int i, j;
@@ -5703,7 +5703,6 @@ void __init rcu_init(void)
 
        rcu_early_boot_tests();
 
-       kfree_rcu_batch_init();
        rcu_bootup_announce();
        sanitize_kthread_prio();
        rcu_init_geometry();