RFR: 8372566: Genshen: crash at ShenandoahScanRemembered::process_clusters after JDK-8371667

Xiaolong Peng xpeng at openjdk.org
Fri Nov 28 16:56:49 UTC 2025


On Fri, 28 Nov 2025 15:26:51 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 1018:
>> 
>>> 1016:   if (result != nullptr && req.is_old()) {
>>> 1017:     old_generation()->configure_plab_for_current_thread(req);
>>> 1018:     if (req.type() != ShenandoahAllocRequest::_alloc_plab) {
>> 
>> Help me understand this.  I am thinking that this is equivalent (in the new refactoring) to: req.type() == _alloc_shared_gc_old or _alloc_shared_gc_promotion.  But this way of writing it is a bit more efficient (as other values can't happen).
>> 
>> Am I understanding this correctly?
>
> Maybe a comment would be helpful.

Yes, you are right.  With the refactor, the equivalent writing should be `req.type() == _alloc_shared_gc_old || req.type() == _alloc_shared_gc_promotion`, the new way is just  bit more cleaner and slightly more efficient.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28521#discussion_r2572154439


More information about the shenandoah-dev mailing list