On Fri, 2 Feb 2024 23:24:20 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> This PR adds G1 support to PointerFinder/PointerLocation. Previously we only 
> had SerialGC support. Previously for G1 addresses SA would only report that 
> the address is "In unknown section of Java heap" with no other details. Now 
> it provides details for G1 addresses. Here are some examples for clhsdb 
> `threadcontext` output. `threadcontext` dumps the contents of the thread's 
> registers, some of which are often in the java heap. In the output below the 
> first line is without verbose output and the 2nd is with:
> 
> 
> rbp: 0x00000000a0004080: In G1 heap region
> rbp: 0x00000000a0004080: In G1 heap Region: 
> 0x00000000a0000000,0x00000000a0018a30,0x00000000a1000000:Old
> 
> 
> I also added an improvement to how SA deals with addresses in the TLAB. It 
> used to only report that the address is in a TLAB and provide details about 
> the TLAB in verbose mode. Now if verbose mode is used, the heap region 
> information is included after the TLAB information. Here again is an example 
> without and with verbose output:
> 
> 
> rsi: 0x0000000166000000: In TLAB for thread "main" 
> sun.jvm.hotspot.runtime.JavaThread@0x00007f11c8029250
> rsi: 0x0000000166000000: In TLAB for thread ("main" #1 prio=5 
> tid=0x00007f11c8029250 nid=1503 runnable [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>    JavaThread state: _thread_in_java
> )  
> [0x0000000166000000,0x00000001662d0c90,0x00000001667ffdc0,{0x0000000166800000})
> In G1 heap Region: 
> 0x0000000166000000,0x0000000166800000,0x0000000167000000:Eden
> 
> 
> Note at the end it indicates the address is in the Eden space, which is 
> probably always the case for G1 TLAB addresses. For SerialGC is shows 
> something similar.
> 
> 
> rsi: 0x0000000088ff99e0: In TLAB for thread "main" 
> sun.jvm.hotspot.runtime.JavaThread@0x00007f0544029110
> rsi: 0x0000000088ff99e0: In TLAB for thread ("main" #1 prio=5 
> tid=0x00007f0544029110 nid=3098 runnable [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>    JavaThread state: _thread_in_java
> )  
> [0x0000000088ff99e0,0x000000008978c090,0x0000000089ae54b0,{0x0000000089ae56f0})
> In heap new generation:  eden 
> [0x0000000080200000,0x0000000089ae56f0,0x00000000a2420000) space capacity = 
> 572653568, 27.99656213789626 used
>   from [0x00000000a6860000,0x00000000a6860030,0x00000000aaca0000) space 
> capacity = 71565312, 6.707160027472528E-5 used
>   to   [0x00000000a2420000,0x00000000a2420000,0x00000000a6860000) space 
> capacity = 71565312, 0.0 used
> 
> 
> Testing all svc test in tier1, tier2, and tier5. Currently in progress.

This pull request has now been integrated.

Changeset: be7cc1c2
Author:    Chris Plummer <cjplum...@openjdk.org>
URL:       
https://git.openjdk.org/jdk/commit/be7cc1c2b083ac7cbcec6b0fe77caff16f14bb60
Stats:     73 lines in 4 files changed: 57 ins; 6 del; 10 mod

8323681: SA PointerFinder code should support G1

Reviewed-by: tschatzl, kevinw

-------------

PR: https://git.openjdk.org/jdk/pull/17691

Reply via email to