[15] RFR (S): 8238696: x86: Enumerate all detected CPU features in VM_Version feature string

David Holmes david.holmes at oracle.com
Mon Feb 10 04:04:17 UTC 2020


Hi Vladimir,

On 8/02/2020 2:52 am, Vladimir Ivanov wrote:
> http://cr.openjdk.java.net/~vlivanov/8238696/webrev.00/
> https://bugs.openjdk.java.net/browse/JDK-8238696
> 
> Abstract_VM_Version::features_string() doesn't contain all the CPU 
> features detected by the JVM on x86 (for example, for AVX-512 only 
> AVX-512F is included as "evex").
> 
> The fix adds missing features to the list [1].

The function naming that you have changed for supports_avx512_vpclmulqdq 
was explicitly requested by Vladimir K.:

http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-December/036326.html

If anything I would suggest supports_vpopcntdq() should have the avx512 
part added.

The actual expansion of the feature string seems okay. It does make me 
wonder why these items have been left out previously.

Thanks,
David

> Testing: manual (-Xlog:os+cpu=trace output on different hardware),
>           hs-precheckin-comp, hs-tier1, hs-tier2
> 
> Best regards,
> Vladimir Ivanov
> 
> [1] $ java -Xlog:os+cpu=trace -XX:UseAVX=3 -version
> 
> ...
> [0.010s][info][os,cpu] UseSSE=4  UseAVX=3  UseAES=1  MaxVectorSize=64
> ...
> [0.011s][info][os,cpu] CPU:total 8 (initial active 8) (4 cores per cpu, 
> 2 threads per core) family 6 model 85 stepping 4, cmov, cx8, fxsr, mmx, 
> sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, vzeroupper, avx, avx2, 
> aes, clmul, erms, rtm, 3dnowpref, lzcnt, ht, tsc, bmi1, bmi2, adx, 
> avx512f, avx512dq, avx512cd, avx512bw, avx512vl, fma, clflush, 
> clflushopt, clwb
> ...
> [0.011s][info][os,cpu] flags        : fpu vme de pse tsc msr pae mce cx8 
> apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht 
> syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl 
> xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid 
> sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c 
> rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single 
> pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase 
> tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq 
> rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt 
> xsavec xgetbv1 xsaves arat umip pku ospke md_clear
> ...


More information about the hotspot-dev mailing list