From: Julian Braha <julianbraha@gmail.com>
To: richard.henderson@linaro.org, linmag7@gmail.com
Cc: qi.zheng@linux.dev, akpm@linux-foundation.org,
viro@zeniv.linux.org.uk, geert@linux-m68k.org,
catalin.marinas@arm.com, rppt@kernel.org, joao@joaoff.com,
linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org,
kernel-janitors@vger.kernel.org,
Julian Braha <julianbraha@gmail.com>
Subject: [PATCH] alpha: cleanup dead ALPHA_LARGE_VMALLOC
Date: Sun, 16 Aug 2026 15:38:35 +0100 [thread overview]
Message-ID: <20260816143835.1068971-1-julianbraha@gmail.com> (raw)
Currently, the ALPHA_LARGE_VMALLOC config option can never be enabled,
meaning that all references to it are dead code.
Let's remove this dead option and its associated code.
This dead code was found by kconfirm, a static analysis tool for Kconfig.
Signed-off-by: Julian Braha <julianbraha@gmail.com>
---
arch/alpha/Kconfig | 15 ---------------
arch/alpha/include/asm/pgtable.h | 4 ----
arch/alpha/mm/fault.c | 24 ------------------------
arch/alpha/mm/init.c | 10 ++--------
4 files changed, 2 insertions(+), 51 deletions(-)
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 7b7dafe7d9df..fdffcea749ac 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -413,21 +413,6 @@ config ALPHA_WTINT
If unsure, say N.
-# LARGE_VMALLOC is racy, if you *really* need it then fix it first
-config ALPHA_LARGE_VMALLOC
- bool
- help
- Process creation and other aspects of virtual memory management can
- be streamlined if we restrict the kernel to one PGD for all vmalloc
- allocations. This equates to about 8GB.
-
- Under normal circumstances, this is so far and above what is needed
- as to be laughable. However, there are certain applications (such
- as benchmark-grade in-kernel web serving) that can make use of as
- much vmalloc space as is available.
-
- Say N unless you know you need gobs and gobs of vmalloc space.
-
config VERBOSE_MCHECK
bool "Verbose Machine Checks"
diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h
index 8e00cf9dc39d..3d7c1bab4154 100644
--- a/arch/alpha/include/asm/pgtable.h
+++ b/arch/alpha/include/asm/pgtable.h
@@ -50,11 +50,7 @@ struct vm_area_struct;
/* Number of pointers that fit on a page: this will go away. */
#define PTRS_PER_PAGE (1UL << (PAGE_SHIFT-3))
-#ifdef CONFIG_ALPHA_LARGE_VMALLOC
-#define VMALLOC_START 0xfffffe0000000000
-#else
#define VMALLOC_START (-2*PGDIR_SIZE)
-#endif
#define VMALLOC_END (-PGDIR_SIZE)
/*
diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
index a9816bbc9f34..0bc5fc4d510e 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -111,10 +111,6 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
if (!mm || faulthandler_disabled())
goto no_context;
-#ifdef CONFIG_ALPHA_LARGE_VMALLOC
- if (address >= TASK_SIZE)
- goto vmalloc_fault;
-#endif
if (user_mode(regs))
flags |= FAULT_FLAG_USER;
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
@@ -225,24 +221,4 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
do_sigsegv:
force_sig_fault(SIGSEGV, si_code, (void __user *) address);
return;
-
-#ifdef CONFIG_ALPHA_LARGE_VMALLOC
- vmalloc_fault:
- if (user_mode(regs))
- goto do_sigsegv;
- else {
- /* Synchronize this task's top level page-table
- with the "reference" page table from init. */
- long index = pgd_index(address);
- pgd_t *pgd, *pgd_k;
-
- pgd = current->active_mm->pgd + index;
- pgd_k = swapper_pg_dir + index;
- if (!pgd_present(*pgd) && pgd_present(*pgd_k)) {
- pgd_val(*pgd) = pgd_val(*pgd_k);
- return;
- }
- goto no_context;
- }
-#endif
}
diff --git a/arch/alpha/mm/init.c b/arch/alpha/mm/init.c
index 9531cbc761c0..a2b4d001cbf2 100644
--- a/arch/alpha/mm/init.c
+++ b/arch/alpha/mm/init.c
@@ -45,12 +45,7 @@ pgd_alloc(struct mm_struct *mm)
ret = __pgd_alloc(mm, 0);
init = pgd_offset(&init_mm, 0UL);
if (ret) {
-#ifdef CONFIG_ALPHA_LARGE_VMALLOC
- memcpy (ret + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD,
- (PTRS_PER_PGD - USER_PTRS_PER_PGD - 1)*sizeof(pgd_t));
-#else
pgd_val(ret[PTRS_PER_PGD-2]) = pgd_val(init[PTRS_PER_PGD-2]);
-#endif
/* The last PGD entry is the VPTB self-map. */
pgd_val(ret[PTRS_PER_PGD-1])
@@ -148,9 +143,8 @@ callback_init(void * kernel_end)
On systems with larger consoles, additional pages will be
allocated as needed during the mapping process.
- In the case of not SRM, but not CONFIG_ALPHA_LARGE_VMALLOC,
- we need to allocate the PGD we use for vmalloc before we start
- forking other tasks. */
+ In the case of not SRM, we need to allocate the PGD we use for vmalloc
+ before we start forking other tasks. */
two_pages = (void *)
(((unsigned long)kernel_end + ~PAGE_MASK) & PAGE_MASK);
--
2.55.0
next reply other threads:[~2026-08-16 14:38 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-16 14:38 Julian Braha [this message]
2026-08-16 17:41 ` [PATCH] alpha: cleanup dead ALPHA_LARGE_VMALLOC Al Viro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260816143835.1068971-1-julianbraha@gmail.com \
--to=julianbraha@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=catalin.marinas@arm.com \
--cc=geert@linux-m68k.org \
--cc=joao@joaoff.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linmag7@gmail.com \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=qi.zheng@linux.dev \
--cc=richard.henderson@linaro.org \
--cc=rppt@kernel.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox