• Rafael J. Wysocki's avatar
    PM/Hibernate: Do not try to allocate too much memory too hard (rev. 2) · ef4aede3
    Rafael J. Wysocki authored
    We want to avoid attempting to free too much memory too hard during
    hibernation, so estimate the minimum size of the image to use as the
    lower limit for preallocating memory.
    The approach here is based on the (experimental) observation that we
    can't free more page frames than the sum of:
    * global_page_state(NR_SLAB_RECLAIMABLE)
    * global_page_state(NR_ACTIVE_ANON)
    * global_page_state(NR_INACTIVE_ANON)
    * global_page_state(NR_ACTIVE_FILE)
    * global_page_state(NR_INACTIVE_FILE)
    * global_page_state(NR_FILE_MAPPED)
    Namely, if this number is subtracted from the number of saveable
    pages in the system, we get a good estimate of the minimum reasonable
    size of a hibernation image.
    Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Acked-by: default avatarWu Fengguang <fengguang.wu@intel.com>
snapshot.c 59 KB