On Wed, 22 Nov 2023 21:57:57 GMT, Daniel D. Daugherty <dcu...@openjdk.org> 
wrote:

>> My point is that it is such an easy thing to do: leave the "cx8" flag 
>> sensing code in, and keep setting up `_supports_cx8` based on it for 
>> `!_LP64` paths. This both provides more safety by failing cleanly on non-CX8 
>> platform, and gives other platforms some guidance: if you can check 
>> something is supported, check it. I think we are generally trying to fail 
>> cleanly on unsupported configs, if that is easy to achieve.
>> 
>> But now that you nerd-sniped me into this... I think non-CX8 platforms would 
>> probably predate Pentium. The oldest real machine my lab has is Z530, which 
>> already has CX8. But it was easy to also go to my QEMU-driven build-test 
>> server, ask for `i486` as platform there, and et voila, no `cx8` in CPU 
>> flags:
>> 
>> 
>> buildworker-debian12-32:~$ lscpu
>> Architecture:            i486
>>   CPU op-mode(s):        32-bit
>>   Address sizes:         36 bits physical, 32 bits virtual
>>   Byte Order:            Little Endian
>> CPU(s):                  4
>>   On-line CPU(s) list:   0-3
>> Vendor ID:               GenuineIntel
>>   Model name:            486 DX/4
>>     CPU family:          4
>>     Model:               8
>>     Thread(s) per core:  4
>>     Core(s) per socket:  1
>>     Socket(s):           1
>>     Stepping:            0
>>     BogoMIPS:            5699.99
>>     Flags:               fpu vme pse apic ht cpuid tsc_known_freq x2apic 
>> hypervisor cpuid_fault
>> 
>> 
>> And mainline JDK even starts there! (with interpreter, there are some 
>> asserts firing in compiler code, having to do with odd instruction selection 
>> on some paths):
>> 
>> 
>> $ jdk/bin/java -Xint -version
>> openjdk version "22-testing" 2024-03-19
>> OpenJDK Runtime Environment (fastdebug build 
>> 22-testing-builds.shipilev.net-openjdk-jdk-b627-20231121)
>> OpenJDK Server VM (fastdebug build 
>> 22-testing-builds.shipilev.net-openjdk-jdk-b627-20231121, interpreted mode, 
>> sharing)
>
> Nice spelunking... I was wondering if it was something that old. I wasn't 
> trying to nerd-snipe...
> 
> I was in the dev lab at Intel when Xenix on the i386 first came up and sent 
> its "Hello World!" email...
> I left Intel for Sun in 1987 while i486 was still in development, but I still 
> had periodic lunches with
> folks that worked on those teams. Life was simpler back then...

I politely disagree. The whole point here is to leave the past behind as much 
as possible. We made a concession for ARM32 as there may still be old ARMv5 and 
ARMv6 systems in use. IIUC you need to go back to the i486 chip to not have 
cmpxchg8 support and I'd bet money on it that we can't run on such a chip any 
more for a whole swag of reasons. In any case I don't have an issue telling 
i486 machine owners they are stuck with JDK 21!

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16625#discussion_r1402877044

Reply via email to