Slashdot Mirror


Linux Kernel Developers Discuss Dropping x32 Support (phoronix.com)

An anonymous reader shared a report: 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.

6 of 202 comments (clear)

  1. What is x32? by Megane · · Score: 4, Informative

    Would it have hurt to include this?

    The Linux x32 ABI as a reminder requires x86_64 processors and is engineered to support the modern x86_64 features but with using 32-bit pointers rather than 64-bit pointers. The x32 ABI allows for making use of the additional registers and other features of x86_64 but with just 32-bit pointers in order to provide faster performance when 64-bit pointers are unnecessary.

    ...except for the fact that this explanation is 25% of the four-paragraph article, and another 25% of it was already in TFS. Oops.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    1. Re:What is x32? by squiggleslash · · Score: 3, Informative

      The extra performance you get out of X32 is the use of AMD's more optimal 64 bit instruction set. It's not about the address space, it's about the fact you have faster instructions, you have more registers, and you can process 64 bit values (integers, bit masks, etc) in almost the same amount of time it takes to process a 32 bit value. Remember that the 80386 was never considered an optimal CPU, it was the best Intel could do at the time with the conflicting needs of not having Motorola eat their lunch, while ensuring old software written for their previous, shittier, architectures, could easily run on the new system.

      The logic behind X32 was that most applications (which was true at the time) have no need for 64 bit addresses (or, to be more accurate, 33 bit addresses), but would benefit from the AMD ABI's faster instructions. And to be fair, that's still true, it's just we all know it's not going to be true for much longer Firefox.

      --
      You are not alone. This is not normal. None of this is normal.
  2. Re:No! by Misagon · · Score: 5, Informative

    That's not what x32 is. 32-bit x86 will still be supported.

    "x32" is an ABI for x86-64 that uses 32-bit pointers with the x86-64 instruction set for better performance when a large address space is not needed.
    It's in the second paragraph in the TFA ;)

    --
    "We mustn't be caught by surprise by our own advancing technology" -- Aldous Huxley
  3. Re:No! by mridoni · · Score: 3, Informative

    Wrong CPU, nothing to do with 4/586s. From TFA itself:

    The Linux x32 ABI as a reminder requires x86_64 processors and is engineered to support the modern x86_64 features but with using 32-bit pointers rather than 64-bit pointers. The x32 ABI allows for making use of the additional registers and other features of x86_64 but with just 32-bit pointers in order to provide faster performance when 64-bit pointers are unnecessary.

    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.

  4. Re: No! by Desler · · Score: 5, Informative

    It allows access to the extended registers of x86_64 but with 32-bit pointers. It requires an x86_64 processor to be used.

  5. Re: No! by Aighearach · · Score: 3, Informative

    Modern memory-constrained systems are not x64, though. They're ARM. The type of memory constraints that x86 systems have are not at the scale that benefits from accessing half a register.

    And when you're programming an embedded system that is that memory-constrained, it is perfectly normal to have sections of inline ASM. So that is what you'd do if you actually needed this.

    And generally when things are that constrained you're not using linux anyways. That's the real point. People accessing half a register are running Mbed OS or FreeRTOS or something. Before you want this feature, you already switched to ARM, and you probably also then went smaller than linux.