Re: Re: Hibernate after alarm wakes from STR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi.

On Wednesday 11 July 2007 11:59:48 Matthew Garrett wrote:
> On Wed, Jul 11, 2007 at 11:39:37AM +1000, Nigel Cunningham wrote:
> 
> > Yeah, that is a bit confusing. At the moment, I'm doing the suspend to ram 
> > platform dependent preparation and cleanup in this scenario. That's 
> > definitely the right thing to do in the case where we write an image, then 
> > suspend to ram, wake and continue working without running running out of 
> > battery (writing the image is redundant in that case). Where we end up 
> > properly powering down after suspending to ram, I believe we don't run the 
> > pm_ops->finish after doing the atomic restore when resuming the image.
> 
> I'm not convinced this can work terribly well. It's not unlikely that 
> hardware will need different state stored over different types of 
> suspend. Can you separate out the saving of kernel memory and userspace 
> memory, then resume/suspend/save the new kernel state without touching 
> the userspace state?

Yeah, we could redo and resave the atomic copy, but it doesn't seem to be 
necessary at the moment; it has been working reliably, regardless of which 
combination of events occurs. If/when I come across a case where we have 
problems, I'll give resaving the atomic copy a go.

(Thinks some more). Ah, I think we're already doing the right thing, if I'm 
recalling the order of actions right. If I'm remembering correctly, prior to 
the atomic copy, we do hibernation prep, then after the atomic copy, 
hibernation cleanup. Then, if suspending to ram, we do the prep/enter/cleanup 
after the image has finished writing. If we lose power from suspend to ram, 
it doesn't matter because we're just doing a normal resume then, with the 
hibernation cleanup post atomic restore machine the prep that was done prior 
to the atomic copy.

To summarise:

Hibernate + STR + full wake.
 Hibernation prep
 (Atomic copy)
 Hibernation cleanup
 STR prep
 STR enter
 STR cleanup		
 Remove hibernation image

Hibernate + STR + poweroff + hibernate resume:

 Hibernation prep
 (Atomic copy)
 Hibernation cleanup
 STR prep
 STR enter
 <power out> or <STR wake + power off> (STR prep/enter no longer matters)
 (Fresh boot)
 Atomic restore
 Hibernation cleanup (matching prep at start)
 Remove hibernation image

Regards,

Nigel
-- 
See http://www.tuxonice.net for Howtos, FAQs, mailing
lists, wiki and bugzilla info.

Attachment: pgp31bx0nAJgU.pgp
Description: PGP signature

_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm

[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux