RFR: 8246135: ZGC: Save important log lines and print them when dumping hs_err files

Stefan Karlsson stefan.karlsson at oracle.com
Tue Jun 2 13:51:51 UTC 2020

Hi all,

While working on getting more information when dumping early during 
initialization, it became apparent that we don't print these log lines 
as early as we could. In ZGC we can assert and/or fail during the set up 
of the heap. I'd like to print the precious lines even when that 
happens. The following patch moves the the precious line printing out of 
ZCollectedHeap and into a direct call from the VMError code. GCs that 
populate these lines will now automatically get them printed.



On 2020-05-29 12:23, Stefan Karlsson wrote:
> Hi all,
> Please review this patch to save some of the important ZGC log lines 
> and print them when dumping hs_err files.
> https://cr.openjdk.java.net/~stefank/8246135/webrev.01/
> https://bugs.openjdk.java.net/browse/JDK-8246135
> The patch adds a concept of "precious" log lines. What's typically 
> logged are GC initialization lines, but also error messages are saved. 
> These lines are then dumped in the hs_err file if the JVM crashes or 
> hits an assert. The lines can also be printed in a debugger to get a 
> quick overview when debugging.
> The precious lines are always saved, but just like any other Unified 
> Logging calls, only logged if the tags are enabled.
> The patch builds on the JDK-8246134 patch. The hs_err output looks 
> like this:
> ZGC Precious Log:
>  NUMA Support: Disabled
>  CPUs: 8 total, 8 available
>  Memory: 16384M
>  Large Page Support: Disabled
>  Medium Page Size: 32M
>  Workers: 5 parallel, 1 concurrent
>  Address Space Type: Contiguous/Unrestricted/Complete
>  Address Space Size: 65536M x 3 = 196608M
>  Min Capacity: 42M
>  Initial Capacity: 256M
>  Max Capacity: 4096M
>  Max Reserve: 42M
>  Pre-touch: Disabled
>  Uncommit: Enabled
>  Uncommit Delay: 300s
>  Runtime Workers: 5 parallel
> ZGC Globals:
>  GlobalPhase:       2 (Relocate)
>  GlobalSeqNum:      1
>  Offset Max:        4096G (0x0000040000000000)
>  Page Size Small:   2M
>  Page Size Medium:  32M
> ZGC Metadata Bits:
>  Good:              0x0000100000000000
>  Bad:               0x00002c0000000000
>  WeakBad:           0x00000c0000000000
>  Marked:            0x0000040000000000
>  Remapped:          0x0000100000000000
> Heap:
>  ZHeap           used 12M, capacity 256M, max capacity 4096M
>  Metaspace       used 6501K, capacity 6615K, committed 6784K, reserved 
> 1056768K
>   class space    used 559K, capacity 588K, committed 640K, reserved 
> 1048576K
> ZGC Page Table:
>  Small   0x0000000000000000 0x0000000000200000 0x0000000000200000 
> Allocating
>  Small   0x0000000000200000 0x0000000000240000 0x0000000000400000 
> Allocating
>  Small   0x0000000000400000 0x0000000000600000 0x0000000000600000 
> Allocating
>  Small   0x0000000000600000 0x0000000000800000 0x0000000000800000 
> Allocating
>  Small   0x0000000000800000 0x00000000009c0000 0x0000000000a00000 
> Allocating
>  Small   0x0000000000a00000 0x0000000000a40000 0x0000000000c00000 
> Allocating
> Thanks,
> StefanK

More information about the hotspot-gc-dev mailing list