On Sun, Apr 7, 2024 at 5:03 AM Lai Jiangshan <jiangshanlai@xxxxxxxxx> wrote: > > From: Lai Jiangshan <jiangshan.ljs@xxxxxxxxxxxx> > > Enable tree_exp.h using some rcu preempt macros introduced in > the next patch. The new macros touch core rcu-preempt fields > and are better to be implemented in tree_plugin.h. > > Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxx> > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> > Cc: Frederic Weisbecker <frederic@xxxxxxxxxx> > Signed-off-by: Lai Jiangshan <jiangshan.ljs@xxxxxxxxxxxx> > --- > kernel/rcu/tree.c | 2 +- > kernel/rcu/tree_plugin.h | 1 + > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index d9642dd06c25..57d1ae26861f 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -5245,6 +5245,6 @@ void __init rcu_init(void) > } > > #include "tree_stall.h" > -#include "tree_exp.h" > #include "tree_nocb.h" > #include "tree_plugin.h" > +#include "tree_exp.h" > diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h > index b1264096d03a..d899b4afc21c 100644 > --- a/kernel/rcu/tree_plugin.h > +++ b/kernel/rcu/tree_plugin.h > @@ -103,6 +103,7 @@ static void __init rcu_bootup_announce_oddness(void) > #ifdef CONFIG_PREEMPT_RCU > > static void rcu_report_exp_rnp(struct rcu_node *rnp, bool wake); > +static bool sync_rcu_exp_done(struct rcu_node *rnp); > static void rcu_read_unlock_special(struct task_struct *t); OK with me, but not sure if the reordering of header inclusion is needed? You could get the same results by just adding declarations of the new helpers to tree_exp.h. Not sure if tree_plugin.h needs to be included last, I for some reason thought it needed to be - but looks like not. I found a thread that shed some light into the header file including C code thing as well, which may or may not help: https://lore.kernel.org/all/8ab3ca72-e20c-4b18-803f-bf6937c2cd70@paulmck-laptop/#t Thanks.