RFR/C: 8218922: SA: Enable best-effort implementation of live regions iteration for ZGC
Yasumasa Suenaga
yasuenag at gmail.com
Thu Feb 14 13:11:06 UTC 2019
Hi Stefan,
> Maybe this is enough to enable a bit more SA debugging capabilities when
> running with ZGC? What do you think, should we bring in this change?
I think it should be brought this in.
I filed same issue as JDK-8207843, but I've not yet worked.
So I will close it as duplicate of your change.
> To be able to implement this more cleanly I've restructured the live
> region collection, and pushed GC specific code into the specific GCs.
> There are some extra usage of generics to make the code a bit easier to
> read and develop.
IMHO refactoring for live region collection and ZGC related changes should
be separated. What do you think?
Your change looks good to me.
BTW, did you check `jhsdb jmap --binaryheap` with this change?
Thanks,
Yasumasa
On 2019/02/13 23:52, Stefan Karlsson wrote:
> Hi all,
>
> Please review / comment on this patch to enable a best-effort live heap
> region iteration implementation in ZGC.
>
> http://cr.openjdk.java.net/~stefank/8218922/webrev.01/
> https://bugs.openjdk.java.net/browse/JDK-8218922
>
> The SA has functionally that relies on live heap region information from
> the GCs. This is problematic when dead objects are left in the heap, and
> their classes have been unloaded.
>
> Because of this ZGC has so far not implemented this feature. However, we
> could provide a best-effort implementation that most likely will work if
> classes are not unloaded (or class unloading is turned off), and
> otherwise might fail to fully parse and report all live heap regions.
>
> For active, non-relocating pages the patch simply returns [start, top)
> and for pages being actively relocated, it reports regions containing
> the non-forwarded objects, the other objects are either dead or could be
> found in one of the to-regions.
>
> With this patch I'm able to get heap histograms with ZGC.
>
> Maybe this is enough to enable a bit more SA debugging capabilities when
> running with ZGC? What do you think, should we bring in this change?
>
> To be able to implement this more cleanly I've restructured the live
> region collection, and pushed GC specific code into the specific GCs.
> There are some extra usage of generics to make the code a bit easier to
> read and develop.
>
> Thanks,
> StefanK
>
More information about the serviceability-dev
mailing list