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.

19 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 Anonymous Coward · · Score: 4, Insightful

    That's not what the x32 ABI is for.

  3. 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
  4. 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.

  5. Comment removed by account_deleted · · Score: 2, Insightful

    Comment removed based on user account deletion

  6. 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.

  7. Re: No! by lgw · · Score: 3, Interesting

    Perhaps you could not be retarded and just know this?
    X32 is a stupid version of 64 bit that uses 32-bit pointers.
    Never understood who thought this was a good idea.

    People who care about memory footprint? Linux is used in some pretty small systems, still. If you have far, far less than 4GB you not only don't need 64-bit addressing, you need to not waste 4 bytes on every pointer.

    Why not just use x86? More registers (and x64 has a lot more registers) can make a real performance impact.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  8. Missed a verb there by GreyWanderingRogue · · Score: 5, Funny

    Linus Torvalds is in favor of sunsetting x32 and many other upstream contributors in favor of seeing it deprecated and removed

    It looks like you missed a verb there. Either that, or Slashdot has finally come across something everyone on Slashdot can agree is "News for Nerds." One nerd attempting to assassinate a group of nerds certainly meets every possible meaning of "News for Nerds."

    1. Re: Missed a verb there by jd · · Score: 2

      Worked for Reiser. Ish.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  9. Re: No! by Anonymous Coward · · Score: 2, Interesting

    An x64 processor is expensive, large, and power-hungry for modern "pretty small systems." If you have far, far less than 4GB, you've probably moved to 32-bit ARM.

  10. Re:No! by thegarbz · · Score: 4, Funny

    I'd say you must be new here if you expect people to RTFA, but your UID is a respectable 4 digits...

    Or another way of putting it, his UID can be expressed in 11bits and is therefore obsolete and we should consider dropping support.

  11. Re:No! by Frederic54 · · Score: 2

    Ah damn ok it isn't x86, I was confused...

    --
    "Science will win because it works." - Stephen Hawking
  12. Re:Anyone have statistics? by Immerman · · Score: 2

    I would think it would be fairly limited. The benefit would really only be felt by programs where a large percentage of the total used memory was pointers... so perhaps large graph-analysis applications? Perhaps neural networks, where it could reduce the size of an individual "synapse" from 96 bits (64 bit pointer + 32 bit weight) to 64 bits (32bit pointer+32 bit weight), saving roughly 1/3rd of the total program memory without resorting to index-based access and the associated overhead of pointer addition (though x32 may still incur that overhead behind the scenes - I don't know).

    Offhand I can't think of anything else that's going to have a pointer/data ratio high enough for the size of pointers to make much difference.

    Hmm, though the other factor is cache page size - you can fit twice as many 32 bit pointers in the same cache page - so for traversing large data trees you could potentially get a significant performance boost by using smaller pointers. Provided of course that you never wanted to deal with more than 4GB of total data.

    --
    --- Most topics have many sides worth arguing, allow me to take one opposite you.
  13. Nooo! by ReneR · · Score: 2

    Don't take the 10% advance away from me! :-/ https://t2sde.org/

  14. Re:Just do it by Artem+S.+Tashkinov · · Score: 2

    Now I see who's downvoting me.

    x32 has never been deployed by any known company in any measurable quantities. And yes, Linux kernel architecture do require maintenance. In short your entire comment is invalid. Perhaps, you've mistaken x32 for something else (most ./ readers don't understand the difference between x86 and x32 - the latter is a completely different beast).

    Also, no commercial/proprietary software exists for x32.

  15. Re:Just do it by Artem+S.+Tashkinov · · Score: 2

    I also have to not that x32 was created as a sort of experiment. It has gained almost no traction anywhere and it's not really used by anyone aside from Gentoo/LFS lovers.

  16. Re: It's VERY clear Al Gore = hypocrite conman by Anonymous Coward · · Score: 2

    Whether Al Gore is a conman or not has absolutely no effect on whether humans are causing global warming. Your argument is that the warming over the past few decades is due to natural variability, though you haven't a clue what kind of natural variability you're implicating. I explained the physical processes by which human activity is causing the Earth to warm. Rather than discuss the science, you replied with personal attacks and mostly copied and pasted your previous idiotic post. Most likely, you don't know a thing about how the climate system works, so personal attacks and mindless rhetoric are your tools of choice.

    Just so you know, I'm a meteorologist. My field is closely related to climatology, and I have a good understanding of how the climate system works. I've actually run climate and weather models. I've presented my work at professional conferences and published in peer-reviewed journals. I've run numerical weather prediction models like WRF and CM1 on hundreds of cores to simulate processes in the atmosphere. Much of what I do focuses on processes within thunderstorms but I certainly do understand the climate system and have done a portion of my work in that area.

    Since you don't provide any scientific arguments that can be discussed, what are your qualifications that merit trusting you about climate change? Please do tell.

  17. 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.