File tree Expand file tree Collapse file tree 1 file changed +0
-18
lines changed
src/hotspot/share/runtime Expand file tree Collapse file tree 1 file changed +0
-18
lines changed Original file line number Diff line number Diff line change @@ -720,24 +720,6 @@ void ObjectSynchronizer::notifyall(Handle obj, TRAPS) {
720
720
721
721
// -----------------------------------------------------------------------------
722
722
// Hash Code handling
723
- //
724
- // Performance concern:
725
- // OrderAccess::storestore() calls release() which at one time stored 0
726
- // into the global volatile OrderAccess::dummy variable. This store was
727
- // unnecessary for correctness. Many threads storing into a common location
728
- // causes considerable cache migration or "sloshing" on large SMP systems.
729
- // As such, I avoided using OrderAccess::storestore(). In some cases
730
- // OrderAccess::fence() -- which incurs local latency on the executing
731
- // processor -- is a better choice as it scales on SMP systems.
732
- //
733
- // See http://blogs.oracle.com/dave/entry/biased_locking_in_hotspot for
734
- // a discussion of coherency costs. Note that all our current reference
735
- // platforms provide strong ST-ST order, so the issue is moot on IA32,
736
- // x64, and SPARC.
737
- //
738
- // As a general policy we use "volatile" to control compiler-based reordering
739
- // and explicit fences (barriers) to control for architectural reordering
740
- // performed by the CPU(s) or platform.
741
723
742
724
struct SharedGlobals {
743
725
char _pad_prefix[OM_CACHE_LINE_SIZE];
You can’t perform that action at this time.
0 commit comments