JDK-8042930 : Consider removing UseMemSetInBOT
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris
  • CPU: sparc_64
  • Submitted: 2014-05-12
  • Updated: 2015-08-31
  • Resolved: 2015-08-31
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.
Related Reports
Relates :  
Relates :  
Relates :  
I'd suggest that we consider removing the VM flag UseMemSetInBOT. This is a dangerous flag to use as it will cause the VM to potentially crash on Sparc T4 (and later). There's currently a big warning printed when this is enabled by the user, but still, I don't see why anyone would want to ever enable this.

Further, after JDK-8039042 the name of this flag is slightly misleading, as it's not only used to control how the block offset table is initialized, but also how the cardtable is initialized. So instead of having a VM flag named UseMemSetInBOT we should have an internal state called memset_is_thread_safe (or something similar) which can be used by all cases where the memset() semantics is of interest.
Fixed. Option removed as part of fixing JDK-8131330.

When we really remove UseMemSetInBOT we should pay close attention to also consider other SPARC CPUs like for example Fujitsu Sparc64-X The following mail threads and bugs discussed the problems of checking the relevant CPU-features on Fujitsu CPUs "CPU-feature detection is broken for new Fujitsu Sparc64-X CPUs" http://mail.openjdk.java.net/pipermail/hotspot-dev/2013-November/thread.html#11834 "RFR(S): 8029190 : VM_Version::determine_features() asserts on Fujitsu Sparc64 CPUs" http://mail.openjdk.java.net/pipermail/hotspot-dev/2013-December/thread.html#11892 "VM_Version::determine_features() asserts on Fujitsu Sparc64 CPUs" https://bugs.openjdk.java.net/browse/JDK-8029190 I think we still couldn't find out until now how memset() is implemented on Solaris/Fujitsu Sparc-X and/or how BIS is working on Fujitsu Sparc-X.