[aarch64-port-dev ] RFR: Bulk Shenandoah integration, 2019-09-09
Aleksey Shipilev
shade at redhat.com
Sun Sep 8 18:34:14 UTC 2019
Hi,
Please review the routine integration of Shenandoah updates to aarch64-port/jdk8u-shenandoah. Since
this involves the cross-repository pull, the webrev is hard to generate without including merge
fluff. Current integration basically picks up everything here:
https://builds.shipilev.net/patch-openjdk-shenandoah-jdk8/hotspot/
Only hotspot is needed to update. Everything else is in perfect sync already.
Changesets to be pushed:
https://cr.openjdk.java.net/~shade/shenandoah/merges/aarch64-port-8u-20190909/changesets.txt
Squashed patch to cross-check what is being pushed:
https://cr.openjdk.java.net/~shade/shenandoah/merges/aarch64-port-8u-20190909/all-diffs.patch
Tour of changes:
*) assembler_x86.(cpp|hpp), macroAssembler_x86.cpp, templateTable_x86_64.cpp removes
jccb/jmpb_if_possible, and returns affected chunks to upstream state.
This code was added for Shenandoah store checking code long time ago, and was never used after
Shenandoah parts were removed. See the current difference against upstream here, we are reverting
some of those:
https://builds.shipilev.net/patch-openjdk-jdk8-aarch64/hotspot/src/cpu/x86/vm/assembler_x86.hpp.sdiff.html
https://builds.shipilev.net/patch-openjdk-jdk8-aarch64/hotspot/src/cpu/x86/vm/assembler_x86.cpp.sdiff.html
https://builds.shipilev.net/patch-openjdk-jdk8-aarch64/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp.sdiff.html
https://builds.shipilev.net/patch-openjdk-jdk8-aarch64/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp.sdiff.html
*) x86_64.ad reverts chunks to upstream state. immU8 was used to match Shenandoah gc-state checks,
and now handled elsewhere. Whitespace changes were the leftovers from previous removals and/or
backports. See the current difference against upstream here, we are removing some of those:
https://builds.shipilev.net/patch-openjdk-jdk8-aarch64/hotspot/src/cpu/x86/vm/x86_64.ad.sdiff.html
*) c1_LIR.(cpp|hpp) protects lir_shenandoah_wb, like it does in 11+
*) shenandoahRootProcessor.(cpp|hpp), shenandoahSynchronizerIterator.(cpp|hpp), synchronizer.cpp,
thread.cpp: removes ShenandoahFastSyncRoots, refactors it a bit, and reverts ObjectSynchronizer to
upstream state.
This one is actually a subtle bugfix disguised as the reversal to upstream state, see:
https://mail.openjdk.java.net/pipermail/shenandoah-dev/2019-July/010124.html
See the current difference against upstream here, we are reverting some of those chunks:
https://builds.shipilev.net/patch-openjdk-jdk8-aarch64/hotspot/src/share/vm/runtime/synchronizer.cpp.sdiff.html
https://builds.shipilev.net/patch-openjdk-jdk8-aarch64/hotspot/src/share/vm/runtime/synchronizer.hpp.sdiff.html
https://builds.shipilev.net/patch-openjdk-jdk8-aarch64/hotspot/src/share/vm/runtime/thread.cpp.sdiff.html
*) arguments.cpp: drops UseNUMAInterleaving in Shenandoah-specific initialization block. It is in
shenandoahArguments.cpp in other releases, but 8u is not luxurious enough to have GC-specific
argument handling yet.
*) bitMap.inline.hpp: since JDK-8211926 landed via backports, this assert should be generic, and
not Shenandoah-specific. This change reverts it to upstream state. See the current difference with
upstream, we are reverting the assert to upstream state:
https://builds.shipilev.net/patch-openjdk-jdk8-aarch64/hotspot/src/share/vm/utilities/bitMap.inline.hpp.sdiff.html
Testing: Linux {x86_64, aarch64} hotspot_gc_shenandoah, regular build and tests on all platforms
--
Thanks,
-Aleksey
More information about the aarch64-port-dev
mailing list