Messages in this thread Patch in this message | | | Date | Thu, 30 Aug 2018 10:37:42 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH tip/core/rcu 3/3] srcu: Make early-boot call_srcu() reuse workqueue lists |
| |
On Thu, Aug 30, 2018 at 10:35:09AM -0700, Paul E. McKenney wrote: > On Thu, Aug 30, 2018 at 12:44:44PM -0400, Steven Rostedt wrote: > > On Wed, 29 Aug 2018 20:23:15 -0700 > > "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote: > > > > > > > Glad you like it! Does it actually work for you? ;-) > > > > > > > > Oh, you want me to actually test it too? ;-) > > > > > > ;-) ;-) ;-) > > > > > > > I'll try to add that in my todo list tomorrow. > > > > > > Much appreciated! > > > > I reverted the change that prevents calling call_srcu() early: > > > > I checked out v4.19-rc1 and applied these three patches, then did: > > > > git show f8a79d5c7ef47c62d97a30e16064caf2ef91f648 | patch -p1 -R > > > > But still triggered the following: > > > > WARNING: CPU: 0 PID: 0 at /work/git/linux-trace.git/kernel/rcu/srcutree.c:242 check_init_srcu_struct+0x85/0x90 > > Gah!!! I needed to have removed that WARN_ON_ONCE(), didn't I? > In fact, I should have removed that once I started using workqueues, > quite some time back.
As in the below patch.
Thanx, Paul
------------------------------------------------------------------------
diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c index 75571ff09c62..a8846ed7f352 100644 --- a/kernel/rcu/srcutree.c +++ b/kernel/rcu/srcutree.c @@ -239,7 +239,6 @@ static void check_init_srcu_struct(struct srcu_struct *sp) { unsigned long flags; - WARN_ON_ONCE(rcu_scheduler_active == RCU_SCHEDULER_INIT); /* The smp_load_acquire() pairs with the smp_store_release(). */ if (!rcu_seq_state(smp_load_acquire(&sp->srcu_gp_seq_needed))) /*^^^*/ return; /* Already initialized. */
| |