RFR: 8279016: JFR Leak Profiler is broken with Shenandoah [v3]

Aleksey Shipilev shade at openjdk.org
Mon Jul 29 15:34:46 UTC 2024


On Mon, 29 Jul 2024 14:51:49 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

>> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Referencing INCLUDE_SHENANDOAHGC nominally requires macro.hpp
>
> src/hotspot/share/jfr/leakprofiler/chains/pathToGcRootsOperation.cpp line 147:
> 
>> 145:     // mark word uses by Shenandoah itself, if we hit the op during the concurrent
>> 146:     // GC cycle.
>> 147:     return ShenandoahHeap::heap()->is_idle();
> 
> I think you need to include shenandoahHeap.inline.hpp for this? Also, do we need to block this during all of GC, even marking? Would it make sense to only block during evac/updaterefs?

One of my attempts _did_ have a more sharp `!has_forwarded_objects()` check. But then I chickened out from specializing this, and instead trusting the more catch-all `is_idle()`. We can do a more precise test and relax it if we see more problems.

And right, we need a sharper include here, added.

See new commit.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/20328#discussion_r1695442228


More information about the hotspot-jfr-dev mailing list