RFR: Allow young collection to suspend marking in old generation [v3]

Zhengyu Gu zgu at redhat.com
Tue Feb 23 15:06:45 UTC 2021


This looks like that degen into a wrong point, should be 
_degenerated_updaterefs, instead of _degenerated_outside_cycle.



Please consider adding generation GC info in event log:

http://cr.openjdk.java.net/~zgu/shenandoah/gen_event_log.patch


Thanks,

-Zhengyu

On 2/23/21 3:03 AM, Roman Kennke wrote:
> On Mon, 22 Feb 2021 18:14:29 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:
> 
>>> earthling-amzn has updated the pull request incrementally with five additional commits since the last revision:
>>>
>>>   - Remove superfluous new line
>>>   - Remove redundant is_oop check
>>>   - Remove unused parameter, remove unnecessary casting
>>>   - Remove debug scaffolding, inline object aging
>>>   - Do not allow heuristics to change requested gc cause once a mutator request has been made
>>
>> Quick scan
> 
> It looks much better now, hotspot_gc_shenandoah is passing. I'll give it a more in-depth review later. I've tried to run some programs with generational mode, and it survives a few cycles, until it crashes with:
> 
> #  Internal Error (/home/rkennke/src/openjdk/shenandoah/src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.cpp:101), pid=6682, tid=6688
> #  assert(!_heap->get_region(index)->is_cset()) failed: should have been cleared before
> 
> Stack: [0x00007fd9529cf000,0x00007fd952acf000],  sp=0x00007fd952acd530,  free space=1017k
> Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
> V  [libjvm.so+0x1592374]  ShenandoahCollectionSet::clear()+0x1a4
> V  [libjvm.so+0x15cb5fa]  ShenandoahGeneration::prepare_regions_and_collection_set(bool)+0x20a
> V  [libjvm.so+0x15ac5bb]  ShenandoahDegenGC::op_degenerated()+0x24b
> V  [libjvm.so+0x15ad4e0]  ShenandoahDegenGC::entry_degenerated()+0xf0
> V  [libjvm.so+0x16e391c]  VM_ShenandoahDegeneratedGC::doit()+0x2c
> V  [libjvm.so+0x19126b7]  VM_Operation::evaluate()+0x187
> V  [libjvm.so+0x19372fc]  VMThread::inner_execute(VM_Operation*)+0x30c
> V  [libjvm.so+0x1937c75]  VMThread::loop()+0x255
> V  [libjvm.so+0x1937f1c]  VMThread::run()+0xcc
> V  [libjvm.so+0x183baf8]  Thread::call_run()+0xf8
> V  [libjvm.so+0x13b860e]  thread_native_entry(Thread*)+0x10e
> 
> See also attached hs_err.
> 
> I'll look into this a bit.
> 
> [hs_err_pid6682.log](https://github.com/openjdk/shenandoah/files/6027426/hs_err_pid6682.log)
> 
> -------------
> 
> PR: https://git.openjdk.java.net/shenandoah/pull/19
> 



More information about the shenandoah-dev mailing list