Thread (32 messages) 32 messages, 10 authors, 2025-03-15

Re: [PATCH 07/13] s390: make setup_zero_pages() use memblock

From: Ard Biesheuvel <ardb@kernel.org>
Date: 2025-03-12 15:57:13
Also in: linux-alpha, linux-arch, linux-m68k, linux-mips, linux-mm, linux-riscv, linux-s390, linux-sh, linux-um, lkml, loongarch, sparclinux

On Tue, 11 Mar 2025 at 06:56, Mike Rapoport [off-list ref] wrote:
quoted hunk ↗ jump to hunk
On Fri, Mar 07, 2025 at 04:28:15PM +0100, Heiko Carstens wrote:
quoted
On Thu, Mar 06, 2025 at 08:51:17PM +0200, Mike Rapoport wrote:
quoted
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>

Allocating the zero pages from memblock is simpler because the memory is
already reserved.

This will also help with pulling out memblock_free_all() to the generic
code and reducing code duplication in arch::mem_init().

Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
---
 arch/s390/mm/init.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)
Acked-by: Heiko Carstens <hca@linux.ibm.com>
quoted
-   empty_zero_page = __get_free_pages(GFP_KERNEL | __GFP_ZERO, order);
+   empty_zero_page = (unsigned long)memblock_alloc(PAGE_SIZE << order, order);
    if (!empty_zero_page)
            panic("Out of memory in setup_zero_pages");
This could have been converted to memblock_alloc_or_panic(), but I
guess this can also be done at a later point in time.
Duh, I should have remembered about memblock_alloc_or_panic() :)

@Andrew, can you please pick this as a fixup?

From 344fec8519e5152c25809c9277b54a68f9cde0e9 Mon Sep 17 00:00:00 2001
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Date: Tue, 11 Mar 2025 07:51:27 +0200
Subject: [PATCH] s390: use memblock_alloc_or_panic() in setup_zero_page()

Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
---
 arch/s390/mm/init.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c
index ab8ece3c41f1..c6a97329d7e7 100644
--- a/arch/s390/mm/init.c
+++ b/arch/s390/mm/init.c
@@ -81,9 +81,7 @@ static void __init setup_zero_pages(void)
        while (order > 2 && (total_pages >> 10) < (1UL << order))
                order--;

-       empty_zero_page = (unsigned long)memblock_alloc(PAGE_SIZE << order, order);
-       if (!empty_zero_page)
-               panic("Out of memory in setup_zero_pages");
+       empty_zero_page = (unsigned long)memblock_alloc_or_panic(PAGE_SIZE << order, order);
memblock_alloc_or_panic() takes the alignment is in bytes, no? So
shouldn't the second argument be BIT(order)?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help