RFR: 8366847: JFR reports incorrect number of cores on hybrid CPU [v3]

Yasumasa Suenaga ysuenaga at openjdk.org
Tue Oct 7 05:46:48 UTC 2025


On Tue, 7 Oct 2025 04:44:24 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> Agree! HT flag is set even though it is E-core (do not have HT), and also we cannot get number of physical cores, hence cores-per-cpu is always incorrect as you said.
>
> Can we not check for "Intel Hybrid Information" CPUID leaf (0x1A) that reports the type of each core and use that to get an accurate core count? So that:
> 
> int cores_per_cpu() {
>   if (is_hybrid()) {
>     if (hyper_threaded() ) {
>       return _no_of_threads - _no_of_e_cores;
>      } else {
>       return _no_of_threads;
>      }
>   } else {
>     return _no_of_threads / threads_per_core();
>   }
> }

I think it is difficult for the following reasons:

1. We need to set affinity & issue `CPUID` leaf 1Ah on all of cores. See example: https://github.com/YaSuenag/garakuta/blob/master/check-hybrid-cores/hy-core-check.c
2. E-core does not have HT for now, but we don't know this architecture (P core has HT, both E core and LP E core do not have HT) keeps in future.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27080#discussion_r2409430996


More information about the hotspot-dev mailing list