Linux Kernel Developers Discuss Dropping x32 Support

'It was just several years ago that the open-source ecosystem began supporting the x32 ABI, but already kernel developers are talking of potentially deprecating the support and for it to be ultimately removed.. [...] While the x32 support was plumbed through the Linux landscape, it really hasn't been used much. Kernel developers are now discussing the future of the x32 ABI due to the maintenance cost involved in still supporting this code but with minimal users. Linus Torvalds is in favor of sunsetting x32 and many other upstream contributors in favor of seeing it deprecated and removed.' -- source: https://linux.slashdot.org/story/18/12/12/1336210 More information on x32 ABI: https://en.wikipedia.org/wiki/X32_ABI Cheers, Peter -- Peter Reutemann Dept. of Computer Science University of Waikato, NZ +64 (7) 858-5174 http://www.cms.waikato.ac.nz/~fracpete/ http://www.data-mining.co.nz/

On Thu, 13 Dec 2018 09:50:56 +1300, Peter Reutemann quoted:
'It was just several years ago that the open-source ecosystem began supporting the x32 ABI ...'
Many people (including myself) wondered about the point of that at the time. For those who don’t know, this ABI uses AMD64/x86-64 instructions, but with only 32-bit addresses. Something about getting the benefits of the more modern instructions and larger register set, but without the overhead of full 64-bit addresses. I think Intel was the main one pushing it. Moral: beware of features that are mainly of interest to certain large corporates, not to the community at large.

On Thu, Dec 13, 2018 at 10:27:05AM +1300, Lawrence D'Oliveiro wrote:
On Thu, 13 Dec 2018 09:50:56 +1300, Peter Reutemann quoted:
'It was just several years ago that the open-source ecosystem began supporting the x32 ABI ...'
Many people (including myself) wondered about the point of that at the time.
Having been using 64-bit systems for most of my work since 1998 so did I!
For those who don’t know, this ABI uses AMD64/x86-64 instructions, but with only 32-bit addresses. Something about getting the benefits of the more modern instructions and larger register set, but without the overhead of full 64-bit addresses.
But one of the big drivers for 64-bit CPUs was not more processing power, but to extend the address space of a single process beyond that addressable with 32-bit addresses (which is normally limited to 2GB or sometimes 3GB depending on arch and hardware). Using x32 negates that key advantage.
I think Intel was the main one pushing it.
I think the main concern was the extra pressure on the cache and translation lookaside buffer because 64-bit pointers use up these resources twice as fast as 32-bit pointers.
Moral: beware of features that are mainly of interest to certain large corporates, not to the community at large.
There were people in the community interested in it but it eventually lost traction, partly, as it is now acknowdleged, they did the kernel interface wrong. Cheers, Michael.
participants (3)
-
Lawrence D'Oliveiro
-
Michael Cree
-
Peter Reutemann