changeset 57372:e2232c851cdb

8235654: JFR leak profiler should not trace through the StringTable Reviewed-by: stefank, coleenp, kbarrett, egahlin
author eosterlund
date Wed, 11 Dec 2019 16:45:08 +0000
parents c6003f6b79af
children 29ca931d8f86
files src/hotspot/share/classfile/stringTable.cpp src/hotspot/share/classfile/stringTable.hpp src/hotspot/share/jfr/leakprofiler/chains/rootSetClosure.cpp src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp src/hotspot/share/jfr/leakprofiler/utilities/rootType.hpp
diffstat 5 files changed, 0 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/hotspot/share/classfile/stringTable.cpp	Wed Dec 11 08:22:04 2019 -0800
+++ b/src/hotspot/share/classfile/stringTable.cpp	Wed Dec 11 16:45:08 2019 +0000
@@ -383,11 +383,6 @@
   } while(true);
 }
 
-void StringTable::oops_do(OopClosure* f) {
-  assert(f != NULL, "No closure");
-  OopStorageSet::string_table_weak()->oops_do(f);
-}
-
 // Concurrent work
 void StringTable::grow(JavaThread* jt) {
   StringTableHash::GrowTask gt(_local_table);
--- a/src/hotspot/share/classfile/stringTable.hpp	Wed Dec 11 08:22:04 2019 -0800
+++ b/src/hotspot/share/classfile/stringTable.hpp	Wed Dec 11 16:45:08 2019 +0000
@@ -94,11 +94,6 @@
   // strings to this method.
   static void inc_dead_counter(size_t ndead) { add_items_to_clean(ndead); }
 
-  // Serially invoke "f->do_oop" on the locations of all oops in the table.
-  // Used by JFR leak profiler.  TODO: it should find these oops through
-  // the WeakProcessor.
-  static void oops_do(OopClosure* f);
-
   // Probing
   static oop lookup(Symbol* symbol);
   static oop lookup(const jchar* chars, int length);
--- a/src/hotspot/share/jfr/leakprofiler/chains/rootSetClosure.cpp	Wed Dec 11 08:22:04 2019 -0800
+++ b/src/hotspot/share/jfr/leakprofiler/chains/rootSetClosure.cpp	Wed Dec 11 16:45:08 2019 +0000
@@ -79,7 +79,6 @@
   JvmtiExport::oops_do(this);
   SystemDictionary::oops_do(this);
   Management::oops_do(this);
-  StringTable::oops_do(this);
   AOTLoader::oops_do(this);
 }
 
--- a/src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp	Wed Dec 11 08:22:04 2019 -0800
+++ b/src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp	Wed Dec 11 16:45:08 2019 +0000
@@ -174,13 +174,6 @@
   return rlc.complete();
 }
 
-bool ReferenceToRootClosure::do_string_table_roots() {
-  assert(!complete(), "invariant");
-  ReferenceLocateClosure rlc(_callback, OldObjectRoot::_string_table, OldObjectRoot::_type_undetermined, NULL);
-  StringTable::oops_do(&rlc);
-  return rlc.complete();
-}
-
 bool ReferenceToRootClosure::do_aot_loader_roots() {
   assert(!complete(), "invariant");
   ReferenceLocateClosure rcl(_callback, OldObjectRoot::_aot, OldObjectRoot::_type_undetermined, NULL);
@@ -228,11 +221,6 @@
     return true;
   }
 
-  if (do_string_table_roots()) {
-   _complete = true;
-    return true;
-  }
-
   if (do_aot_loader_roots()) {
    _complete = true;
     return true;
--- a/src/hotspot/share/jfr/leakprofiler/utilities/rootType.hpp	Wed Dec 11 08:22:04 2019 -0800
+++ b/src/hotspot/share/jfr/leakprofiler/utilities/rootType.hpp	Wed Dec 11 16:45:08 2019 +0000
@@ -41,7 +41,6 @@
     _management,
     _jvmti,
     _code_cache,
-    _string_table,
     _aot,
     JVMCI_ONLY(_jvmci COMMA)
     _number_of_systems
@@ -78,8 +77,6 @@
         return "JVMTI";
       case _code_cache:
         return "Code Cache";
-      case _string_table:
-        return "String Table";
       case _aot:
         return "AOT";
 #if INCLUDE_JVMCI