RFR: 8337511: Implement JEP-404: Generational Shenandoah (Experimental) [v3]
William Kemper
wkemper at openjdk.org
Fri Oct 11 21:36:27 UTC 2024
On Thu, 10 Oct 2024 17:44:03 GMT, Roman Kennke <rkennke at openjdk.org> wrote:
>> William Kemper has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 478 commits:
>>
>> - Fix merge error
>> - Merge remote-tracking branch 'jdk/master' into great-genshen-pr-redux
>> - Merge remote-tracking branch 'jdk/master' into great-genshen-pr-redux
>> - Merge branch 'shenandoah/master' into great-genshen-pr-redux
>> - Merge
>> - 8341099: GenShen: assert(HAS_FWD == _heap->has_forwarded_objects()) failed: Forwarded object status is sane
>>
>> Reviewed-by: kdnilsen
>> - 8341485: GenShen: Make evac tracker a non-product feature and confine it to generational mode
>>
>> Reviewed-by: kdnilsen, ysr
>> - Merge
>> - 8341042: GenShen: Reset mark bitmaps for unaffiliated regions when preparing for a cycle
>>
>> Reviewed-by: kdnilsen
>> - 8339616: GenShen: Introduce new state to distinguish promote-in-place phase as distinct from concurrent evacuation
>>
>> Reviewed-by: kdnilsen, shade, ysr
>> - ... and 468 more: https://git.openjdk.org/jdk/compare/b9db74a6...4db1e0e1
>
> src/hotspot/share/gc/shenandoah/shenandoahAffiliation.hpp line 58:
>
>> 56: default:
>> 57: ShouldNotReachHere();
>> 58: return "?";
>
> Same.
https://bugs.openjdk.org/browse/JDK-8341992
> src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp line 335:
>
>> 333: uint ShenandoahHeap::get_object_age(oop obj) {
>> 334: // This is impossible to do unless we "freeze" ABA-type oscillations
>> 335: // With Lilliput, we can do this more easily.
>
> The comment about Lilliput can be removed. Since we only return the actual age when the mark is not displaced, we already to the correct thing. With lightweight-locking, the mark can never be displaced, and this code should just work.
https://bugs.openjdk.org/browse/JDK-8341992
> src/hotspot/share/gc/shenandoah/shenandoahMmuTracker.hpp line 28:
>
>> 26: #define SHARE_GC_SHENANDOAH_SHENANDOAHMMUTRACKER_HPP
>> 27:
>> 28: #include "runtime/mutex.hpp"
>
> I think you don't use Mutex in this file.
https://bugs.openjdk.org/browse/JDK-8341992
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21273#discussion_r1797440111
PR Review Comment: https://git.openjdk.org/jdk/pull/21273#discussion_r1797439856
PR Review Comment: https://git.openjdk.org/jdk/pull/21273#discussion_r1797439708
More information about the shenandoah-dev
mailing list