From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF07B306483; Wed, 11 Feb 2026 10:31:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770805918; cv=none; b=JfJWjSWZueLXXphRxPyh+lQ4rxGf+qsZ67MlxJRWf3XqmrMEPHQ1tt5DMFUlpVujwecTipU4RnXA7NO7EZV0LxZPfmEf46bFVsCpnt7Vlr7/yhcI4m1sQ4H/WacV/wwFPI9u3TiNAqm0wwDZs0vrGnVWIHcolIY5jrAZspOmr20= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770805918; c=relaxed/simple; bh=BzPjss/o79E8vniYif3vhWCcMbpnh+bfpm0PwJifv0s=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=jmv2jHLmeJuF5BG5+KKQuxvf6IRbdDStOrO1nfmBXkheEmbZmfIAPC0Ze5U9afl5u9j5bmxNmb37NhxdjnbNk5HJTDFv8bGB0Oh+4tBMzSzAvKE3utdUKVe8kI1ZyFGOSw7mizXbP1NKOQopy5fYZbBlevpsNqsr+eg5emz57+c= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PV/jXKpF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PV/jXKpF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D364AC19421; Wed, 11 Feb 2026 10:31:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770805918; bh=BzPjss/o79E8vniYif3vhWCcMbpnh+bfpm0PwJifv0s=; h=From:To:Cc:Subject:Date:From; b=PV/jXKpFwT8Fev+iuIdzwDQGCp1d9tQZwQOxpL0LXiHzOkF4CIyDk3VR8KHKDtHPW 95broCDwDG6FDa0dsrh08bvjDtJvEVi+8U3bdfQGt0/3GFehuGtNXEfr5rcfZqIyHe 4Gas0OFpDJ0b6cdfz9zvpAFeNg4A3xRSvqWBEmxAoCac9/v12nM5/tozP4vCWoIt3t WM1Df8XDDZbZ4yrkjS35IzQoTegVuVT5cx/AIkgGipbvq47QF+8iCUbZqSYaNcR9kd /L0GUWtHeBli4O4MUGnMTsxwsezchH/soEQNYXQrx3YIGnwJ/R226FAA4/HIBChyBn bpfII91wxqjeA== From: Mike Rapoport To: Andrew Morton Cc: Andreas Larsson , Borislav Petkov , Brian Cain , Catalin Marinas , "Christophe Leroy (CS GROUP)" , "David S. Miller" , Dave Hansen , David Hildenbrand , Dinh Nguyen , Geert Uytterhoeven , Guo Ren , Helge Deller , Huacai Chen , Ingo Molnar , Johannes Berg , John Paul Adrian Glaubitz , "Liam R. Howlett" , Lorenzo Stoakes , Madhavan Srinivasan , Magnus Lindholm , Matt Turner , Max Filippov , Michael Ellerman , Michal Hocko , Michal Simek , Mike Rapoport , Palmer Dabbelt , Richard Weinberger , Russell King , Stafford Horne , Suren Baghdasaryan , Thomas Gleixner , Vineet Gupta , Vlastimil Babka , Will Deacon , linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-openrisc@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-mm@kvack.org, x86@kernel.org Subject: [PATCH v3 0/4] arch, mm: consolidate empty_zero_page Date: Wed, 11 Feb 2026 12:31:37 +0200 Message-ID: <20260211103141.3215197-1-rppt@kernel.org> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-alpha@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: "Mike Rapoport (Microsoft)" Hi, These patches cleanup handling of ZERO_PAGE() and zero_pfn. v3 changes: * move zero_page_pfn extern declaration back inside the helpers * add tags, thanks all! v2: https://lore.kernel.org/all/20260209144058.2092871-1-rppt@kernel.org * add patches that cleanup zero_pfn code a bit (patches 1,2) * add a patch that caches struct page for empty_zero_page (patch 4) * use uint8_t instead of unsigned long for empty_zero_page * fix sparc64 changes in patch 3 v1: https://lore.kernel.org/all/20260124095628.668870-1-rppt@kernel.org Mike Rapoport (Microsoft) (4): mm: don't special case !MMU for is_zero_pfn() and my_zero_pfn() mm: rename my_zero_pfn() to zero_pfn() arch, mm: consolidate empty_zero_page mm: cache struct page for empty_zero_page and return it from ZERO_PAGE() arch/alpha/include/asm/pgtable.h | 6 --- arch/arc/include/asm/pgtable.h | 3 -- arch/arc/mm/init.c | 2 - arch/arm/include/asm/pgtable.h | 9 ----- arch/arm/mm/mmu.c | 7 ---- arch/arm/mm/nommu.c | 7 ---- arch/arm64/include/asm/pgtable.h | 7 ---- arch/arm64/mm/init.c | 5 +++ arch/arm64/mm/mmu.c | 7 ---- arch/csky/include/asm/pgtable.h | 3 -- arch/csky/mm/init.c | 3 -- arch/hexagon/include/asm/pgtable.h | 6 --- arch/hexagon/kernel/head.S | 5 --- arch/hexagon/kernel/hexagon_ksyms.c | 1 - arch/loongarch/include/asm/pgtable.h | 9 ----- arch/loongarch/mm/init.c | 3 -- arch/m68k/include/asm/pgtable_mm.h | 9 ----- arch/m68k/include/asm/pgtable_no.h | 7 ---- arch/m68k/mm/init.c | 9 ----- arch/m68k/mm/mcfmmu.c | 2 - arch/m68k/mm/motorola.c | 6 --- arch/m68k/mm/sun3mmu.c | 2 - arch/microblaze/include/asm/pgtable.h | 10 ----- arch/microblaze/kernel/head.S | 4 -- arch/microblaze/kernel/microblaze_ksyms.c | 2 - arch/mips/mm/init.c | 11 +----- arch/nios2/include/asm/pgtable.h | 7 ---- arch/nios2/kernel/head.S | 10 ----- arch/nios2/kernel/nios2_ksyms.c | 1 - arch/openrisc/include/asm/pgtable.h | 4 -- arch/openrisc/kernel/head.S | 3 -- arch/openrisc/kernel/or32_ksyms.c | 1 - arch/openrisc/mm/init.c | 3 -- arch/parisc/include/asm/pgtable.h | 11 ------ arch/parisc/mm/init.c | 6 --- arch/powerpc/include/asm/pgtable.h | 6 --- arch/powerpc/mm/mem.c | 3 -- arch/riscv/include/asm/pgtable.h | 7 ---- arch/riscv/mm/init.c | 4 -- arch/s390/mm/init.c | 4 +- arch/sh/include/asm/pgtable.h | 8 ---- arch/sh/include/asm/setup.h | 3 +- arch/sh/kernel/head_32.S | 4 +- arch/sh/kernel/sh_ksyms_32.c | 1 - arch/sh/mm/init.c | 1 - arch/sparc/include/asm/pgtable_32.h | 8 ---- arch/sparc/include/asm/pgtable_64.h | 3 -- arch/sparc/include/asm/setup.h | 2 - arch/sparc/kernel/head_32.S | 7 ---- arch/sparc/mm/init_32.c | 4 -- arch/sparc/mm/init_64.c | 24 +++++------- arch/um/include/asm/pgtable.h | 9 ----- arch/um/include/shared/kern_util.h | 1 - arch/um/kernel/mem.c | 16 -------- arch/um/kernel/um_arch.c | 1 - arch/x86/include/asm/pgtable.h | 8 ---- arch/x86/kernel/head_32.S | 4 -- arch/x86/kernel/head_64.S | 7 ---- arch/x86/kvm/mmu/spte.h | 2 +- arch/xtensa/include/asm/pgtable.h | 4 -- arch/xtensa/kernel/head.S | 3 -- arch/xtensa/kernel/xtensa_ksyms.c | 2 - fs/dax.c | 2 +- fs/proc/vmcore.c | 2 +- include/linux/pgtable.h | 48 ++++++++++++++--------- mm/huge_memory.c | 2 +- mm/memory.c | 15 +------ mm/migrate.c | 2 +- mm/mm_init.c | 28 +++++++++++++ mm/userfaultfd.c | 4 +- 70 files changed, 86 insertions(+), 354 deletions(-) base-commit: 50c7f34c5c7403a12003c6759f6f6ca9a5a10872 -- 2.51.0 *** BLURB HERE *** Mike Rapoport (Microsoft) (4): mm: don't special case !MMU for is_zero_pfn() and my_zero_pfn() mm: rename my_zero_pfn() to zero_pfn() arch, mm: consolidate empty_zero_page mm: cache struct page for empty_zero_page and return it from ZERO_PAGE() arch/alpha/include/asm/pgtable.h | 6 --- arch/arc/include/asm/pgtable.h | 3 -- arch/arc/mm/init.c | 2 - arch/arm/include/asm/pgtable.h | 9 ---- arch/arm/mm/mmu.c | 7 ---- arch/arm/mm/nommu.c | 7 ---- arch/arm64/include/asm/pgtable.h | 7 ---- arch/arm64/mm/init.c | 5 +++ arch/arm64/mm/mmu.c | 7 ---- arch/csky/include/asm/pgtable.h | 3 -- arch/csky/mm/init.c | 3 -- arch/hexagon/include/asm/pgtable.h | 6 --- arch/hexagon/kernel/head.S | 5 --- arch/hexagon/kernel/hexagon_ksyms.c | 1 - arch/loongarch/include/asm/pgtable.h | 9 ---- arch/loongarch/mm/init.c | 3 -- arch/m68k/include/asm/pgtable_mm.h | 9 ---- arch/m68k/include/asm/pgtable_no.h | 7 ---- arch/m68k/mm/init.c | 9 ---- arch/m68k/mm/mcfmmu.c | 2 - arch/m68k/mm/motorola.c | 6 --- arch/m68k/mm/sun3mmu.c | 2 - arch/microblaze/include/asm/pgtable.h | 10 ----- arch/microblaze/kernel/head.S | 4 -- arch/microblaze/kernel/microblaze_ksyms.c | 2 - arch/mips/mm/init.c | 11 +---- arch/nios2/include/asm/pgtable.h | 7 ---- arch/nios2/kernel/head.S | 10 ----- arch/nios2/kernel/nios2_ksyms.c | 1 - arch/openrisc/include/asm/pgtable.h | 4 -- arch/openrisc/kernel/head.S | 3 -- arch/openrisc/kernel/or32_ksyms.c | 1 - arch/openrisc/mm/init.c | 3 -- arch/parisc/include/asm/pgtable.h | 11 ----- arch/parisc/mm/init.c | 6 --- arch/powerpc/include/asm/pgtable.h | 6 --- arch/powerpc/mm/mem.c | 3 -- arch/riscv/include/asm/pgtable.h | 7 ---- arch/riscv/mm/init.c | 4 -- arch/s390/mm/init.c | 4 +- arch/sh/include/asm/pgtable.h | 8 ---- arch/sh/include/asm/setup.h | 3 +- arch/sh/kernel/head_32.S | 4 +- arch/sh/kernel/sh_ksyms_32.c | 1 - arch/sh/mm/init.c | 1 - arch/sparc/include/asm/pgtable_32.h | 8 ---- arch/sparc/include/asm/pgtable_64.h | 3 -- arch/sparc/include/asm/setup.h | 2 - arch/sparc/kernel/head_32.S | 7 ---- arch/sparc/mm/init_32.c | 4 -- arch/sparc/mm/init_64.c | 24 ++++------- arch/um/include/asm/pgtable.h | 9 ---- arch/um/include/shared/kern_util.h | 1 - arch/um/kernel/mem.c | 16 ------- arch/um/kernel/um_arch.c | 1 - arch/x86/include/asm/pgtable.h | 8 ---- arch/x86/kernel/head_32.S | 4 -- arch/x86/kernel/head_64.S | 7 ---- arch/x86/kvm/mmu/spte.h | 2 +- arch/xtensa/include/asm/pgtable.h | 4 -- arch/xtensa/kernel/head.S | 3 -- arch/xtensa/kernel/xtensa_ksyms.c | 2 - fs/dax.c | 2 +- fs/proc/vmcore.c | 2 +- include/linux/pgtable.h | 51 +++++++++++++++-------- mm/huge_memory.c | 2 +- mm/memory.c | 15 +------ mm/migrate.c | 2 +- mm/mm_init.c | 28 +++++++++++++ mm/userfaultfd.c | 4 +- 70 files changed, 89 insertions(+), 354 deletions(-) base-commit: 50c7f34c5c7403a12003c6759f6f6ca9a5a10872 -- 2.51.0