efi: disable mirror feature during crashkernel
authorMa Wupeng <mawupeng1@huawei.com>
Tue, 9 Jan 2024 04:15:36 +0000 (12:15 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 12 Jan 2024 23:20:47 +0000 (15:20 -0800)
If the system has no mirrored memory or uses crashkernel.high while
kernelcore=mirror is enabled on the command line then during crashkernel,
there will be limited mirrored memory and this usually leads to OOM.

To solve this problem, disable the mirror feature during crashkernel.

Link: https://lkml.kernel.org/r/20240109041536.3903042-1-mawupeng1@huawei.com
Signed-off-by: Ma Wupeng <mawupeng1@huawei.com>
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/mm_init.c

index 89dc29f..2c19f55 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/pgtable.h>
 #include <linux/swap.h>
 #include <linux/cma.h>
+#include <linux/crash_dump.h>
 #include "internal.h"
 #include "slab.h"
 #include "shuffle.h"
@@ -381,6 +382,11 @@ static void __init find_zone_movable_pfns_for_nodes(void)
                        goto out;
                }
 
+               if (is_kdump_kernel()) {
+                       pr_warn("The system is under kdump, ignore kernelcore=mirror.\n");
+                       goto out;
+               }
+
                for_each_mem_region(r) {
                        if (memblock_is_mirror(r))
                                continue;