Thread (15 messages) flat view 15 messages, 3 authors, 2016-02-13
STALE3828d

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help