~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/power/swsusp-and-swap-files.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 ===============================================
  2 Using swap files with software suspend (swsusp)
  3 ===============================================
  4 
  5         (C) 2006 Rafael J. Wysocki <rjw@sisk.pl>
  6 
  7 The Linux kernel handles swap files almost in the same way as it handles swap
  8 partitions and there are only two differences between these two types of swap
  9 areas:
 10 (1) swap files need not be contiguous,
 11 (2) the header of a swap file is not in the first block of the partition that
 12 holds it.  From the swsusp's point of view (1) is not a problem, because it is
 13 already taken care of by the swap-handling code, but (2) has to be taken into
 14 consideration.
 15 
 16 In principle the location of a swap file's header may be determined with the
 17 help of appropriate filesystem driver.  Unfortunately, however, it requires the
 18 filesystem holding the swap file to be mounted, and if this filesystem is
 19 journaled, it cannot be mounted during resume from disk.  For this reason to
 20 identify a swap file swsusp uses the name of the partition that holds the file
 21 and the offset from the beginning of the partition at which the swap file's
 22 header is located.  For convenience, this offset is expressed in <PAGE_SIZE>
 23 units.
 24 
 25 In order to use a swap file with swsusp, you need to:
 26 
 27 1) Create the swap file and make it active, eg.::
 28 
 29     # dd if=/dev/zero of=<swap_file_path> bs=1024 count=<swap_file_size_in_k>
 30     # mkswap <swap_file_path>
 31     # swapon <swap_file_path>
 32 
 33 2) Use an application that will bmap the swap file with the help of the
 34 FIBMAP ioctl and determine the location of the file's swap header, as the
 35 offset, in <PAGE_SIZE> units, from the beginning of the partition which
 36 holds the swap file.
 37 
 38 3) Add the following parameters to the kernel command line::
 39 
 40     resume=<swap_file_partition> resume_offset=<swap_file_offset>
 41 
 42 where <swap_file_partition> is the partition on which the swap file is located
 43 and <swap_file_offset> is the offset of the swap header determined by the
 44 application in 2) (of course, this step may be carried out automatically
 45 by the same application that determines the swap file's header offset using the
 46 FIBMAP ioctl)
 47 
 48 OR
 49 
 50 Use a userland suspend application that will set the partition and offset
 51 with the help of the SNAPSHOT_SET_SWAP_AREA ioctl described in
 52 Documentation/power/userland-swsusp.rst (this is the only method to suspend
 53 to a swap file allowing the resume to be initiated from an initrd or initramfs
 54 image).
 55 
 56 Now, swsusp will use the swap file in the same way in which it would use a swap
 57 partition.  In particular, the swap file has to be active (ie. be present in
 58 /proc/swaps) so that it can be used for suspending.
 59 
 60 Note that if the swap file used for suspending is deleted and recreated,
 61 the location of its header need not be the same as before.  Thus every time
 62 this happens the value of the "resume_offset=" kernel command line parameter
 63 has to be updated.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php