JDK-7188227 : VM should recognize M-series SPARC
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: hs24,8
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,solaris
  • CPU: generic,sparc
  • Submitted: 2012-07-31
  • Updated: 2014-02-04
  • Resolved: 2012-08-11
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 6 JDK 7 JDK 8 Other
6u71Fixed 7u40Resolved 8Fixed hs24Fixed
Related Reports
Relates :  
Relates :  
We have flags ergonomic tuning (number of GC threads and other) for T-series SPARCs. VM checks kstat data to recognize T-series but it does not check for M-series for which the same tuning should be done.
M-series has a lot more threads then T-series: ParallelGCThreads=ncpus*5/16 (1488*5/16=465). Currently M-series CPU is not recognized as T-series and not niagara_plus and as result the number of GC threads even bigger (933).

Here is code in vm_version_sparc.cpp:

unsigned int VM_Version::calc_parallel_worker_threads() {
  unsigned int result;
  if (is_niagara_plus()) {
    result = nof_parallel_worker_threads(5, 16, 8);
  } else {
    result = nof_parallel_worker_threads(5, 8, 8);
  return result;

Notice that even more serious than configuring the wrong number of GC-Threads is the fact the without the proper detection of M-Series CPUS the "UseMemSetInBOT" option will not be properly unset on these CPUs. From vm_version.cpp: "When using CMS or G1, we cannot use memset() in BOT updates because the sun4v/CMT version in libc_psr uses BIS which exposes 'phantom zeros' to concurrent readers - see https://bugs.openjdk.java.net/browse/JDK-6948537.
EVALUATION http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/8cb110fd7627

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/8cb110fd7627

EVALUATION Check kstat data for SPARC-M.