diff options
author | 2022-06-14 17:21:56 +0800 | |
---|---|---|
committer | 2022-06-15 12:14:33 +0200 | |
commit | 902c2d91582c7ff0cb5f57ffb3766656f9b910c6 (patch) | |
tree | 23ecc9193e48b64428a3eb054cc660a68645955a /mm/internal.h | |
parent | arm64: mm: Only remove nomap flag for initrd (diff) | |
download | linux-902c2d91582c7ff0cb5f57ffb3766656f9b910c6.tar.gz linux-902c2d91582c7ff0cb5f57ffb3766656f9b910c6.tar.bz2 linux-902c2d91582c7ff0cb5f57ffb3766656f9b910c6.zip |
memblock: Disable mirror feature if kernelcore is not specified
If system have some mirrored memory and mirrored feature is not specified
in boot parameter, the basic mirrored feature will be enabled and this will
lead to the following situations:
- memblock memory allocation prefers mirrored region. This may have some
unexpected influence on numa affinity.
- contiguous memory will be split into several parts if parts of them
is mirrored memory via memblock_mark_mirror().
To fix this, variable mirrored_kernelcore will be checked in
memblock_mark_mirror(). Mark mirrored memory with flag MEMBLOCK_MIRROR iff
kernelcore=mirror is added in the kernel parameters.
Signed-off-by: Ma Wupeng <mawupeng1@huawei.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20220614092156.1972846-6-mawupeng1@huawei.com
Acked-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'mm/internal.h')
-rw-r--r-- | mm/internal.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/internal.h b/mm/internal.h index c0f8fbe0445b..ddd2d6a46f1b 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -861,4 +861,6 @@ struct folio *try_grab_folio(struct page *page, int refs, unsigned int flags); DECLARE_PER_CPU(struct per_cpu_nodestat, boot_nodestats); +extern bool mirrored_kernelcore; + #endif /* __MM_INTERNAL_H */ |