mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-30 22:03:17 +01:00
Currently arm64 allows a choice of FLATMEM, SPARSEMEM and SPARSEMEM_VMEMMAP. However, only the latter is tested regularly. FLATMEM does not seem to boot in certain configurations (guest under KVM with Qemu as a VMM). Since the reduction of the SECTION_SIZE_BITS to 27 (4K pages) or 29 (64K page), there's little argument against the memory wasted by the mem_map array with SPARSEMEM. Make SPARSEMEM_VMEMMAP the only available option, non-selectable, and remove the corresponding #ifdefs under arch/arm64/. Signed-off-by: Catalin Marinas <[email protected]> Cc: Will Deacon <[email protected]> Acked-by: Will Deacon <[email protected]> Acked-by: Ard Biesheuvel <[email protected]> Acked-by: Marc Zyngier <[email protected]> Reviewed-by: Anshuman Khandual <[email protected]> Acked-by: Mike Rapoport <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]>
30 lines
682 B
C
30 lines
682 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) 2012 ARM Ltd.
|
|
*/
|
|
#ifndef __ASM_SPARSEMEM_H
|
|
#define __ASM_SPARSEMEM_H
|
|
|
|
#define MAX_PHYSMEM_BITS CONFIG_ARM64_PA_BITS
|
|
|
|
/*
|
|
* Section size must be at least 512MB for 64K base
|
|
* page size config. Otherwise it will be less than
|
|
* (MAX_ORDER - 1) and the build process will fail.
|
|
*/
|
|
#ifdef CONFIG_ARM64_64K_PAGES
|
|
#define SECTION_SIZE_BITS 29
|
|
|
|
#else
|
|
|
|
/*
|
|
* Section size must be at least 128MB for 4K base
|
|
* page size config. Otherwise PMD based huge page
|
|
* entries could not be created for vmemmap mappings.
|
|
* 16K follows 4K for simplicity.
|
|
*/
|
|
#define SECTION_SIZE_BITS 27
|
|
#endif /* CONFIG_ARM64_64K_PAGES */
|
|
|
|
#endif
|