8215549: Shenandoah deduplication cleans up table/queue twice
Reviewed-by: rkennke
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Mon Jan 14 12:24:25 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Mon Jan 14 12:51:45 2019 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2013, 2019, Red Hat, Inc. All rights reserved.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
@@ -1930,13 +1930,6 @@
_workers->run_task(&unlink_task);
}
- if (ShenandoahStringDedup::is_enabled()) {
- ShenandoahGCPhase phase(full_gc ?
- ShenandoahPhaseTimings::full_gc_purge_string_dedup :
- ShenandoahPhaseTimings::purge_string_dedup);
- ShenandoahStringDedup::parallel_cleanup();
- }
-
{
ShenandoahGCPhase phase(full_gc ?
ShenandoahPhaseTimings::full_gc_purge_cldg :
--- a/src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp Mon Jan 14 12:24:25 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp Mon Jan 14 12:51:45 2019 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2017, 2019, Red Hat, Inc. All rights reserved.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
@@ -89,7 +89,6 @@
f(purge_class_unload, " Unload Classes") \
f(purge_par, " Parallel Cleanup") \
f(purge_cldg, " CLDG") \
- f(purge_string_dedup, " String Dedup") \
f(complete_liveness, " Complete Liveness") \
f(prepare_evac, " Prepare Evacuation") \
f(recycle_regions, " Recycle regions") \
@@ -255,7 +254,6 @@
f(full_gc_purge_class_unload, " Unload Classes") \
f(full_gc_purge_par, " Parallel Cleanup") \
f(full_gc_purge_cldg, " CLDG") \
- f(full_gc_purge_string_dedup, " String Dedup") \
f(full_gc_calculate_addresses, " Calculate Addresses") \
f(full_gc_calculate_addresses_regular, " Regular Objects") \
f(full_gc_calculate_addresses_humong, " Humongous Objects") \
--- a/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp Mon Jan 14 12:24:25 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp Mon Jan 14 12:51:45 2019 -0500
@@ -113,14 +113,6 @@
}
};
-void ShenandoahStringDedup::parallel_cleanup() {
- assert(SafepointSynchronize::is_at_safepoint(), "Must be at a safepoint");
- log_debug(gc, stringdedup)("String dedup cleanup");
- ShenandoahIsMarkedNextClosure cl;
-
- unlink_or_oops_do(&cl, NULL, true);
-}
-
//
// Task for parallel unlink_or_oops_do() operation on the deduplication queue
// and table.
--- a/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.hpp Mon Jan 14 12:24:25 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.hpp Mon Jan 14 12:51:45 2019 -0500
@@ -42,9 +42,6 @@
static void parallel_oops_do(OopClosure* cl, uint worker_id);
static void oops_do_slow(OopClosure* cl);
- // Parallel cleanup string dedup queues/table
- static void parallel_cleanup();
-
static inline bool is_candidate(oop obj) {
return java_lang_String::is_instance_inlined(obj) &&
java_lang_String::value(obj) != NULL;