On Fri, 26 Jan 2024 21:20:04 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

>> In PointerFinder.java we have some code to determine if a pointer is in a 
>> TLAB, but it only executes for the SerialGC. It should work for all GCs, so 
>> I moved the code out of the SerialGC block.
>> 
>> I also cleaned up the printing in PointerLocation. java a bit so when not 
>> using verbose mode not as much info about the tlab address is printed. This 
>> is consistent with other addresses, such as java stack addresses, which is 
>> what I modeled this change on.
>> 
>> It's hard to test this change since it is hard to consistently get an 
>> address to be in the tlab. I wrote a little test program that just sits in a 
>> loop doing allocations. I attached to it with clhsdb and ran the 
>> threadcontext command, which does a fincpc on each register. About half the 
>> time the main thread was suspended in a frame where some registers where 
>> pointing into the tlab, and I confirmed this was the case for both SerialGC 
>> and G1. Here's an example of one register with verbose off and verbose on:
>> 
>> rsi: 0x000000008a5d4448: In TLAB for thread "main" 
>> sun.jvm.hotspot.runtime.JavaThread@0x00007ffa24029000
>> 
>> rsi: 0x000000008a5d4448: In TLAB for thread ("main" #1 prio=5 
>> tid=0x00007ffa24029000 nid=25392 runnable [0x0000000000000000]
>>    java.lang.Thread.State: RUNNABLE
>>    JavaThread state: _thread_in_java
>> )  
>> [0x000000008a5d4448,0x000000008ab724b8,0x000000008b0c0250,{0x000000008b0c0490})
>> 
>> For testing I ran all tier1, tier2, and tier5 svc tests (still in progress)
>
> Chris Plummer has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Get rid of inTLAB field. Not needed

Thanks for the review Kevin. Can I get one more review please? Thanks!

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

PR Comment: https://git.openjdk.org/jdk/pull/17494#issuecomment-1917766779

Reply via email to