[tip: x86/mm] x86/mm/64: Update comment in preallocate_vmalloc_pages()

From: tip-bot2 for Joerg Roedel
Date: Sat Aug 15 2020 - 17:58:08 EST


The following commit has been merged into the x86/mm branch of tip:

Commit-ID: 7a27ef5e83089090f3a4073a9157c862ef00acfc
Gitweb: https://git.kernel.org/tip/7a27ef5e83089090f3a4073a9157c862ef00acfc
Author: Joerg Roedel <jroedel@xxxxxxx>
AuthorDate: Fri, 14 Aug 2020 17:19:47 +02:00
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitterDate: Sat, 15 Aug 2020 13:56:16 +02:00

x86/mm/64: Update comment in preallocate_vmalloc_pages()

The comment explaining why 4-level systems only need to allocate on
the P4D level caused some confustion. Update it to better explain why
on 4-level systems the allocation on PUD level is necessary.

Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
Link: https://lore.kernel.org/r/20200814151947.26229-3-joro@xxxxxxxxxx
---
arch/x86/mm/init_64.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 777d835..b5a3fa4 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -1252,14 +1252,19 @@ static void __init preallocate_vmalloc_pages(void)
if (!p4d)
goto failed;

- /*
- * With 5-level paging the P4D level is not folded. So the PGDs
- * are now populated and there is no need to walk down to the
- * PUD level.
- */
if (pgtable_l5_enabled())
continue;

+ /*
+ * The goal here is to allocate all possibly required
+ * hardware page tables pointed to by the top hardware
+ * level.
+ *
+ * On 4-level systems, the P4D layer is folded away and
+ * the above code does no preallocation. Below, go down
+ * to the pud _software_ level to ensure the second
+ * hardware level is allocated on 4-level systems too.
+ */
lvl = "pud";
pud = pud_alloc(&init_mm, p4d, addr);
if (!pud)