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, 13 May 2013 13:30:05 +0200
From:	"Rafael J. Wysocki" <rjw@...k.pl>
To:	Borislav Petkov <bp@...en8.de>
Cc:	Bjørn Mork <bjorn@...k.no>,
	paulmck@...ux.vnet.ibm.com,
	"Paul E. McKenney" <paul.mckenney@...aro.org>,
	linux-kernel@...r.kernel.org, Borislav Petkov <bp@...e.de>
Subject: Re: Bisected post-3.9 regression: Resume takes 5 times as much time as with v3.9

On Sunday, May 12, 2013 07:20:58 PM Borislav Petkov wrote:
> On Sun, May 12, 2013 at 06:56:40PM +0200, Bjørn Mork wrote:
> > Borislav Petkov <bp@...en8.de> writes:
> > > On Sun, May 12, 2013 at 06:13:34PM +0200, Bjørn Mork wrote:
> > >> diff --git a/kernel/rcutree.c b/kernel/rcutree.c
> > >> index 6934238..2dcbf84 100644
> > >> --- a/kernel/rcutree.c
> > >> +++ b/kernel/rcutree.c
> > >> @@ -3103,9 +3103,11 @@ static int rcu_pm_notify(struct notifier_block *self,
> > >>  {
> > >>  	switch (action) {
> > >>  	case PM_HIBERNATION_PREPARE:
> > >> +	case PM_SUSPEND_PREPARE:
> > >>  		rcu_expedited = 1;
> > >>  		break;
> > >> -	case PM_POST_RESTORE:
> > >> +	case PM_POST_HIBERNATION:
> > >> +	case PM_POST_SUSPEND:
> > >>  		rcu_expedited = 0;
> > >>  		break;
> > >>  	default:
> > >
> > > If I'm reading Documentation/power/notifiers.txt correctly, we only need
> > > PM_HIBERNATION_PREPARE when we go to sleep (whatever hibernation method
> > > we use) and PM_POST_HIBERNATION when we restore.
> > 
> > Well, that's not the way I read it. And testing also supports that.
> > 
> > Adding the above to your patch makes restore from suspend use < 3
> > seconds again.  Using only PM_HIBERNATION_PREPARE had no effect on the
> > restore from suspend time, still measured at around 15 seconds on my
> > laptop.
> 
> Hmm, that could be because suspend.c does PM_SUSPEND_PREPARE and
> hibernate.c does PM_HIBERNATION_PREPARE. So the statement
> 
> "PM_HIBERNATION_PREPARE  The system is going to hibernate or suspend,"
> 
> is wrong.

Yes, this is incorrect.  It should be "The system is going to hibernate".

> Hi Rafael, it seems to me that if we need to do something for both sleep
> methods, we have different notifier states and we have to add them both
> if we want to do stuff for both, correct?

Yes, that's correct.

The reason why is that hibernation does extra work between notifiers and
freezing drivers (also the "freezing" is not the same as "suspending").

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ