RFR(XS) - 8u backport: 8029075: String deduplication in G1

Per Liden per.liden at oracle.com
Mon Mar 24 08:53:10 UTC 2014


Hi,

Could I please have a couple of reviews of the 8u-backport of String 
deduplication.

http://cr.openjdk.java.net/~pliden/8029075/webrev.8u-backport.0/

The patch that went into 9 didn't apply 100% cleanly to 8u, there were 
two trivial merge conflicts.

1) The test/gc/g1/TestGCLogMessages.java does not exist in 8u. The dedup 
patch added 5 lines in that file to verify some dedup GC log output. 
That part was removed from the backport.

2) The other conflict is in g1GCPhaseTimes.cpp, since "Code Root Purge" 
was added in 9 the following part needed a one-line adjustment:

--- g1GCPhaseTimes.cpp
+++ g1GCPhaseTimes.cpp
@@ -303,6 +321,11 @@
    print_stats(1, "Code Root Fixup", 
_cur_collection_code_root_fixup_time_ms);
    print_stats(1, "Code Root Migration", 
_cur_strong_code_root_migration_time_ms);
    print_stats(1, "Code Root Purge", _cur_strong_code_root_purge_time_ms);
+  if (G1StringDedup::is_enabled()) {
+    print_stats(1, "String Dedup Fixup", 
_cur_string_dedup_fixup_time_ms, _active_gc_threads);
+    _cur_string_dedup_queue_fixup_worker_times_ms.print(2, "Queue Fixup 
(ms)");
+    _cur_string_dedup_table_fixup_worker_times_ms.print(2, "Table Fixup 
(ms)");
+  }
    print_stats(1, "Clear CT", _cur_clear_ct_time_ms);
    double misc_time_ms = pause_time_sec * MILLIUNITS - accounted_time_ms();
    print_stats(1, "Other", misc_time_ms);


... and now instead looks like:

--- g1GCPhaseTimes.cpp
+++ g1GCPhaseTimes.cpp
@@ -299,6 +317,11 @@
    }
    print_stats(1, "Code Root Fixup", 
_cur_collection_code_root_fixup_time_ms);
    print_stats(1, "Code Root Migration", 
_cur_strong_code_root_migration_time_ms);
+  if (G1StringDedup::is_enabled()) {
+    print_stats(1, "String Dedup Fixup", 
_cur_string_dedup_fixup_time_ms, _active_gc_threads);
+    _cur_string_dedup_queue_fixup_worker_times_ms.print(2, "Queue Fixup 
(ms)");
+    _cur_string_dedup_table_fixup_worker_times_ms.print(2, "Table Fixup 
(ms)");
+  }
    print_stats(1, "Clear CT", _cur_clear_ct_time_ms);
    double misc_time_ms = pause_time_sec * MILLIUNITS - accounted_time_ms();
    print_stats(1, "Other", misc_time_ms);


Thanks!
/Per


More information about the hotspot-dev mailing list