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

Jesper Wilhelmsson jesper.wilhelmsson at oracle.com
Mon Mar 24 11:23:35 UTC 2014


Looks good!
/Jesper

Per Liden skrev 24/3/14 09:53:
> 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