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