lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 23 Mar 2020 11:10:10 -0700
From:   "Paul E. McKenney" <paulmck@...nel.org>
To:     Qais Yousef <qais.yousef@....com>
Cc:     Davidlohr Bueso <dave@...olabs.net>,
        Josh Triplett <josh@...htriplett.org>,
        linux-kernel@...r.kernel.org
Subject: Re: Hit WARN_ON() in rcutorture.c:1055

On Mon, Mar 23, 2020 at 05:41:48PM +0000, Qais Yousef wrote:
> On 03/23/20 10:17, Paul E. McKenney wrote:
> > 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?
> 
> {register, unregister}_pm_notifier() don't seem to be too hard to use.

That part is easy.  It would also be necessary to find all the affected
warnings in rcutorture and suppress them, not only during this time,
but also for some period of time afterwards.  Maybe this is the only one,
but that would be surprising.  ;-)

> But if it's not that simple, then it's not worthwhile I'd say. The report
> lives in LKML as a documentation of this missing support :-P

It might at some point be necessary for rcutorture to handle suspends
and hibernates in midstream, and yes, it could be done, but first I need
to see some reason why it provides significant help.

							Thanx, Paul

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ