[PATCH 1/2] arm64: mm: Enable CONT_SIZE aligned sections for 64k page kernels.
From: Ard Biesheuvel <hidden>
Date: 2016-02-12 16:28:36
On 12 February 2016 at 17:21, Jeremy Linton [off-list ref] wrote:
On 02/12/2016 10:11 AM, Ard Biesheuvel wrote:quoted
On 12 February 2016 at 17:06, Jeremy Linton [off-list ref] wrote:(trimming)quoted
quoted
#if defined(CONFIG_DEBUG_ALIGN_RODATA) -#define ALIGN_DEBUG_RO . = ALIGN(1<<SECTION_SHIFT); -#define ALIGN_DEBUG_RO_MIN(min) ALIGN_DEBUG_RO +#if defined(CONFIG_ARM64_64K_PAGES) +#define ALIGN_DEBUG_RO_MIN(min) . = ALIGN(CONT_SIZE); +#else +#define ALIGN_DEBUG_RO_MIN(min) . = ALIGN(SECTION_SIZE);Doesn't this align to 32 MB on 16k pages kernels?Yes, I considered whether it was more appropriate to use CONT_SIZE for 16k as well. Opinions?
Looking at vmlinux.lds.S, I see that that would put _stext and __init_begin at 32 MB aligned boundaries. making the size of the kernel at least 64 MB. If I take your .rodata patch into account, which adds a third instance of ALIGN_DEBUG_RO_MIN, the Image footprint will rise to ~100 MB. Or am I missing something?
quoted
quoted
+#endif #elif defined(CONFIG_DEBUG_RODATA) -#define ALIGN_DEBUG_RO . = ALIGN(1<<PAGE_SHIFT); -#define ALIGN_DEBUG_RO_MIN(min) ALIGN_DEBUG_RO +#define ALIGN_DEBUG_RO_MIN(min) . = ALIGN(PAGE_SIZE); #else -#define ALIGN_DEBUG_RO #define ALIGN_DEBUG_RO_MIN(min) . = ALIGN(min); #endif -- 2.4.3