2024-01-09 04:16:02

by mawupeng

[permalink] [raw]
Subject: [PATCH] efi: Disable mirror feature during crashkernel

From: Ma Wupeng <[email protected]>

If system have no mirrored memory or use crashkernel.high while
kernelcore=mirror is enabled in cmdline, during crashkernel,
there will be limited mirrored memory and this usually lead to
OOM.

To solve this problem, disable mirror feature during crashkernel.

Signed-off-by: Ma Wupeng <[email protected]>
---
mm/mm_init.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/mm/mm_init.c b/mm/mm_init.c
index 077bfe393b5e..513bad672708 100644
--- a/mm/mm_init.c
+++ b/mm/mm_init.c
@@ -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;
--
2.25.1



2024-01-09 06:05:41

by Mike Rapoport

[permalink] [raw]
Subject: Re: [PATCH] efi: Disable mirror feature during crashkernel

On Tue, Jan 09, 2024 at 12:15:36PM +0800, Wupeng Ma wrote:
> From: Ma Wupeng <[email protected]>
>
> If system have no mirrored memory or use crashkernel.high while
> kernelcore=mirror is enabled in cmdline, during crashkernel,
> there will be limited mirrored memory and this usually lead to
> OOM.
>
> To solve this problem, disable mirror feature during crashkernel.
>
> Signed-off-by: Ma Wupeng <[email protected]>

Acked-by: Mike Rapoport (IBM) <[email protected]>

> ---
> mm/mm_init.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/mm/mm_init.c b/mm/mm_init.c
> index 077bfe393b5e..513bad672708 100644
> --- a/mm/mm_init.c
> +++ b/mm/mm_init.c
> @@ -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;
> --
> 2.25.1
>

--
Sincerely yours,
Mike.