linux-kernel-test/Documentation/power
Rafael J. Wysocki 2aede851dd PM / Hibernate: Freeze kernel threads after preallocating memory
There is a problem with the current ordering of hibernate code which
leads to deadlocks in some filesystems' memory shrinkers.  Namely,
some filesystems use freezable kernel threads that are inactive when
the hibernate memory preallocation is carried out.  Those same
filesystems use memory shrinkers that may be triggered by the
hibernate memory preallocation.  If those memory shrinkers wait for
the frozen kernel threads, the hibernate process deadlocks (this
happens with XFS, for one example).

Apparently, it is not technically viable to redesign the filesystems
in question to avoid the situation described above, so the only
possible solution of this issue is to defer the freezing of kernel
threads until the hibernate memory preallocation is done, which is
implemented by this change.

Unfortunately, this requires the memory preallocation to be done
before the "prepare" stage of device freeze, so after this change the
only way drivers can allocate additional memory for their freeze
routines in a clean way is to use PM notifiers.

Reported-by: Christoph <cr2005@u-club.de>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2011-10-16 23:28:52 +02:00
..
regulator regulator: Remove supply_regulator_dev from machine configuration 2011-05-27 10:34:37 +01:00
00-INDEX PM: Introduce library for device-specific OPPs (v7) 2010-10-17 01:57:50 +02:00
apm-acpi.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
basic-pm-debugging.txt PM / Suspend: Add statistics debugfs file for suspend to RAM 2011-10-16 23:27:45 +02:00
devices.txt PM / Hibernate: Freeze kernel threads after preallocating memory 2011-10-16 23:28:52 +02:00
drivers-testing.txt PM: Fix references to basic-pm-debugging.txt in drivers-testing.txt 2010-12-24 15:02:41 +01:00
freezing-of-tasks.txt freezer: do not send signals to kernel threads 2007-10-18 14:37:19 -07:00
interface.txt PM / Hibernate: Make default image size depend on total RAM size 2010-10-17 01:57:43 +02:00
notifiers.txt PM: Allow drivers to allocate memory from .prepare() callbacks safely 2011-05-17 23:26:00 +02:00
opp.txt PM / OPP: Introduce function to free cpufreq table 2011-07-15 23:58:18 +02:00
pci.txt PM/PCI: Update PCI power management documentation 2010-05-18 15:01:58 -07:00
pm_qos_interface.txt PM / QoS: Update Documentation for the pm_qos and dev_pm_qos frameworks 2011-10-04 21:54:45 +02:00
power_supply_class.txt power_supply: Add a charge_type property, and use it for olpc driver 2009-07-02 18:14:37 +04:00
runtime_pm.txt Merge branch 'pm-runtime' into pm-for-linus 2011-10-16 23:26:49 +02:00
s2ram.txt PM: Add sysfs attr for rechecking dev hash from PM trace 2010-10-17 01:57:50 +02:00
states.txt PM: Documentation/power/states.txt: fix repetition 2011-03-15 00:43:17 +01:00
swsusp-and-swap-files.txt typo fixes 2007-10-20 01:34:40 +02:00
swsusp-dmcrypt.txt
swsusp.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
tricks.txt update email address 2010-07-19 10:56:54 +02:00
userland-swsusp.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
video_extension.txt
video.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00