RFC: 32-bit x86 port maintenance, stepping down as maintainer
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Thu Jul 11 12:42:48 UTC 2024
Hi, I wanted to add to what Andrew Haley wrote about the cost of
maintaining the 32 bit x86 port. A long time ago, we consolidated the
template interpreter code so that there was only one source file to
change when working on that code. This required that we only use the 4
registers that the 32 bit port provided, with some conditionals for
knowing r15 is the thread register for 64 bits. With new work coming in
for Valhalla, restricting our use to only 4 registers is really
difficult and results in poor code. Internally, we've been talking
about splitting out and moving all the 32 bit code to a new directory,
which will result in almost immediate bit rot.
It would be nicer to deprecate this code in favor of using the Zero
based interpreter for the linux-x86 port. We started on a JEP for that,
even though it's awkward since we don't support this port at Oracle, but
we want to move the code out of the way.
Thanks,
Coleen
On 7/10/24 10:09 AM, Andrew Haley wrote:
> On 7/10/24 12:06, Aleksey Shipilev wrote:
>
> > I would say properly maintaining the port at 1..3 level can take
> > about 1 full-time engineer with prior Hotspot/JDK experience, less
> > when you know where to cut the corners. So I would not recommend
> > this as a starter project. For a reasonable probability of success,
> > you need to have experience with Hotspot/JDK development, or have
> > enough time to work it out as you go, or both.
>
> One other thing that is important: 32-bit support is already broken in
> some ways, and especially the x86 ABI Linux is not compliant in that
> it calls native code with a misaligned stack pointer. This is
> surprisingly hard to fix.
>
> Having to keep everything working on 32-bit x86 is a drain on
> everyone. The back end contains 527 separate instances of #ifdef
> _LP64, and every one of these is a burden for maintainers. (I just had
> to add a few more.) It would be better for everyone to remove the
> 32-bit port, rather than have it half-maintained.
>
> IMHO, rather than keep 32-bit x86 going, it would make more sense to
> concentrate on trying to get the older 32-bit OpenJDK backport
> versions in good shape. I don't think that it's possible to do both
> without a lot of effort.
>
More information about the jdk-dev
mailing list