From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: linux-kernel@vger.kernel.org, x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
Ingo Molnar <mingo@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
Thomas Gleixner <tglx@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
Sam James <sam@gentoo.org>, Neal Gompa <neal@gompa.dev>,
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
Tomas Glozar <tglozar@kernel.org>,
"Maciej W. Rozycki" <macro@orcam.me.uk>,
Richard Purdie <richard.purdie@linuxfoundation.org>
Subject: [PATCH v2] x86: Start removing X86_X32_ABI
Date: Tue, 7 Jul 2026 23:22:52 +0200 [thread overview]
Message-ID: <20260707212252.bYk3-AlU@linutronix.de> (raw)
The x32 ABI was introduced in v3.4 to leverage the additional registers
which were available on x86_64 but not on i386 while keeping the smaller
32bit pointers.
This did not take off. The memory usage usually knows no limit and the
better performance did not reach a point where certain workloads widely
move to x32 and use it exclusively. In the meantime Debian introduced a
patch to disable x32 by default (so it has to be enabled at boot time on
the command line) because they are afraid of the increased attack
surface. Fedora as far as I tell has X32 disabled (looking at 7.0-rc5
rpm in rawhide).
The syscall range >512 used by x32 can not be reused because on earlier
kernels (before v5.4 with x32 enabled, see commit 6365b842aae4
("x86/syscalls: Split the x32 syscalls into their own table") it is not
obvious if the syscall is for x86-64 and not implemented or meant for
x32.
What can be removed are the special compat cases due to different
alignment.
Since there is practically no real use for x32, start removing it by
removing the symbol first, not allowing to enable it. Should nothing
happening by the end of the year, it will removed after the last LTS
kernel this year.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
v1…v2: https://lore.kernel.org/r/20260523093734.A3AR7reJ@linutronix.de
- reword commit description, don't claim the syscall range can be
used.
arch/x86/Kconfig | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index bdad90f210e4b..f6fe55fdc928a 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -3097,20 +3097,6 @@ config IA32_EMULATION_DEFAULT_DISABLED
processes and access to 32-bit syscalls. If unsure, leave it to its
default value.
-config X86_X32_ABI
- bool "x32 ABI for 64-bit mode"
- depends on X86_64
- # llvm-objcopy does not convert x86_64 .note.gnu.property or
- # compressed debug sections to x86_x32 properly:
- # https://github.com/ClangBuiltLinux/linux/issues/514
- # https://github.com/ClangBuiltLinux/linux/issues/1141
- depends on $(success,$(OBJCOPY) --version | head -n1 | grep -qv llvm)
- help
- Include code to run binaries for the x32 native 32-bit ABI
- for 64-bit processors. An x32 process gets access to the
- full 64-bit register file and wide data path while leaving
- pointers at 32 bits for smaller memory footprint.
-
config COMPAT_32
def_bool y
depends on IA32_EMULATION || X86_32
--
2.53.0
next reply other threads:[~2026-07-07 21:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-07 21:22 Sebastian Andrzej Siewior [this message]
2026-07-08 5:45 ` [PATCH v2] x86: Start removing X86_X32_ABI Arnd Bergmann
2026-07-08 6:31 ` John Paul Adrian Glaubitz
2026-07-08 7:36 ` Sebastian Andrzej Siewior
2026-07-08 11:26 ` Arnd Bergmann
2026-07-08 11:51 ` Richard Purdie
2026-07-08 12:22 ` Sam James
2026-07-08 12:44 ` John Paul Adrian Glaubitz
2026-07-08 12:33 ` Sebastian Andrzej Siewior
2026-07-08 13:16 ` Arnd Bergmann
2026-07-08 16:27 ` Maciej W. Rozycki
2026-07-08 20:26 ` David Laight
2026-07-08 23:58 ` Maciej W. Rozycki
2026-07-10 20:59 ` H. Peter Anvin
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=20260707212252.bYk3-AlU@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=arnd@arndb.de \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=glaubitz@physik.fu-berlin.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=macro@orcam.me.uk \
--cc=mingo@redhat.com \
--cc=neal@gompa.dev \
--cc=richard.purdie@linuxfoundation.org \
--cc=sam@gentoo.org \
--cc=tglozar@kernel.org \
--cc=tglx@kernel.org \
--cc=x86@kernel.org \
/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