RFR: 8328235: GenShen: Robustify ShenandoahGCSession and fix missing use [v16]

Y. Srinivas Ramakrishna ysr at openjdk.org
Sat Jun 29 05:17:33 UTC 2024


On Mon, 17 Jun 2024 22:10:48 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> Y. Srinivas Ramakrishna has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 46 commits:
>> 
>>  - Merge branch 'master' into active_generation
>>  - Merge branch 'master' into active_generation
>>  - Merge branch 'master' into active_generation
>>  - Code called from LRB cannot rely on SGH::_gc_generation and must instead
>>    use the _active_generation field.
>>    
>>    Still need to aduit remaining _gc_generation uses for safety.
>>    
>>    Removed too strong assert introduced for debugging in previous commit.
>>  - Merge branch 'master' into active_generation
>>  - Some asserts to catch a tricky race. These assertions may be too strong
>>    in general but would help with debugging a rare crash.
>>  - Merge branch 'master' into active_generation
>>  - Remove vestigial thread() method in ShenandoahController.
>>  - cosmetic
>>  - jcheck white-space
>>  - ... and 36 more: https://git.openjdk.org/shenandoah/compare/2abf4cb4...b513abae
>
> src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp line 796:
> 
>> 794:     ShenandoahHeapRegion* r = _regions->next();
>> 795:     // We update references for global, old, and young collections.
>> 796:     ShenandoahGeneration* const gc_generation = _heap->gc_generation();
> 
> It would certainly involve more changes, but we could pass the correct generation from `shConcurrentGC` in this case. I think we could do this in most cases (save for the barriers, but you've established a safe pattern for them to access the  active generation already).

Let'd defer that cleanup for later.

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

PR Review Comment: https://git.openjdk.org/shenandoah/pull/407#discussion_r1659595970


More information about the shenandoah-dev mailing list