< prev index next >

src/hotspot/share/code/codeCache.cpp

Print this page
rev 54697 : imported patch 8221734-v2-merge

*** 1135,1156 **** // stopped during the safepoint so CodeCache will be safe to update without // holding the CodeCache_lock. // At least one nmethod has been marked for deoptimization ! // All this already happens inside a VM_Operation, so we'll do all the work here. ! // Stuff copied from VM_Deoptimize and modified slightly. ! ! // We do not want any GCs to happen while we are in the middle of this VM operation ! ResourceMark rm; ! DeoptimizationMarker dm; ! ! // Deoptimize all activations depending on marked nmethods ! Deoptimization::deoptimize_dependents(); ! ! // Make the dependent methods not entrant ! make_marked_nmethods_not_entrant(); } #endif // INCLUDE_JVMTI // Deoptimize all methods void CodeCache::mark_all_nmethods_for_deoptimization() { --- 1135,1145 ---- // stopped during the safepoint so CodeCache will be safe to update without // holding the CodeCache_lock. // At least one nmethod has been marked for deoptimization ! Deoptimization::deoptimize_all_marked(); } #endif // INCLUDE_JVMTI // Deoptimize all methods void CodeCache::mark_all_nmethods_for_deoptimization() {
*** 1205,1216 **** KlassDepChange changes(dependee); // Compute the dependent nmethods if (mark_for_deoptimization(changes) > 0) { // At least one nmethod has been marked for deoptimization ! VM_Deoptimize op; ! VMThread::execute(&op); } } // Flushes compiled methods dependent on dependee void CodeCache::flush_dependents_on_method(const methodHandle& m_h) { --- 1194,1204 ---- KlassDepChange changes(dependee); // Compute the dependent nmethods if (mark_for_deoptimization(changes) > 0) { // At least one nmethod has been marked for deoptimization ! Deoptimization::deoptimize_all_marked(); } } // Flushes compiled methods dependent on dependee void CodeCache::flush_dependents_on_method(const methodHandle& m_h) {
*** 1221,1244 **** // stopped dring the safepoint so CodeCache will be safe to update without // holding the CodeCache_lock. // Compute the dependent nmethods if (mark_for_deoptimization(m_h()) > 0) { ! // At least one nmethod has been marked for deoptimization ! ! // All this already happens inside a VM_Operation, so we'll do all the work here. ! // Stuff copied from VM_Deoptimize and modified slightly. ! ! // We do not want any GCs to happen while we are in the middle of this VM operation ! ResourceMark rm; ! DeoptimizationMarker dm; ! ! // Deoptimize all activations depending on marked nmethods ! Deoptimization::deoptimize_dependents(); ! ! // Make the dependent methods not entrant ! make_marked_nmethods_not_entrant(); } } void CodeCache::verify() { assert_locked_or_safepoint(CodeCache_lock); --- 1209,1219 ---- // stopped dring the safepoint so CodeCache will be safe to update without // holding the CodeCache_lock. // Compute the dependent nmethods if (mark_for_deoptimization(m_h()) > 0) { ! Deoptimization::deoptimize_all_marked(); } } void CodeCache::verify() { assert_locked_or_safepoint(CodeCache_lock);
< prev index next >