arm64: mm: Create gigabyte kernel logical mappings where possible
We have the capability to map 1GB level 1 blocks when using a 4K granule. This patch adjusts the create_mapping logic s.t. when mapping physical memory on boot, we attempt to use a 1GB block if both the VA and PA start and end are 1GB aligned. This both reduces the levels of lookup required to resolve a kernel logical address, as well as reduces TLB pressure on cores that support 1GB TLB entries. Signed-off-by: Steve Capper <steve.capper@linaro.org> Tested-by: Jungseok Lee <jays.lee@samsung.com> [catalin.marinas@arm.com: s/prot_sect_kernel/PROT_SECT_NORMAL_EXEC/] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:

committed by
Catalin Marinas

parent
ba6bf8c85c
commit
206a2a73a6
@@ -29,6 +29,8 @@
|
||||
*/
|
||||
|
||||
#define PUD_TABLE_BIT (_AT(pgdval_t, 1) << 1)
|
||||
#define PUD_TYPE_MASK (_AT(pgdval_t, 3) << 0)
|
||||
#define PUD_TYPE_SECT (_AT(pgdval_t, 1) << 0)
|
||||
|
||||
/*
|
||||
* Level 2 descriptor (PMD).
|
||||
|
Reference in New Issue
Block a user