JDK-8263407 : SPARC64 detection fails on Athena (SPARC64-X)
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 11
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris
  • CPU: sparc_64
  • Submitted: 2021-03-11
  • Updated: 2021-07-09
  • Resolved: 2021-03-17
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11
Related Reports
Relates :  
In platform_features() (vm_version_solaris_sparc.cpp), we assume all Fujitsu SPARC64 CPUs are either pre-sun4v, or have support for either Athena+ or Athena++ instructions. But the original SPARC64-X (Athena without any pluses) is also a sun4v chip, so it gets mistakenly treated like a non-Fujitsu CPU, leading to crashes when several Oracle-specific "derived/synthetic features", like BIS support, are enabled.
I'd like to backport this fix to OpenJDK 11, implementation is described in the thread: https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2021-April/005999.html Changes were tested on solaris machine with tier-1 tests.

It should be pretty easy to add code to detect first generation Athena: === $ grep FJATH /usr/include/sys/auxv_SPARC.h #define AV_SPARC_B_FJATHHPC 12 /* Fujitsu HPC (Athena) instrs */ #define AV_SPARC_FJATHHPC (1U << AV_SPARC_B_FJATHHPC) /* 0x00001000 */ #define AV2_SPARC_B_FJATHPLUS 0 /* Fujitsu Athena+ */ #define AV2_SPARC_FJATHPLUS (1U << AV2_SPARC_B_FJATHPLUS) /* 0x00000001 */ #define AV2_SPARC_B_FJATHPLUS2 17 /* FJ Athena++ */ #define AV2_SPARC_FJATHPLUS2 (1U << AV2_SPARC_B_FJATHPLUS2) /* 0x00020000 */ $ ===

This is a regression that was very likely introduced with JDK-8172231.