--- a/src/hotspot/share/runtime/sweeper.cpp Thu Oct 17 20:27:44 2019 +0100
+++ b/src/hotspot/share/runtime/sweeper.cpp Thu Oct 17 20:53:35 2019 +0100
@@ -38,7 +38,6 @@
#include "memory/universe.hpp"
#include "oops/method.hpp"
#include "runtime/atomic.hpp"
-#include "runtime/compilationPolicy.hpp"
#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/handshake.hpp"
#include "runtime/mutexLocker.hpp"
@@ -699,22 +698,9 @@
// Code cache state change is tracked in make_zombie()
cm->make_zombie();
SWEEP(cm);
- // The nmethod may have been locked by JVMTI after being made zombie (see
- // JvmtiDeferredEvent::compiled_method_unload_event()). If so, we cannot
- // flush the osr nmethod directly but have to wait for a later sweeper cycle.
- if (cm->is_osr_method() && !cm->is_locked_by_vm()) {
- // No inline caches will ever point to osr methods, so we can just remove it.
- // Make sure that we unregistered the nmethod with the heap and flushed all
- // dependencies before removing the nmethod (done in make_zombie()).
- assert(cm->is_zombie(), "nmethod must be unregistered");
- cm->flush();
- assert(result == None, "sanity");
- result = Flushed;
- } else {
- assert(result == None, "sanity");
- result = MadeZombie;
- assert(cm->is_zombie(), "nmethod must be zombie");
- }
+ assert(result == None, "sanity");
+ result = MadeZombie;
+ assert(cm->is_zombie(), "nmethod must be zombie");
} else {
// Still alive, clean up its inline caches
cm->cleanup_inline_caches(false);
@@ -722,20 +708,12 @@
}
} else if (cm->is_unloaded()) {
// Code is unloaded, so there are no activations on the stack.
- // Convert the nmethod to zombie or flush it directly in the OSR case.
- if (cm->is_osr_method()) {
- SWEEP(cm);
- // No inline caches will ever point to osr methods, so we can just remove it
- cm->flush();
- assert(result == None, "sanity");
- result = Flushed;
- } else {
- // Code cache state change is tracked in make_zombie()
- cm->make_zombie();
- SWEEP(cm);
- assert(result == None, "sanity");
- result = MadeZombie;
- }
+ // Convert the nmethod to zombie.
+ // Code cache state change is tracked in make_zombie()
+ cm->make_zombie();
+ SWEEP(cm);
+ assert(result == None, "sanity");
+ result = MadeZombie;
} else {
if (cm->is_nmethod()) {
possibly_flush((nmethod*)cm);