RFR: Fix merge error in ShenandoahFullGC

Roman Kennke rkennke at openjdk.java.net
Fri Feb 12 21:37:49 UTC 2021


In the code section that is changed here, we originally had in Loom:

old_obj->copy_conjoint(heap->get_region(new_start)->bottom(),
                                       ShenandoahHeapRegion::region_size_words()*num_regions);

However this was wrong because the size exceeded the object size. This apparently came from original upstream:
Copy::aligned_conjoint_words(heap->get_region(old_start)->bottom(),
                                   heap->get_region(new_start)->bottom(),
                                   ShenandoahHeapRegion::region_size_words()*num_regions);


I recently fixed that in upstream to use the object size instead:

Copy::aligned_conjoint_words(heap->get_region(old_start)->bottom(),
                                   heap->get_region(new_start)->bottom(),
                                   words_size);


Which has been wrongly merged as-is into loom. This patch restores the original version that has been in Loom, with the change to use object size instead of region size.

Testing:
 - [x] hotspot_gc_shenandoah
 - [x] java/lang/Continuation (-XX:+UseShenandoahGC)
 - [x] java/lang/Thread/virtual (-XX:+UseShenandoahGC)

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

Commit messages:
 - Fix merge error in ShenandoahFullGC

Changes: https://git.openjdk.java.net/loom/pull/31/files
 Webrev: https://webrevs.openjdk.java.net/?repo=loom&pr=31&range=00
  Stats: 3 lines in 1 file changed: 0 ins; 1 del; 2 mod
  Patch: https://git.openjdk.java.net/loom/pull/31.diff
  Fetch: git fetch https://git.openjdk.java.net/loom pull/31/head:pull/31

PR: https://git.openjdk.java.net/loom/pull/31


More information about the loom-dev mailing list