Skip to content
Permalink
Browse files

8235654: JFR leak profiler should not trace through the StringTable

Reviewed-by: stefank, coleenp, kbarrett, egahlin
  • Loading branch information
fisk committed Dec 11, 2019
1 parent 57bdfe3 commit 97ce13767a3942ed5a3a481a8a7bec5fdc0df937
@@ -383,11 +383,6 @@ oop StringTable::do_intern(Handle string_or_null_h, const jchar* name,
} 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);
@@ -94,11 +94,6 @@ class StringTable : public CHeapObj<mtSymbol>{
// 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);
@@ -79,7 +79,6 @@ void RootSetClosure<Delegate>::process() {
JvmtiExport::oops_do(this);
SystemDictionary::oops_do(this);
Management::oops_do(this);
StringTable::oops_do(this);
AOTLoader::oops_do(this);
}

@@ -174,13 +174,6 @@ bool ReferenceToRootClosure::do_management_roots() {
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 @@ bool ReferenceToRootClosure::do_roots() {
return true;
}

if (do_string_table_roots()) {
_complete = true;
return true;
}

if (do_aot_loader_roots()) {
_complete = true;
return true;
@@ -41,7 +41,6 @@ class OldObjectRoot : public AllStatic {
_management,
_jvmti,
_code_cache,
_string_table,
_aot,
JVMCI_ONLY(_jvmci COMMA)
_number_of_systems
@@ -78,8 +77,6 @@ class OldObjectRoot : public AllStatic {
return "JVMTI";
case _code_cache:
return "Code Cache";
case _string_table:
return "String Table";
case _aot:
return "AOT";
#if INCLUDE_JVMCI

0 comments on commit 97ce137

Please sign in to comment.
You can’t perform that action at this time.