mmu: get virtual alignment from physical address
On ARM64 platforms, when mapping multiple memory zones with size not multiple of a L2 block size (2MiB), all the following mappings will probably use L3 tables. And a huge mapping will consume all possible L3 tables. In order to reduce usage of L3 tables, this introduces a new arch_virt_region_align() optional architecture specific call to eventually return a more optimal virtual address alignment than the default MMU_PAGE_SIZE. This alignment is used in virt_region_alloc() by: - requesting more pages in virt_region_bitmap to make sure we request up to the possible aligned virtual address - freeing the supplementary pages used for alignment Suggested-by:Nicolas Pitre <npitre@baylibre.com> Signed-off-by:
Neil Armstrong <narmstrong@baylibre.com>
Loading
Please sign in to comment