mirror of
https://abf.rosa.ru/djam/kernel-5.10.git
synced 2025-02-25 01:32:48 +00:00
Partially revert mainline commit 92923ca to fix a regression
The following commit seems to cause problems with hibernation on 32-bit systems: commit 92923ca3aacef63c92dc297a75ad0c6dfe4eab37 Author: Nathan Zimmer <nzimmer@sgi.com> Date: Tue Jun 30 14:56:48 2015 -0700 mm: meminit: only set page reserved in the memblock region Without this commit, it takes less than 10-15 seconds on our test system (https://linux-hardware.org/index.php?probe=e6a06c64c7) from "systemctl hibernate" command till the system powers off. With the mainline kernels 4.2-4.7, the system resumes OK. With this commit, it takes more than 2 minutes for that system to hibernate and it usually hangs on resume. Let us revert the main parts of this commit in the 32-bit kernels for now.
This commit is contained in:
parent
3e203e9f79
commit
80c29b9ae6
2 changed files with 50 additions and 0 deletions
|
@ -167,6 +167,9 @@ Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kve
|
||||||
Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kversion}.sign
|
Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kversion}.sign
|
||||||
|
|
||||||
# ROSA-specific patches
|
# ROSA-specific patches
|
||||||
|
%ifarch %{ix86}
|
||||||
|
Patch10: revert-mm-meminit-only-set-page-reserved-in-the-memblock-re.patch
|
||||||
|
%endif
|
||||||
|
|
||||||
# Adds explicit linking of the Perf Python extension with libdl, thus fixing
|
# Adds explicit linking of the Perf Python extension with libdl, thus fixing
|
||||||
# the build.
|
# the build.
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
The following commit seems to cause problems with hibernation on 32-bit
|
||||||
|
systems:
|
||||||
|
|
||||||
|
commit 92923ca3aacef63c92dc297a75ad0c6dfe4eab37
|
||||||
|
Author: Nathan Zimmer <nzimmer@sgi.com>
|
||||||
|
Date: Tue Jun 30 14:56:48 2015 -0700
|
||||||
|
|
||||||
|
mm: meminit: only set page reserved in the memblock region
|
||||||
|
|
||||||
|
Without this commit, it takes less than 10-15 seconds on our test system
|
||||||
|
(https://linux-hardware.org/index.php?probe=e6a06c64c7) from
|
||||||
|
"systemctl hibernate" command till the system powers off. With the mainline
|
||||||
|
kernels 4.2-4.7, the system resumes OK.
|
||||||
|
|
||||||
|
With this commit, it takes more than 2 minutes for that system to hibernate
|
||||||
|
and it usually hangs on resume.
|
||||||
|
|
||||||
|
Let us revert the main parts of this commit in the 32-bit kernels for now.
|
||||||
|
|
||||||
|
Signed-off-by: Evgenii Shatokhin <eugene.shatokhin@rosalab.ru>
|
||||||
|
|
||||||
|
diff --git a/mm/nobootmem.c b/mm/nobootmem.c
|
||||||
|
index 487dad6..cfd91fa 100644
|
||||||
|
--- a/mm/nobootmem.c
|
||||||
|
+++ b/mm/nobootmem.c
|
||||||
|
@@ -134,9 +134,6 @@ static unsigned long __init free_low_memory_core_early(void)
|
||||||
|
|
||||||
|
memblock_clear_hotplug(0, -1);
|
||||||
|
|
||||||
|
- for_each_reserved_mem_region(i, &start, &end)
|
||||||
|
- reserve_bootmem_region(start, end);
|
||||||
|
-
|
||||||
|
/*
|
||||||
|
* We need to use NUMA_NO_NODE instead of NODE_DATA(0)->node_id
|
||||||
|
* because in some case like Node0 doesn't have RAM installed
|
||||||
|
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
|
||||||
|
index f3e0c69..ca32c26 100644
|
||||||
|
--- a/mm/page_alloc.c
|
||||||
|
+++ b/mm/page_alloc.c
|
||||||
|
@@ -1168,6 +1168,7 @@ static void __meminit __init_single_page(struct page *page, unsigned long pfn,
|
||||||
|
init_page_count(page);
|
||||||
|
page_mapcount_reset(page);
|
||||||
|
page_cpupid_reset_last(page);
|
||||||
|
+ SetPageReserved(page);
|
||||||
|
|
||||||
|
INIT_LIST_HEAD(&page->lru);
|
||||||
|
#ifdef WANT_PAGE_VIRTUAL
|
Loading…
Add table
Reference in a new issue