mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8212879: Make JVMTI TagMap table concurrent
Co-authored-by: Kim Barrett <kbarrett@openjdk.org> Co-authored-by: Coleen Phillimore <coleenp@openjdk.org> Reviewed-by: stefank, ihse, zgu, eosterlund, sspitsyn, kbarrett
This commit is contained in:
parent
3a4b90f086
commit
ba721f5f2f
49 changed files with 904 additions and 1127 deletions
|
@ -680,16 +680,24 @@ void JvmtiExport::post_vm_start() {
|
|||
}
|
||||
|
||||
static OopStorage* _jvmti_oop_storage = NULL;
|
||||
static OopStorage* _weak_tag_storage = NULL;
|
||||
|
||||
OopStorage* JvmtiExport::jvmti_oop_storage() {
|
||||
assert(_jvmti_oop_storage != NULL, "not yet initialized");
|
||||
return _jvmti_oop_storage;
|
||||
}
|
||||
|
||||
OopStorage* JvmtiExport::weak_tag_storage() {
|
||||
assert(_weak_tag_storage != NULL, "not yet initialized");
|
||||
return _weak_tag_storage;
|
||||
}
|
||||
|
||||
void JvmtiExport::initialize_oop_storage() {
|
||||
// OopStorage needs to be created early in startup and unconditionally
|
||||
// because of OopStorageSet static array indices.
|
||||
_jvmti_oop_storage = OopStorageSet::create_strong("JVMTI OopStorage");
|
||||
_weak_tag_storage = OopStorageSet::create_weak("JVMTI Tag Weak OopStorage");
|
||||
_weak_tag_storage->register_num_dead_callback(&JvmtiTagMap::gc_notification);
|
||||
}
|
||||
|
||||
void JvmtiExport::post_vm_initialized() {
|
||||
|
@ -1479,7 +1487,6 @@ void JvmtiExport::post_thread_end(JavaThread *thread) {
|
|||
}
|
||||
|
||||
void JvmtiExport::post_object_free(JvmtiEnv* env, jlong tag) {
|
||||
assert(SafepointSynchronize::is_at_safepoint(), "must be executed at safepoint");
|
||||
assert(env->is_enabled(JVMTI_EVENT_OBJECT_FREE), "checking");
|
||||
|
||||
EVT_TRIG_TRACE(JVMTI_EVENT_OBJECT_FREE, ("[?] Trg Object Free triggered" ));
|
||||
|
@ -2636,10 +2643,6 @@ void JvmtiExport::clear_detected_exception(JavaThread* thread) {
|
|||
}
|
||||
}
|
||||
|
||||
void JvmtiExport::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f) {
|
||||
JvmtiTagMap::weak_oops_do(is_alive, f);
|
||||
}
|
||||
|
||||
// Onload raw monitor transition.
|
||||
void JvmtiExport::transition_pending_onload_raw_monitors() {
|
||||
JvmtiPendingMonitors::transition_raw_monitors();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue