8235654: JFR leak profiler should not trace through the StringTable
Reviewed-by: stefank, coleenp, kbarrett, egahlin
This commit is contained in:
parent
57bdfe3dd4
commit
97ce13767a
@ -383,11 +383,6 @@ oop StringTable::do_intern(Handle string_or_null_h, const jchar* name,
|
|||||||
} while(true);
|
} while(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StringTable::oops_do(OopClosure* f) {
|
|
||||||
assert(f != NULL, "No closure");
|
|
||||||
OopStorageSet::string_table_weak()->oops_do(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Concurrent work
|
// Concurrent work
|
||||||
void StringTable::grow(JavaThread* jt) {
|
void StringTable::grow(JavaThread* jt) {
|
||||||
StringTableHash::GrowTask gt(_local_table);
|
StringTableHash::GrowTask gt(_local_table);
|
||||||
|
@ -94,11 +94,6 @@ class StringTable : public CHeapObj<mtSymbol>{
|
|||||||
// strings to this method.
|
// strings to this method.
|
||||||
static void inc_dead_counter(size_t ndead) { add_items_to_clean(ndead); }
|
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
|
// Probing
|
||||||
static oop lookup(Symbol* symbol);
|
static oop lookup(Symbol* symbol);
|
||||||
static oop lookup(const jchar* chars, int length);
|
static oop lookup(const jchar* chars, int length);
|
||||||
|
@ -79,7 +79,6 @@ void RootSetClosure<Delegate>::process() {
|
|||||||
JvmtiExport::oops_do(this);
|
JvmtiExport::oops_do(this);
|
||||||
SystemDictionary::oops_do(this);
|
SystemDictionary::oops_do(this);
|
||||||
Management::oops_do(this);
|
Management::oops_do(this);
|
||||||
StringTable::oops_do(this);
|
|
||||||
AOTLoader::oops_do(this);
|
AOTLoader::oops_do(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,13 +174,6 @@ bool ReferenceToRootClosure::do_management_roots() {
|
|||||||
return rlc.complete();
|
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() {
|
bool ReferenceToRootClosure::do_aot_loader_roots() {
|
||||||
assert(!complete(), "invariant");
|
assert(!complete(), "invariant");
|
||||||
ReferenceLocateClosure rcl(_callback, OldObjectRoot::_aot, OldObjectRoot::_type_undetermined, NULL);
|
ReferenceLocateClosure rcl(_callback, OldObjectRoot::_aot, OldObjectRoot::_type_undetermined, NULL);
|
||||||
@ -228,11 +221,6 @@ bool ReferenceToRootClosure::do_roots() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (do_string_table_roots()) {
|
|
||||||
_complete = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (do_aot_loader_roots()) {
|
if (do_aot_loader_roots()) {
|
||||||
_complete = true;
|
_complete = true;
|
||||||
return true;
|
return true;
|
||||||
|
@ -41,7 +41,6 @@ class OldObjectRoot : public AllStatic {
|
|||||||
_management,
|
_management,
|
||||||
_jvmti,
|
_jvmti,
|
||||||
_code_cache,
|
_code_cache,
|
||||||
_string_table,
|
|
||||||
_aot,
|
_aot,
|
||||||
JVMCI_ONLY(_jvmci COMMA)
|
JVMCI_ONLY(_jvmci COMMA)
|
||||||
_number_of_systems
|
_number_of_systems
|
||||||
@ -78,8 +77,6 @@ class OldObjectRoot : public AllStatic {
|
|||||||
return "JVMTI";
|
return "JVMTI";
|
||||||
case _code_cache:
|
case _code_cache:
|
||||||
return "Code Cache";
|
return "Code Cache";
|
||||||
case _string_table:
|
|
||||||
return "String Table";
|
|
||||||
case _aot:
|
case _aot:
|
||||||
return "AOT";
|
return "AOT";
|
||||||
#if INCLUDE_JVMCI
|
#if INCLUDE_JVMCI
|
||||||
|
Loading…
x
Reference in New Issue
Block a user