RFR: 8374926: EnableX86ECoreOpts was not enabled on some hybrid CPU [v3]
Yasumasa Suenaga
ysuenaga at openjdk.org
Fri Jan 16 07:55:44 UTC 2026
On Fri, 16 Jan 2026 01:12:33 GMT, Volodymyr Paprotski <vpaprotski at openjdk.org> wrote:
>> Yasumasa Suenaga has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>>
>> - Merge remote-tracking branch 'origin/master' into ecoreopt-hybrid
>> - Merge remote-tracking branch 'origin/master' into ecoreopt-hybrid
>> - Use supports_hybrid() to check for EnableX86ECoreOpts
>> - Add comments for CPU models
>
> For CWF (model `0xDD`), `hy-core-check.c` prints:
>
> Hybrid: 0
> HT: 1
> Max leaf: 0x28
>
> and for SRF (model `0XAF`):
>
> Hybrid: 0
> HT: 1
> Max leaf: 0x23
>
>
> When I added EnableX86ECoreOpts , I remember thinking that I need to 'make it more generic or there will be a lot of models to add manually'. Here we are :(
>
> I need to do more research (and perhaps find some people to talk to..); specifically for client-part numbers.
>
> Some reasons why I hadn't made it (yet?) more generic.. `EnableX86ECoreOpts` is supposed to be 'temporary' (the definition of which, for processors, is 'years'..). It currently enables 'emulation' type of (de)optimizations.. places where Atom cores have some catching up to do, but hopefully should be fixed:
> - MXCSR signaling flags
> - `vblendvp{sd}` emulation
> - pcmpestri 'emulation' in String.indexof
> - generate_fill (which perhaps could go under UseAVX=2 with more work/testing)
>
> In other words: we will at some point need to _disable_ `EnableX86ECoreOpts` on future hybrid cores and will again need another cpuid/flag to detect?
@vpaprotsk Can you try hy-core-check.c again on both SRF and CWF? I updated it to show leaf 1Ah information even if hybrid flag is not set.
https://github.com/YaSuenag/garakuta/blob/master/check-hybrid-cores/hy-core-check.c
If we can see core type and native model ID on both SRF and CWF (AFAIK they are all of all-E-cores processor), we can refer leaf 1Ah to set `EnableX86ECoreOpts` so far. I will update this PR to merge [this branch](https://github.com/YaSuenag/jdk/compare/ecoreopt-hybrid...YaSuenag:jdk:check-ecore) to check leaf 1Ah. I think it is "generalized" so far. If we need to update the logic to determine to configure the flag for newer processors in future, then we would think another solution with its CPUID (maybe) - we can add model ID in worst case.
What do you think?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/29149#issuecomment-3758628021
More information about the hotspot-dev
mailing list