JDK-8357832 : Shenandoah: Fill out JfrVframeStream walk_continuation comment
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2025-05-27
  • Updated: 2025-08-11
Related Reports
Causes :  
Description
JDK-8352251 has the comment:

static inline RegisterMap::WalkContinuation walk_continuation(JavaThread* jt) {
  // NOTE: WalkContinuation::skip, because of interactions with ZGC relocation
  //       and load barriers. This code is run while generating stack traces for
  //       the ZPage allocation event, even when ZGC is relocating  objects.
  //       When ZGC is relocating, it is forbidden to run code that performs
  //       load barriers. With WalkContinuation::include, we visit heap stack
  //       chunks and could be using load barriers.
  //
  // NOTE: Shenandoah GC also seems to require this check - actual details as to why
  //       is unknown but to be filled in by others.
  return ((UseZGC || UseShenandoahGC) && !StackWatermarkSet::processing_started(jt))
    ? RegisterMap::WalkContinuation::skip
    : RegisterMap::WalkContinuation::include;
}

We need to fill it out for Shenandoah.
Comments
[~mgronlun] -- do you have a suggestion for a test that exercises this path? Would be interesting to drop `UseShenandoahGC` predicate from there and see what fails. Maybe you have already seen failures somewhere?
27-05-2025