summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_hibernate.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* fix a corner case in rle processing where the rle byte was the last bytemlarkin2011-11-181-1/+27
| | | | being written to an output buffer
* physmem run length encoding (rle) for hibernate - don't compress or writemlarkin2011-11-171-9/+84
| | | | pages that are free
* Reduce use of globals in hibernate code.mlarkin2011-11-161-76/+43
| | | | discussed with deraadt@
* on failure, hibernate io functions return an errno. not 1.deraadt2011-11-151-4/+4
|
* Use a fixed io_page for all hibernate I/O, which is needed formlarkin2011-11-141-46/+35
| | | | | | | ahci_hibernate_io, a skeleton of which is also provided in this diff. This code is from deraadt@. Tested on a few wd machines to ensure it works there as well.
* Add some #defines for the various hibernate I/O modes, some of themlarkin2011-11-131-7/+7
| | | | | | groundwork for *_hibernate_io functions other than wd_hibernate_io These changes were sent to me by deraadt@
* In hibernate resume, free the piglet and other VAs we allocated duringmlarkin2011-11-131-2/+22
| | | | | | suspend. ok pirofti@
* Fix a handful of bugs that were causing reboots and other bad behaviormlarkin2011-11-131-41/+60
| | | | during hibernate resumes.
* KNF of mlarkin's code, requested by him. Some improvements to the interfacederaadt2011-09-221-201/+171
| | | | | for talking to the disk driver snuck in. ok mlarkin
* Cleanup page calculation for final memory chunk ordering list formlarkin2011-09-211-6/+7
| | | | hibernate resume.
* Perform most of the remaining refactoring of hibernate code intomlarkin2011-09-211-81/+897
| | | | | | | | | | MI/MD parts. This also introduces a chunk placement routine that was originally developed at c2k11 with help from drahn and ariane. There are still a few more things to do for hibernate, but those can be worked on in-tree. This code is disabled by default, and not yet called. ok deraadt@ (and deraadt@ said kettenis@ also ok'ed it :) )
* Allocations fit if [the end of free space] >= [the end of allocated space].ariane2011-07-181-2/+2
| | | | Change > in comparison to >=.
* Fix uvm_pmr_alloc_piglet.ariane2011-07-181-5/+1
| | | | | A wrong check could cause the piglet allocator to attempt to extract memory from a range in which the alignment caused it not to fit.
* Add hibernate_read_block and fix a couple of typos in the previous commit.mlarkin2011-07-111-1/+67
|
* Call (temporarily, until we have RLE page encoding) uvm_pmr_zero_everythingmlarkin2011-07-091-1/+32
| | | | | | on suspend to ensure we get good zlib compression. Add MI signature block (hibernate_info) comparison routine
* Extract hibernate_write_signature and hibernate_clear_signature to the MImlarkin2011-07-091-1/+123
| | | | hibernate code, and add chunk range overlap checking.
* Extract MI pmap function hibernate_enter_resume_mapping, refactor old i386mlarkin2011-07-091-7/+83
| | | | | | | | resume pmap code to match. Add hibernate deflater and inflater and cache flush routines. Code is not presently called or automatically built.
* Add zlib reset, alloc, and free functions for hibernate image compressionmlarkin2011-07-091-1/+28
|
* Separate some MD and MI bits and a bit of refactoring to make subsequentmlarkin2011-07-091-2/+74
| | | | | | | | commits easier. Work in progress, hibernate will still not work for you. ok deraadt@
* no reason to zero pages we are about to mark dirtyariane2011-07-081-5/+2
|
* Ensure all pages in pmemrange can be marked as dirty.ariane2011-07-081-1/+42
| | | | | | | It'd be a very bad idea to hand out dirty pages as zeroed, just because we came back from hibernate. No callers at the moment, will be called on hibernate resume path.
* Put in RLE logic for hibernate compressor.ariane2011-07-081-1/+34
| | | | | | | These have the potential to compress 1MB of physmem into 1 byte. This works by noting the page is not in use and therefor skipping it. Needed by mlarkin@ for hibernate. No callers yet.
* Change pig allocator to a highest-address selection.ariane2011-07-081-27/+172
| | | | | | Add piglet allocator, which does a lowest-address selection. No callers yet, needed by mlarkin@ for hibernate voodoo.
* Move uvm_pmr_alloc_pig to kern/subr_hibernate.cariane2011-07-081-1/+45
| | | | No callers, no functional change.
* Move uvm_pmr_zero_everything() to subr_hibernate.ariane2011-07-081-1/+41
| | | | | | | This function will probably die before ever being called from the in-tree code, since hibernate will move to RLE encoding. No functional change, function had no callers.
* Move hiballoc to hibernate.h, subr_hibernate.cariane2011-07-081-0/+224
Next few commits will move other hibernate-specific functionality, like the pig-allocator, to subr_hibernate. No functional change, no callers either.