RFR: 8336685: Shenandoah: Remove experimental incremental update mode

William Kemper wkemper at openjdk.org
Wed Jul 24 19:27:40 UTC 2024


On Wed, 24 Jul 2024 18:25:38 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> We've reason to believe that this mode is very rarely used and its maintenance has become a burden for future development.
>> 
>> ## Testing
>> * hotspot_gc_shenandoah
>> * dacapo
>> * diluvian
>> * extremem
>> * hyperalloc
>> * specjbb2015
>> * specjvm2008
>
> src/hotspot/cpu/ppc/gc/shenandoah/shenandoahBarrierSetAssembler_ppc.cpp line 571:
> 
>> 569:   /* ==== Apply keep-alive barrier, if required (e.g., to inhibit weak reference resurrection) ==== */
>> 570:   if (ShenandoahBarrierSet::need_keep_alive_barrier(decorators, type)) {
>> 571:     if (ShenandoahSATBBarrier) {
> 
> A bit weird to replace IU with SATB barrier here.

@shipilev [The original code](https://github.com/openjdk/jdk/pull/20316/files#diff-cb01b36a8c7017c9e21645a0ff9075897e5bfa67ae37d4f0d69ccc582656ec31L71) used the function `iu_barrier` to emit the pre-write barrier for both SATB and IU modes. This only happened in the `ppc` port. Other platforms just invoke the function to emit the `satb_write_barrier` directly here (see [x86](https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp#L580), for example).

@kdnilsen No, `need_keep_alive_barrier` may be true in SATB mode. The use of the barrier here is to make sure weak references that get loaded during mark are added to the SATB buffer.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20316#discussion_r1690320078


More information about the shenandoah-dev mailing list