Static variables during marking phase of PSParallelCompact

Thomas Schatzl thomas.schatzl at oracle.com
Thu Apr 25 17:25:11 UTC 2013


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