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