Re: [PATCH v7 1/3] x86/mm: Adapt MODULES_END based on Fixmap section size

From: Ingo Molnar
Date: Thu Mar 16 2017 - 04:10:28 EST



* Thomas Garnier <thgarnie@xxxxxxxxxx> wrote:

> This patch aligns MODULES_END to the beginning of the Fixmap section.
> It optimizes the space available for both sections. The address is
> pre-computed based on the number of pages required by the Fixmap
> section.
>
> It will allow GDT remapping in the Fixmap section. The current
> MODULES_END static address does not provide enough space for the kernel
> to support a large number of processors.
>
> Signed-off-by: Thomas Garnier <thgarnie@xxxxxxxxxx>
> ---
> Based on next-20170308
> ---
> Documentation/x86/x86_64/mm.txt | 5 ++++-
> arch/x86/include/asm/pgtable_64_types.h | 3 ++-
> arch/x86/kernel/module.c | 1 +
> arch/x86/mm/dump_pagetables.c | 1 +
> arch/x86/mm/kasan_init_64.c | 1 +
> mm/vmalloc.c | 1 +

> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -35,6 +35,7 @@
> #include <linux/uaccess.h>
> #include <asm/tlbflush.h>
> #include <asm/shmparam.h>
> +#include <asm/fixmap.h>
>
> #include "internal.h"

Note that asm/fixmap.h is an x86-ism that isn't present in many other
architectures, so this hunk will break the build.

To make progress with these patches I've fixed it up with an ugly #ifdef
CONFIG_X86, but it needs a real solution instead before this can be pushed
upstream.

Thanks,

Ingo

=====================>
mm/vmalloc.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index dabea6a29fad..b7d2a23349f4 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -35,7 +35,10 @@
#include <linux/uaccess.h>
#include <asm/tlbflush.h>
#include <asm/shmparam.h>
-#include <asm/fixmap.h>
+
+#ifdef CONFIG_X86
+# include <asm/fixmap.h>
+#endif

#include "internal.h"