RFR: FTS/LTS timestamps garble the hs_err
Zhengyu Gu
zgu at redhat.com
Tue Aug 1 15:32:15 UTC 2017
Okay.
-Zhengyu
On 08/01/2017 11:25 AM, Aleksey Shipilev wrote:
> That happens because "%8lf" takes 6 characters after decimal point on my machine. Which means
> two-digit seconds start to overflow. Solution:
>
> $ hg diff
> diff -r b0d726d962fc src/share/vm/gc/shenandoah/shenandoahHeap.cpp
> --- a/src/share/vm/gc/shenandoah/shenandoahHeap.cpp Tue Aug 01 14:49:57 2017 +0200
> +++ b/src/share/vm/gc/shenandoah/shenandoahHeap.cpp Tue Aug 01 17:24:07 2017 +0200
> @@ -934,6 +934,7 @@
> "HS=humongous(starts), HC=humongous(continuation),");
> st->print_cr("CS=collection set, R=root, CP=critical pins, "
> "TAMS=top-at-mark-start (previous, next)");
> + st->print_cr("FTS=first use timestamp, LTS=last use timestamp");
>
> _ordered_regions->print(st);
> }
> diff -r b0d726d962fc src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp
> --- a/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp Tue Aug 01 14:49:57 2017 +0200
> +++ b/src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp Tue Aug 01 17:24:07 2017 +0200
> @@ -146,8 +146,8 @@
> st->print("|G %3d%%", (int) ((double) get_gclab_allocs() * 100 / capacity()));
> st->print("|S %3d%%", (int) ((double) get_shared_allocs() * 100 / capacity()));
> st->print("|L %3d%%", (int) ((double) get_live_data_bytes() * 100 / capacity()));
> - st->print("|FTS %8lf", first_timestamp());
> - st->print("|LTS %8lf", last_timestamp());
> + st->print("|FTS %10.3lf", first_timestamp());
> + st->print("|LTS %10.3lf", last_timestamp());
> if (is_humongous_start()) {
> st->print("|H ");
> } else if (is_humongous_continuation()) {
>
>
> Thanks,
> -Aleksey
>
More information about the shenandoah-dev
mailing list