Suspend2 changelog.

Todo list for rc10:

TODO: Storage manager for swap writer.
TODO: Finish distcontig memory support.
TODO: Remove extra checks from mark_pages*
TODO: XFS compatible filewriter support.

2.2-rc9 - 5 November 2005

- Filewriter cleanups and bug fixes.
- Display stats when unable to allocate enough storage, to help diagnosing
  this issue.
- Some cleanups to e820 table support.
- Various small fixes to PPC support.
- Modifed BIO submission check to be smarter (use new Suspend2 flag in BIO
  flags).
- Add userspace storage manager (usm) support. Requires userspace program.
  None are available yet. This change included a separation of the netlink
  code from the userui code into a new file.
- Replace type * name with type *name everywhere.
- Made debugging code for driver suspend/resume calls more gentle
  (delay/print instead of BUG_ON().
- Don't mark image as resumed before when in KEEP_IMAGE made.
- Seek to address BUG_ONs being hit in marking a task as pageset1.
- Address some arch/config specific compilation warnings.
- Use kernel_power_off_prepare instead of device_shutdown when not entering
  suspend to ram.
- Thaw kernel processes before beginning to eat memory.
- Make freezer quiet by default.
- Export freezer state for when ext3 (eg) built as a module.
- Add news_storage_manager to proc entry info so that entries that needs
  access to storage for reading and/or writing can enable it as required.
  There is also a new activate_storage entry that can be used in a script to
  avoid having it repetitively enabled and disabled by a number of instructions.
	echo 1 >  /proc/suspend2/activate_storage
  at the start of the sequence and
	echo 0 > /proc/suspend2/activate_storage
  and the end.
- Correct bits in result code so hibernate script gives the correct
  interpretation again.
- Cleanup and simplify file management in the file writer. (Debugging printks
  left in for this release).
- Poke blanked console when resuming.
 
2.2-rc8 - October 3, 2005.

REQUIRES hibernate script 1.12 or newer. 

- Changed name of proc directory to suspend2.
- Removed suspend_drivers_init/cleanup
- Cleaned up debug_info entry
- Remove atomic_restore conflict check
- Stop tracking max extents used.
- put_extent. Just BUG_ON(!extent). Or don't handle.
- put_extent_chain remove if (!this) return
- Removed references to chain optimisation info
- Remove error messages in <load|serialise>_extent_chain (should
  come from real cause of err)
- attempt_to_parse_resume_device should return whether successful
- Merge plugin read/write inits/cleanups into one loop.
- Merge read & write routines into one generic I/O loop?
- Sanity check kernel version - macros for digits?
- Rename free_pagedir_data to free_extra_pagedir_memory. Don't reset pageset
  sizes there.
- Removed SetPageConflicting
- release_conflicting_pages: Delete. Not used.
- remove version info in proc.c
- Remove #ifdef CONFIG_SUSPEND2_DEFAULT_RESUME2 in suspend2
- compress <allocate|free>_bitmaps functions
- Remove #ifdef DEBUG_PAGE_ALLOC in suspend2.c
- can_suspend: if(DISABLED && !attempt_to_parse())
- Remove keep_metadata proc entry
- Use (DISABLED && !attempt_to_parse() in suspend2_resume, too.
- Removed unused fields used in io_info struct
- flush_dcache_page needed?
- Use put_page to free pages.
- Some extraneous comments removed.
- Removed header_data comment
- /*^N *^N *^N* ^N* ^N */
- Remove PRINTK in swapwriter
- Remove swapwriter file management?
- Cleaned up get_blocks_per_page in swapwriter
- Integrated get_path_for_swapfile to caller
- Parse signature - remove old pmdisk version support
- Removed unneeded extern int signature_check? (swapwriter:478)
- Cleaned up swapwriter_storage_allocated
- Remove space_requests = ((long) space_really_requested) << PAGE_SHIFT
- Remove allocate_header_space comment "was going to be in bytes"
- Simplified header space allocated calculation.
- Remove extra escape action in request_abort_suspend (not used and would
  be a problem anyway).
- Fix compile error for AMD64 SMP.
- Fix error in the filewriter.

2.2-rc7 - September 16 2005

- Further fixing of powerdown code. If !pm_ops, just use
  kernel_power_off.
- Use return code when freezing failure occurs.
- Make userui disabling effective.

2.2-rc6 - September 6 2005 (The Hamilton Release)

- Fix for corruption caused when failing to power down.
- Fix for failing to power down.
- Separated refrigerator changes from Suspend2 for separate
  merge.
- Misc other cleanups.

2.2-rc5 - September 2 2005
- Add more detailed debugging information regarding which
  driver re-enables interrupts and recover.
- Handle wrong userui interface version by resetting userui
  and continuing without it.
- Fix for powerdown issues.
- Ensure resumed before flag isn't unintentionally set when
  writing header.
- Seek to address trace given in refrigerator code.
- Complain if can't find the userui process number given
  for setting nofreeze.
- Fixed a bug in the swap allocation routine that would
  result in swap being allocated but not freed.

2.2-rc4 - August 30 2005

- Fixed bounding error in swapwriter device closing. This
  had 'interesting' side effects.
- Moved storing the console log level used to before asking
  the userui to cleanup, so that after suspending.
  default_console_loglevel contains the last one used, and
  not the original value.
- Fixed a mistake in include/asm-i386/suspend2.h that broke
  compilation for gcc 4 users.
- Made the refrigerator ignore Stopped processes again. Mea
  culpa. As always :|

2.2-rc3 - August 29 2005

- Modified error message for setting the blocksize to give
  some useful information.
- Fixed typo in todo_list_active calls in jfs_txnmgr.c
- Fixed size of blocksize storage in header. Thanks Ola!
- Merged in initramfs changes to filewriter. Added new state
  flag for resuming from initramfs and call from do_mounts_rd.c.
  Yet to test.
- Implemented communication of the netlink socket number to use
  to the userui program when invoking it. (Changes to commit to
  userui tree)
- Give more information and invalidate the image when we fail to
  initialise a filter at resume.
- Clean up console when failing to resume.
- Make escape and toggling pause and single step take effect
  immediately.
- Fixed log everything so that it does again.
- Expand userui message buffer from 80 to 255 characters.
- Fixed a silly bug when the header is not stored on the resume
  block device.
- Modify freezer implementation to signal all processes once,
  separate to waiting for them to enter the refrigerator. This
  will be more robust and quicker if/when the todo list gets used
  for other things.
- Modify userui version to 6.
- Move freeing of freezer notifier entry to post spinlock release.
- Fix compilation error when !SUSPEND2 & CRYPTO
- Fix missing ; in macro for !SUSPEND2

2.2-rc2 - August 24 2005
- Apply LZF 64 bit from Anders Fugmann.
- Complete transition to todo list and fix up jffs2.
- Temporary fix for gcc 4, telling it lies that we're
  not clobbering ebp. Something similar needed for other
  archs?

2.2-rc1 - August 23 2005
- Fixed problem with swapwriter buffer offset not being reset
  when beginning to write the image header.
- PPC fixes from Johannes Berg.
- Give a better message when can't initialise a compressor.
- Remove an unused variable from the pageset_sizes_result struct.
- Make Suspend still compile ok when networking is disabled.
  Userui won't work (it uses netlink), but suspending will.
  This will also be handy for embedded support.
- Say why we can't do userui when we can't open /dev/console
  (entirely possible when resuming from an initrd).

2.1.9.14 - August 22 2005
- Fixes for previous patch - base tree was slightly corrupted.
- Also fixed agp driver cleanups - humble apologies to ATI and
  Nvidia users.
- Small fixes for new bdev management code in swapwriter.

2.1.9.13 - August 20 2005
- Added support for Christoph Lameter's todo list changes.
- Reworked device setup at resume time.
- Began splitting up patches into many more changesets for
  the (to be made) git tree. I'll now ship the patch as one
  big patch.
- Miscellaneous other bug fixes and cleanups.

2.1.9.12 - August 4 2005
- Bug fixes for the refrigerator code
- Fixed bug in dyn_pageflags code that would cause an oops if
  allocating pageflags ever failed.
- Changed block io code to use kblockd_flush.
- Reworking of semantics for workqueue calls (merge work).

2.1.9.11 - July 30 2005
- More cleanups.

2.1.9.10 - July 23 2005
- Lots more cleanups and little fixes.
- Changed workqueue freezer implementation from using an extra parameter
  to using new routines with nofreeze in the name. Greatly reduces the
  number of files we touch.
- Remove SYNCTHREAD flag from kernel threads. It really means nothing.
  (They are frozen anyway, after real syncthreads).
- In the process of re-adding checksumming as a standalone patch. Not
  to be submitted.
- Cleaned up LZF. Removed macros and ifdefs.
- Started pushing patches.
- Renamed arch specific functions to include _arch_.
- Removed all_settings after asking how many people use it.
- Fixed up copyback thread spawning so as to ensure that the stack used
  is not in a conflicting page. We spwan new threads until one is ok.
  Each thread spawned will keep spawning other threads (with a delay)
  until one has a non conflicting page. This means you can end up with
  a large number of threads quickly. We guarantee that only one will
  continue on to the copyback. All others enter the freezer.

2.1.9.9 - July 8 2005
- Move suspend2_core directory contents up to kernel/power.
- Further work on x86_64 (more to be done before it can be tested).
- Lots of cleanups in response to premerge (I hope) comments. As part
  of this, converted a number of lists of #defined bit indices to
  enums. This will break saved all_settings files, so I bumped the
  version.
- Added debugging info to swapwriter to try and diagnose set block size
  oops some people are seeing.
