Messages in this thread | | | Date | Mon, 23 Mar 2020 10:17:51 -0700 | From | "Paul E. McKenney" <> | Subject | Re: Hit WARN_ON() in rcutorture.c:1055 |
| |
On Mon, Mar 23, 2020 at 05:06:10PM +0000, Qais Yousef wrote: > On 03/23/20 08:57, Paul E. McKenney wrote: > > On Mon, Mar 23, 2020 at 03:43:09PM +0000, Qais Yousef wrote: > > > Hi > > > > > > I hit the following warning while running rcutorture tests. It only happens > > > when I try to hibernate the system (arm64 Juno-r2). > > > > Hibernating the system during rcutorture tests. Now that is gutsy! ;-) > > Hehe was just a side effect of testing the cpu hotplug stuff :-) > > > > > > Let me know if you need additional info. > > > > 1. Do you need this to work? If so, please tell me your use case. > > Nope. It just happened while trying to stress the cpu hotplug series I just > posted. > > > 2. What is line 1055 of your rcutorture.c? Here is my guess: > > It's 5.6-rc6, sorry should have mentioned in the report. > > /* Cycle through nesting levels of rcu_expedite_gp() calls. */ > if (can_expedite && > !(torture_random(&rand) & 0xff & (!!expediting - 1))) { > WARN_ON_ONCE(expediting == 0 && rcu_gp_is_expedited()); > if (expediting >= 0) > rcu_expedite_gp(); > else > rcu_unexpedite_gp(); > if (++expediting > 3) > expediting = -expediting; > } else if (!can_expedite) { /* Disabled during boot, recheck. */ > > If it's something you don't care about, then I don't care about too. I just > thought I'd report it in case it uncovered something worthwhile.
Well, my guess was wrong. ;-)
This is instead rcutorture being surprised by the fact that RCU grace periods are expedited during the hibernate process. I could fix this particular situation, but I bet that there are a number of others, including my guess above.
One approach would be to halt rcutorture testing just before hibernating and restart it just after resuming.
Thoughts?
Thanx, Paul
| |