[13] RFR(XS): 8225706: JFR RootResolver resets CLD claims with no restore

Zhengyu Gu zgu at redhat.com
Wed Jun 26 12:09:25 UTC 2019


Hi Markus,

Looks like RootSetClosure::process_roots() is single-threaded. Could you 
just not clear claimed masks for CLDG and use _claim_none instead to 
walk CLDG?

Thanks,

-Zhengyu

On 6/25/19 4:58 PM, Markus Gronlund wrote:
> Greetings,
> 
> Kindly asking for reviews for the following changeset:
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8225706
> Webrev: http://cr.openjdk.java.net/~mgronlun/8225706/webrev01/
> Testing: test/jdk/:jdk_jfr
> 
> Summary:
> We need to move SaveRestoreCLDClaimBits, from currently inside RootSetClosure::process_roots() back up to EmitEventOperation::doit() for proper scope.
> RootResolver::resolve() clears out already set claim bits via ClassLoaderDataGraph::clear_claimed_marks() under the (currently false) premise that the original claims will be restored later.
> The problematic path triggers only if the option "path-to-gc-roots=true" is set via the command-line or via jcmd AND an existing old object candidate is found.
> 
> Thanks to Stefan Karlsson for calling attention to this.
> 
> Thank you
> Markus
> 


More information about the hotspot-jfr-dev mailing list