by

Linux developers look ready to bin x32 ABI

Linux kernel developers are eyeing the exit for x32 ABI, the hybrid mode that never quite became useful.

For those who came in late. Linux x32 ABI for x86_64 processors lets users tap the full 64-bit register file and wide data path while keeping 32-bit pointers. That was meant to give systems a smaller memory footprint when they did not need full 64-bit pointers.

The idea was neat enough on paper, but x32 turned up late to the party and never found many friends. Linux x32 ABI landed in Linux 3.4 in 2012 and needed updated compiler support, which was always going to trim its fan club.

With x86_64 now the default for pretty much everyone not living in a museum, kernel developers are looking at phasing x32 out.

According to Phoronix Linutronix developer Sebastian Andrzej Siewior has started the removal process with a patch that first blocks users from enabling it.

He wrote: “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 last syscall for x86_64 is currently at 471. The first x32 starts at 512 which leaves 40 new syscalls in between. Without the x32 ABI, those syscalls could be used since x32 wouldn’t be an option and therefore reserved.

“Since there is practically no real use for x32, start removing it by removing the symbol first, not allowing it to be enabled. Should nothing happen within the next half year, let’s remove code bits around August after the summer break.”

Siewior’s argument is less a dramatic execution than a tidy-up of something few workloads bothered to use.

Debian has already made x32 harder to reach by disabling it by default, citing the extra attack surface. Fedora appears to have x32 disabled too, based on Siewior’s look at a 7.0-rc5 RPM in Rawhide.

There has been no serious objection to killing x32 so far, apart from a small grumble about not recycling its syscall numbers. That means the ABI’s reserved syscall range may stay as a historical oddity rather than get thrown back into the pool.

The pitch for x32 was always about squeezing memory while keeping the nice bits of x86_64. The problem was that modern workloads kept getting fatter and the performance gain never became tempting enough.

If nobody turns up to defend it, x32 could start losing code after the summer break. That would make 2026 the year Linux finally admits this clever little compromise was mostly a faff.

 

TOPICS:
debian  ·  fedora  ·  linutronix  ·  Linux  ·  Linux kernel  ·  Sebastian Andrzej Siewior  ·  system calls  ·  x32 ABI  ·  x86_64

Latest articles

Share

Featured articles

Hot topics

No results found.

Latest reviews