Static variables during marking phase of PSParallelCompact

Lokesh Gidra lokesh.gidra at yahoo.com
Fri Apr 26 07:45:56 UTC 2013


Thanks a lot. This is exactly what I was looking for.

Regards,
Lokesh



----- Original Message -----
> From: Thomas Schatzl <thomas.schatzl at oracle.com>
> To: Lokesh Gidra <lokesh.gidra at yahoo.com>
> Cc: "hotspot-gc-dev at openjdk.java.net" <hotspot-gc-dev at openjdk.java.net>
> Sent: Thursday, 25 April 2013 7:25 PM
> Subject: Re: Static variables during marking phase of PSParallelCompact
> 
> Hi,
> 
> On Thu, 2013-04-25 at 23:38 +0800, Lokesh Gidra wrote:
>>  OK. Can you please also tell me which particular root type will cover them?
> 
> There is no direct "root type": they are probably most directly
> reachable via the java.lang.Class instances when iterating over the
> ClassLoaderDataGraph; search for ClassLoaderDataGraph::oops_do() and
> ClassLoaderDataGraph::always_strong_oops_do(). I.e. the _class_loader
> member of the ClassLoaderData class.
> 
> If your question is during which root scanning task the CLDG will be
> iterated, it's the SH_PS_SystemDictionary_oops_do task. See also
> SharedHeap::process_strong_roots().
> 
> The code that finds the static members within a java.lang.Class instance
> is in instanceMirrorKlass.?pp.
> 
> Hth,
>   Thomas
> 



More information about the hotspot-gc-dev mailing list