Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a64fc82c authored by Wonhong Kwon's avatar Wonhong Kwon Committed by Rafael J. Wysocki
Browse files

PM / hibernate: exclude freed pages from allocated pages printout



hibernate_preallocate_memory() prints out that how many pages are
allocated, but it doesn't take into consideration the pages freed by
free_unnecessary_pages(). Therefore, it always shows the count more
than actually allocated.

Signed-off-by: default avatarWonhong Kwon <wonhong.kwon@lge.com>
[ rjw: Subject ]
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent c9257f78
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -1472,9 +1472,9 @@ static inline unsigned long preallocate_highmem_fraction(unsigned long nr_pages,
/**
 * free_unnecessary_pages - Release preallocated pages not needed for the image
 */
static void free_unnecessary_pages(void)
static unsigned long free_unnecessary_pages(void)
{
	unsigned long save, to_free_normal, to_free_highmem;
	unsigned long save, to_free_normal, to_free_highmem, free;

	save = count_data_pages();
	if (alloc_normal >= save) {
@@ -1495,6 +1495,7 @@ static void free_unnecessary_pages(void)
		else
			to_free_normal = 0;
	}
	free = to_free_normal + to_free_highmem;

	memory_bm_position_reset(&copy_bm);

@@ -1518,6 +1519,8 @@ static void free_unnecessary_pages(void)
		swsusp_unset_page_free(page);
		__free_page(page);
	}

	return free;
}

/**
@@ -1707,7 +1710,7 @@ int hibernate_preallocate_memory(void)
	 * pages in memory, but we have allocated more.  Release the excessive
	 * ones now.
	 */
	free_unnecessary_pages();
	pages -= free_unnecessary_pages();

 out:
	stop = ktime_get();