Time to harpoon the "Suspend2 changes things lots of things" myth.

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

 



Hi all.

Here's a diff stat of the core changes for Suspend2:

 Documentation/kernel-parameters.txt |    8 
 Documentation/power/internals.txt   |  360 ++++++++++
 Documentation/power/suspend2.txt    |  631 ++++++++++++++++++
 arch/arm/mm/init.c                  |   15 
 arch/x86_64/kernel/e820.c           |   17 
 arch/x86_64/kernel/suspend.c        |    6 
 arch/x86_64/mm/init.c               |   19 
 block/ll_rw_blk.c                   |   19 
 include/asm-arm/hw_irq.h            |    4 
 include/asm-arm/suspend2.h          |  136 ++++
 include/asm-i386/suspend2.h         |  288 ++++++++
 include/asm-x86_64/page.h           |    2 
 include/asm-x86_64/suspend.h        |    2 
 include/linux/bio.h                 |    1 
 include/linux/dyn_pageflags.h       |   66 +
 include/linux/kernel.h              |    2 
 include/linux/netlink.h             |    2 
 include/linux/suspend.h             |    9 
 include/linux/suspend2.h            |  231 ++++++
 init/do_mounts.c                    |   28 
 init/do_mounts_initrd.c             |    9 
 init/main.c                         |    4 
 kernel/fork.c                       |    9 
 kernel/power/Kconfig                |   73 ++
 kernel/power/Makefile               |   25 
 kernel/power/atomic_copy.c          |  473 ++++++++++++++
 kernel/power/atomic_copy.h          |    4 
 kernel/power/block_io.h             |   76 ++
 kernel/power/checksum.h             |   11 
 kernel/power/compression.c          |  638 ++++++++++++++++++
 kernel/power/debug_pagealloc.c      |  111 +++
 kernel/power/debug_pagealloc.h      |    3 
 kernel/power/encryption.c           |  597 +++++++++++++++++
 kernel/power/extent.c               |  247 +++++++
 kernel/power/extent.h               |  105 +++
 kernel/power/io.c                   | 1026 ++++++++++++++++++++++++++++++
 kernel/power/io.h                   |   38 +
 kernel/power/modules.c              |  312 +++++++++
 kernel/power/modules.h              |  180 +++++
 kernel/power/netlink.c              |  365 ++++++++++
 kernel/power/netlink.h              |   43 +
 kernel/power/pagedir.c              |  370 ++++++++++
 kernel/power/pagedir.h              |   37 +
 kernel/power/pageflags.c            |  150 ++++
 kernel/power/pageflags.h            |   86 ++
 kernel/power/power.h                |    4 
 kernel/power/power_off.c            |   79 ++
 kernel/power/power_off.h            |   13 
 kernel/power/prepare_image.c        |  753 ++++++++++++++++++++++
 kernel/power/prepare_image.h        |   31 
 kernel/power/proc.c                 |  305 +++++++++
 kernel/power/proc.h                 |   70 ++
 kernel/power/snapshot.c             |    2 
 kernel/power/storage.c              |  323 +++++++++
 kernel/power/storage.h              |   21 
 kernel/power/suspend.c              | 1133 +++++++++++++++++++++++++++++++++
 kernel/power/suspend.h              |   28 
 kernel/power/suspend2.h             |   31 
 kernel/power/suspend2_common.h      |   25 
 kernel/power/suspend_block_io.c     | 1086 ++++++++++++++++++++++++++++++++
 kernel/power/suspend_checksums.c    |  509 +++++++++++++++
 kernel/power/suspend_file.c         | 1077 +++++++++++++++++++++++++++++++
 kernel/power/suspend_swap.c         | 1213 +++++++==> (Trunc'd for word wrap)
 kernel/power/swsusp.c               |    4 
 kernel/power/swsusp.h               |   24 
 kernel/power/ui.c                   |  853 +++++++++++++++++++++++++
 kernel/power/ui.h                   |   44 +
 kernel/power/version.h              |    2 
 lib/Kconfig                         |    3 
 lib/Makefile                        |    2 
 lib/dyn_pageflags.c                 |  330 +++++++++
 lib/vsprintf.c                      |   28 
 mm/memory.c                         |    9 
 73 files changed, 14823 insertions(+), 17 deletions(-)

As you can see, nearly everything is in the new kernel/power files and arch 
specific code.

But, you might say, if I download a pacakage from suspend2.net, my diffstat 
looks quite different. Yes. that's because that packaging also includes 
related, noncore improvements such as refrigerator improvements, cryptoapi 
lzf support and driver fixes that aren't upstream yet. The refrigerator 
improvements especially cause a blowout in the number of files affected by 
the patch.

I'm sure the above will also lead to the question "Why is it so big compared 
to swsusp?" That's because Suspend2 supports the following features the 
swsusp currently lacks:

- Writing to more than one swap file/partition in an image.
- Writing to ordinary files instead of to swap.
- Asynchronous I/O
- Readahead for synchronous I/O
- Optional compression and encryption via cryptoapi
- An optional userspace user interface, controlled via a netlink socket.
- Reconfiguring without rebooting.
- Save a full image of memory (or...)
- Set an arbitrary soft upper limit on the size of the image
- Press escape to cancel suspending to disk at any time during writing the 
image.
- Disable cancelling via a proc entry if want to.
- Configure encryption anyway you want - all settings are simply passed 
through.
- Testing settings that can be used to benchmark and issues
- Support for userui storage manager (eg for managing network connections when 
writing the image to the network)
- Documentation. Not perfect, but it adds to the size of the code too.

Regards,

Nigel

Attachment: pgpDgX2qYvy1G.pgp
Description: PGP signature


[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux