RFR/C: 8218922: SA: Enable best-effort implementation of live regions iteration for ZGC

Stefan Karlsson stefan.karlsson at oracle.com
Thu Feb 14 13:17:30 UTC 2019


If this patch is accepted we also need this patch to turn on the SA 
hprof implementation:
http://cr.openjdk.java.net/~stefank/8218970/webrev.01/

StefanK

On 2019-02-13 15: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