You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR ports the generational code cache roots handling code from the
LXR branch. See
https://github.com/wenyuzhao/mmtk-openjdk/blob/lxr/mmtk/src/gc_work.rs#L242-L262
We split code cache roots into two hash tables, one for nursery roots
and one for mature roots. Nursery roots are those added since the
previous GC. In a nursery GC, we only scan the nursery code cache roots,
assuming mature code cache roots all point to mature objects. In a
full-heap GC, we scan both nursery and mature code cache roots.
Because code cache roots are added in bulk in the beginning of
execution, and are seldom added later, we expect the number of code
cache roots to reduce to zero for most nursery GCs, and greatly reduce
the root-scanning time.
This PR also adds USDT tracepoints for code cache roots, and make use of
the extensible eBPF timeline tools in mmtk-core introduced in
mmtk/mmtk-core#1162.
0 commit comments