Functional: - eosterlund v2.10 CR: reorganize deflate_monitor_using_JT() to use "early exit" style - dcubed - clarify/fix/rearrange a few comments in deflate_monitor_using_JT() - eosterlund v2.10 CR: simplify install_displaced_markword_in_object() - dcubed - save_om_ptr()'s call (now ObjectMonitor::enter()'s call) to install_displaced_markword_in_object() can race with the deflater thread's clearing of the object field so handle that with a local copy of the oop. - dcubed - DaCapo-h2 perf testing showed that ref_counting causes a ~22.8% slow down with -XX:-AsyncDeflateIdleMonitors ("off" mode). The slow down with "on" mode -XX:+AsyncDeflateIdleMonitors is ~17%. Removed ObjectMonitor::_ref_count, the associated functions and the ObjectMonitorHandle class. Updated all the previous ObjectMonitorHandle sites with a comment explaining the interaction with async monitor deflation at that point. The second part of the async deflation protocol moves from the _ref_count field to the _contentions field (which is how Carsten did it in his prototype). - Migrated the ObjectMonitor::_contentions field away from volatile to using Atomic operations. Test update: - None. Cleanup: - Clarify comments in BasicLock::move_to() and SharedRuntime::OSR_migration_begin(); most of these changes are baseline related so they could be pushed with a separate sub-task. Notes: - src/hotspot/share/runtime/thread.hpp in the "full" webrev has no changes. The "inc" webrev shows the changes that were removed by the v2.11 patch. - src/hotspot/share/services/threadService.cpp has an include for runtime/safepointVerifiers.hpp that was added for an earlier version of v2.11. It's no longer needed so I'll be removing that before I push.