changeset 2859:966b5fcf9312

Bump shenandoah to aarch64-shenandoah-jdk8u181-b15-shenandoah-merge-2018-09-19. PR3634: Shenandoah still broken on s390 with aarch64-shenandoah-jdk8u181-b16 Upstream changes: - [backport] Adaptive CSet selection overshoots max-CSet - [backport] Adaptive CSet selection selects excessively when memory is tight - [backport] Adaptive/Traversal heuristics rewrite for allocation rate - [backport] Added logging for the number of workers used for GC cycles - [backport] Add task termination and enhanced task queue state tracking + weakrefs - [backport] Allocation path should not touch GC barriers for metadata - [backport] Allocation tracker should really report bytes - [backport] AlwaysPreTouch fails with non-default ConcGCThreads - [backport] Application pacing precision fixes - [backport] Apply ShenandoahEvacOOMScope only for evac-taking paths in ShenandoahBarrierSet - [backport] Assembler write barriers should consistently check for forwarded objects - [backport] Avoid indirection to next-mark-context - [backport] Avoid using uintx in ShenandoahHeapRegion - [backport] C1 shenandoah_wb expects obj in a register - [backport] Check and ensure that Shenandoah-enabled compilations succeed - [backport] Check heap stability in C1 WBs - [backport] ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah - [backport] clean up obsolete c2 code - [backport] Cleanup: remove unused root processor's sub tasks - [backport] Cleanup UseShenandoahOWST blocks - [backport] CollectedHeap::max_tlab_size is measured in words - [backport] Complete liveness for recently allocated regions outside the allocation path - [backport] Comprehensible GC trigger logging - [backport] Concurrent uncommit should be recorded as GC event - [backport] Constify ShHeapRegionSet and ShCollectionSet - [backport] Convert magic value to ShenandoahPacingSurcharge - [backport] Default to ShenandoahCodeRootsStyle = 2 - [backport] Degenerated evacuation - [backport] Disable UseFastJNIAccessors for Shenandoah - [backport] Elastic TLABs support for Shenandoah - [backport] Enable ShenandoahEvacReserveOverflow by default - [backport] Evac assist should touch marked objects only - [backport] Evac reserve: make sure GC has untouchable space to move the objects into - [backport] EvilSyncBug test is too slow - [backport] Explicit GC should actually uncommit the heap - [backport] Exponential backoff with pacing - [backport] Fix aarch64 CAS predicates - [backport] Fix CAS-obj predicates and add expected-null-versions for cmpxchg-narrow-oop - [backport] Fixed SA due to code refactoring and merging - [backport] Fix Minimal and Zero builds - [backport] Fix ShHeap::notify_alloc usages: it accepts words, not bytes - [backport] Fix TestCommonGCLoads test - [backport] Fix TestFullGCALot test failure - [backport] Fix TestGCThreadGroups test - [backport] Forceful SATB buffer flushes should be time-periodic, not traffic-dependent - [backport] Full GC always comes with liveness data - [backport] Full GC should not always update references - [backport] GCLAB slowpath allocations should fit the object into GCLAB - [backport] GC trace messages have to be immortal - [backport] Handle missing ShenandoahWriteBarrierRB case - [backport] Heap region count selection should only consider max heap size - [backport] Hook up GCLABs to Elastic LAB support - [backport] Improve scheduling and interleaving of SATB processing in mark loop - [backport] Including metaspace info when reporting heap info - [backport] Incorrect label for static heuristics - [backport] Make in-cset checks use signed bytes to match C2 better - [backport] Micro-optimize AArch64 assembly write-barriers - [backport] Missing Shenandoah entry in GCNameHelper::to_string - [backport] More detailed pacing histogram - [backport] More verbose profiling for phase 4 in mark-compact - [backport] Move heuristics from ShCollectorPolicy to ShHeap - [backport] Move (Java)Thread::_gc_state to lower offset to optimize barrier fast-path encoding - [backport] Move ParallelCodeIterator to ShenandoahCodeRoots - [backport] Move periodic GC decision making to GC heuristics base class - [backport] Move Shenandoah stress tests to tier3 - [backport] Non-cancellable mark loops should have sensible stride - [backport] Off-by-one error in degen progress calculation - [backport] Only Java and GC worker threads should get GCLABs - [backport] Out-of-cycle Degenerated GC should process references and unload classes - [backport] Pacer for evacuation should print "Avail" to capture discounting - [backport] Pacer should account actual size for elastic TLABs - [backport] Parallel +AlwaysPreTouch should run with max workers - [backport] Passive heuristics should enter degen GC, not full GC - [backport] Perform gc-state checks with LoadB to fit C2 matchers - [backport] Pre-filter oops before enqueing them in SBS slowpaths - [backport] Print task queue statistics at the end of GC cycle - [backport] Process remaining SATB buffers in final mark/traverse loop instead of separate phase - [backport] Proper units for allocation failure messages - [backport] Prune undefined and unused methods - [backport] Purge partial heuristics and connection matrix infrastructure - [backport] Purge support for ShenandoahConcurrentEvacCodeRoots and ShenandoahBarriersForConst - [backport] Rearrange Shenandoah tests into 3 tiers - [backport] Reclaim immediate garbage after mark-compact marking - [backport] Recycle the regions only once - [backport] Refactor alive-closures to deal better with new marking contexts - [backport] Refactor allocation path to accept ShenandoahAllocRequest tuple - [backport] Refactor and improve ShenandoahCodeRoots strategies - [backport] Refactor FreeSet logging: support evac-reserve, denser printouts - [backport] Refactor gc+init logging - [backport] Refactoring ShenandoahStrDedupStress test to reduce test time - [backport] Refactor to group marking bitmap and TAMS structure in one class ShenandoahMarkingContext - [backport] Remove C2 write-barrier from .ad files - [backport] Removed racy assertion - [backport] Remove NMethodSizeLimit adjustment for Shenandoah - [backport] Remove obsolete/unused logging usages - [backport] Remove safe_equals() - [backport] Remove ShHeuristics::print_threshold - [backport] Rename and move ShenandoahPrepareForMarkClosure - [backport] Rename "cancel_concgc" to "cancel_gc" - [backport] Replace custom asserts with shenandoah_assert_* - [backport] Replace risky SBS::need_update_refs_barrier with straightforward check - [backport] Replace ShBarrierSet* casts with accessor - [backport] Report actual free size in non-verbose FreeSet status - [backport] Report heap region stats in proper units - [backport] Resettable iterators to avoid dealing with copying/assignment compilation differences - [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest - [backport] Rework ClassUnloading* flags handling - [backport] Rework GC degradation on allocation failure - [backport] SATB buffer filtering/compaction hides unmarked objects until final-mark - [backport] shenandoah_assert_correct should check object/forwardee klasses - [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop - [backport] Shenandoah changes to allow enabling -Wreorder - [backport] Shenandoah/PPC barrier stubs - [Backport] Shenandoah string deduplication - [backport] SH::make_(tlabs)_parsable() should work correctly with/without TLABs - [backport] Shortcut regions that are known not to be alive - [backport] Should cleanup previous/bad versions of redefined classes during full gc - [backport] Skip RESOLVE in SATBBufferClosure if no forwarded objects are in heap - [backport] Soft-refs policy needs reliable heap usage data after the GC cycle - [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics - [backport] Some trivial-ish cleanups - [backport] Split write barrier paths for mutator and GC workers - [backport] StringInternCleanup times out - [backport] TestHeapDump runs much faster with small heap - [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations - [backport] TLAB sizing policy should converge faster with Shenandoah - [backport] Trace and report total allocation latency and sizes - [backport] Traversal should resize TLABs - [backport] Trivial enhancement to avoid costly deletion array element - [backport] Uncommit should relinquish the heap lock regularly - [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock - [backport] Verifier should dump raw memory around the problematic oops - [backport] Verify global and local gc-state status - [backport] VSC++ requires space(s) in between two string literals - [backport] WB slowpath should assist with evacuation of adjacent objects - [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes - [backport] Wiring heap and metaspace info to JFR - [backport] Wrap worker id in thread local worker session - [backport] -XX:-UseTLAB should disable GCLABs too - Cleanup undeclared methods in barrier stubs - Disable evac assist by default until bugfixes arrive - Fix build failure: signedness mismatch in assert - Fix MacOS/Clang build failure - Fix x86_32 build - JDK8u: Silence compilation warnings on implicit type conversion - Move JNI Weak References workaround to Shenandoah-specific root processor 2018-10-29 Andrew John Hughes <gnu_andrew@member.fsf.org> Bump shenandoah to aarch64-shenandoah-jdk8u181-b15-shenandoah-merge-2018-09-19. * patches/hotspot/shenandoah/pr3619.patch, * patches/hotspot/shenandoah/pr3620.patch: Removed as applied upstream. * Makefile.am: (ICEDTEA_PATCHES): Remove PR3619 and PR3620 patches. Add PR3634 patch. * NEWS: Updated. * hotspot.map.in: Bump shenandoah to aarch64-shenandoah-jdk8u181-b15-shenandoah-merge-2018-09-19.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Sat, 03 Nov 2018 14:32:58 +0000
parents ba2544484e6b
children dbee7dfe6d8e
files ChangeLog Makefile.am NEWS hotspot.map.in patches/hotspot/shenandoah/pr3619.patch patches/hotspot/shenandoah/pr3620.patch patches/hotspot/shenandoah/pr3634.patch
diffstat 7 files changed, 185 insertions(+), 121 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Oct 02 01:30:37 2018 +0100
+++ b/ChangeLog	Sat Nov 03 14:32:58 2018 +0000
@@ -1,3 +1,19 @@
+2018-10-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	Bump shenandoah to
+	aarch64-shenandoah-jdk8u181-b15-shenandoah-merge-2018-09-19.
+	PR3634: Shenandoah still broken on s390 with
+	aarch64-shenandoah-jdk8u181-b16
+	* patches/hotspot/shenandoah/pr3619.patch,
+	* patches/hotspot/shenandoah/pr3620.patch:
+	Removed as applied upstream.
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Remove PR3619 and PR3620
+	patches. Add PR3634 patch.
+	* NEWS: Updated.
+	* hotspot.map.in: Bump shenandoah to
+	aarch64-shenandoah-jdk8u181-b15-shenandoah-merge-2018-09-19.
+
 2018-10-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	* NEWS: Add 3.10.0 section.
--- a/Makefile.am	Tue Oct 02 01:30:37 2018 +0100
+++ b/Makefile.am	Sat Nov 03 14:32:58 2018 +0000
@@ -400,8 +400,7 @@
 ICEDTEA_PATCHES += \
 	patches/hotspot/$(HSBUILD)/8158260-pr2991-rh1341258-aarch64.patch \
 	patches/hotspot/$(HSBUILD)/pr3519-return_value-02.patch \
-	patches/hotspot/$(HSBUILD)/pr3619.patch \
-	patches/hotspot/$(HSBUILD)/pr3620.patch
+	patches/hotspot/$(HSBUILD)/pr3634.patch
 endif
 
 if BUILD_CACAO
--- a/NEWS	Tue Oct 02 01:30:37 2018 +0100
+++ b/NEWS	Sat Nov 03 14:32:58 2018 +0000
@@ -12,6 +12,155 @@
 
 New in release 3.10.0 (2018-10-XX):
 
+* Shenandoah
+  - PR3634: Shenandoah still broken on s390 with aarch64-shenandoah-jdk8u181-b16
+  - [backport] Adaptive CSet selection overshoots max-CSet
+  - [backport] Adaptive CSet selection selects excessively when memory is tight
+  - [backport] Adaptive/Traversal heuristics rewrite for allocation rate
+  - [backport] Added logging for the number of workers used for GC cycles
+  - [backport] Add task termination and enhanced task queue state tracking + weakrefs
+  - [backport] Allocation path should not touch GC barriers for metadata
+  - [backport] Allocation tracker should really report bytes
+  - [backport] AlwaysPreTouch fails with non-default ConcGCThreads
+  - [backport] Application pacing precision fixes
+  - [backport] Apply ShenandoahEvacOOMScope only for evac-taking paths in ShenandoahBarrierSet
+  - [backport] Assembler write barriers should consistently check for forwarded objects
+  - [backport] Avoid indirection to next-mark-context
+  - [backport] Avoid using uintx in ShenandoahHeapRegion
+  - [backport] C1 shenandoah_wb expects obj in a register
+  - [backport] Check and ensure that Shenandoah-enabled compilations succeed
+  - [backport] Check heap stability in C1 WBs
+  - [backport] ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah
+  - [backport] Clean up obsolete c2 code
+  - [backport] Cleanup: remove unused root processor's sub tasks
+  - [backport] Cleanup UseShenandoahOWST blocks
+  - [backport] CollectedHeap::max_tlab_size is measured in words
+  - [backport] Complete liveness for recently allocated regions outside the allocation path
+  - [backport] Comprehensible GC trigger logging
+  - [backport] Concurrent uncommit should be recorded as GC event
+  - [backport] Constify ShHeapRegionSet and ShCollectionSet
+  - [backport] Convert magic value to ShenandoahPacingSurcharge
+  - [backport] Default to ShenandoahCodeRootsStyle = 2
+  - [backport] Degenerated evacuation
+  - [backport] Disable UseFastJNIAccessors for Shenandoah
+  - [backport] Elastic TLABs support for Shenandoah
+  - [backport] Enable ShenandoahEvacReserveOverflow by default
+  - [backport] Evac assist should touch marked objects only
+  - [backport] Evac reserve: make sure GC has untouchable space to move the objects into
+  - [backport] EvilSyncBug test is too slow
+  - [backport] Explicit GC should actually uncommit the heap
+  - [backport] Exponential backoff with pacing
+  - [backport] Fix aarch64 CAS predicates
+  - [backport] Fix CAS-obj predicates and add expected-null-versions for cmpxchg-narrow-oop
+  - [backport] Fixed SA due to code refactoring and merging
+  - [backport] Fix Minimal and Zero builds
+  - [backport] Fix ShHeap::notify_alloc usages: it accepts words, not bytes
+  - [backport] Fix TestCommonGCLoads test
+  - [backport] Fix TestFullGCALot test failure
+  - [backport] Fix TestGCThreadGroups test
+  - [backport] Forceful SATB buffer flushes should be time-periodic, not traffic-dependent
+  - [backport] Full GC always comes with liveness data
+  - [backport] Full GC should not always update references
+  - [backport] GCLAB slowpath allocations should fit the object into GCLAB
+  - [backport] GC trace messages have to be immortal
+  - [backport] Handle missing ShenandoahWriteBarrierRB case
+  - [backport] Heap region count selection should only consider max heap size
+  - [backport] Hook up GCLABs to Elastic LAB support
+  - [backport] Improve scheduling and interleaving of SATB processing in mark loop
+  - [backport] Including metaspace info when reporting heap info
+  - [backport] Incorrect label for static heuristics
+  - [backport] Make in-cset checks use signed bytes to match C2 better
+  - [backport] Micro-optimize AArch64 assembly write-barriers
+  - [backport] Missing Shenandoah entry in GCNameHelper::to_string
+  - [backport] More detailed pacing histogram
+  - [backport] More verbose profiling for phase 4 in mark-compact
+  - [backport] Move heuristics from ShCollectorPolicy to ShHeap
+  - [backport] Move (Java)Thread::_gc_state to lower offset to optimize barrier fast-path encoding
+  - [backport] Move ParallelCodeIterator to ShenandoahCodeRoots
+  - [backport] Move periodic GC decision making to GC heuristics base class
+  - [backport] Move Shenandoah stress tests to tier3
+  - [backport] Non-cancellable mark loops should have sensible stride
+  - [backport] Off-by-one error in degen progress calculation
+  - [backport] Only Java and GC worker threads should get GCLABs
+  - [backport] Out-of-cycle Degenerated GC should process references and unload classes
+  - [backport] Pacer for evacuation should print "Avail" to capture discounting
+  - [backport] Pacer should account actual size for elastic TLABs
+  - [backport] Parallel +AlwaysPreTouch should run with max workers
+  - [backport] Passive heuristics should enter degen GC, not full GC
+  - [backport] Perform gc-state checks with LoadB to fit C2 matchers
+  - [backport] Pre-filter oops before enqueing them in SBS slowpaths
+  - [backport] Print task queue statistics at the end of GC cycle
+  - [backport] Process remaining SATB buffers in final mark/traverse loop instead of separate phase
+  - [backport] Proper units for allocation failure messages
+  - [backport] Prune undefined and unused methods
+  - [backport] Purge partial heuristics and connection matrix infrastructure
+  - [backport] Purge support for ShenandoahConcurrentEvacCodeRoots and ShenandoahBarriersForConst
+  - [backport] Rearrange Shenandoah tests into 3 tiers
+  - [backport] Reclaim immediate garbage after mark-compact marking
+  - [backport] Recycle the regions only once
+  - [backport] Refactor alive-closures to deal better with new marking contexts
+  - [backport] Refactor allocation path to accept ShenandoahAllocRequest tuple
+  - [backport] Refactor and improve ShenandoahCodeRoots strategies
+  - [backport] Refactor FreeSet logging: support evac-reserve, denser printouts
+  - [backport] Refactor gc+init logging
+  - [backport] Refactoring ShenandoahStrDedupStress test to reduce test time
+  - [backport] Refactor to group marking bitmap and TAMS structure in one class ShenandoahMarkingContext
+  - [backport] Remove C2 write-barrier from .ad files
+  - [backport] Removed racy assertion
+  - [backport] Remove NMethodSizeLimit adjustment for Shenandoah
+  - [backport] Remove obsolete/unused logging usages
+  - [backport] Remove safe_equals()
+  - [backport] Remove ShHeuristics::print_threshold
+  - [backport] Rename and move ShenandoahPrepareForMarkClosure
+  - [backport] Rename "cancel_concgc" to "cancel_gc"
+  - [backport] Replace custom asserts with shenandoah_assert_*
+  - [backport] Replace risky SBS::need_update_refs_barrier with straightforward check
+  - [backport] Replace ShBarrierSet* casts with accessor
+  - [backport] Report actual free size in non-verbose FreeSet status
+  - [backport] Report heap region stats in proper units
+  - [backport] Resettable iterators to avoid dealing with copying/assignment compilation differences
+  - [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest
+  - [backport] Rework ClassUnloading* flags handling
+  - [backport] Rework GC degradation on allocation failure
+  - [backport] SATB buffer filtering/compaction hides unmarked objects until final-mark
+  - [backport] shenandoah_assert_correct should check object/forwardee klasses
+  - [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop
+  - [backport] Shenandoah changes to allow enabling -Wreorder
+  - [backport] Shenandoah/PPC barrier stubs
+  - [backport] Shenandoah string deduplication
+  - [backport] SH::make_(tlabs)_parsable() should work correctly with/without TLABs
+  - [backport] Shortcut regions that are known not to be alive
+  - [backport] Should cleanup previous/bad versions of redefined classes during full gc
+  - [backport] Skip RESOLVE in SATBBufferClosure if no forwarded objects are in heap
+  - [backport] Soft-refs policy needs reliable heap usage data after the GC cycle
+  - [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics
+  - [backport] Some trivial-ish cleanups
+  - [backport] Split write barrier paths for mutator and GC workers
+  - [backport] StringInternCleanup times out
+  - [backport] TestHeapDump runs much faster with small heap
+  - [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations
+  - [backport] TLAB sizing policy should converge faster with Shenandoah
+  - [backport] Trace and report total allocation latency and sizes
+  - [backport] Traversal should resize TLABs
+  - [backport] Trivial enhancement to avoid costly deletion array element
+  - [backport] Uncommit should relinquish the heap lock regularly
+  - [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock
+  - [backport] Verifier should dump raw memory around the problematic oops
+  - [backport] Verify global and local gc-state status
+  - [backport] VSC++ requires space(s) in between two string literals
+  - [backport] WB slowpath should assist with evacuation of adjacent objects
+  - [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes
+  - [backport] Wiring heap and metaspace info to JFR
+  - [backport] Wrap worker id in thread local worker session
+  - [backport] -XX:-UseTLAB should disable GCLABs too
+  - Cleanup undeclared methods in barrier stubs
+  - Disable evac assist by default until bugfixes arrive
+  - Fix build failure: signedness mismatch in assert
+  - Fix MacOS/Clang build failure
+  - Fix x86_32 build
+  - JDK8u: Silence compilation warnings on implicit type conversion
+  - Move JNI Weak References workaround to Shenandoah-specific root processor
+
 New in release 3.9.0 (2018-09-27):
 
 * Security fixes
--- a/hotspot.map.in	Tue Oct 02 01:30:37 2018 +0100
+++ b/hotspot.map.in	Sat Nov 03 14:32:58 2018 +0000
@@ -1,4 +1,4 @@
 # version type(drop/hg) url changeset sha256sum
 default drop http://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ d78088224b98 08aa741f9758049dda90fdb366c6d4fe4a96ea221aa9b20cee8710c0467bd82a
-shenandoah drop http://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ b8b742251e42 551e84e3477a777867c56023203ea73f10b4ebfb3fd1c0fe84302abcdb5f08e6
+shenandoah drop http://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ dba8871f90b6 1e8332cdb76ecd56d43b62ca1296a55219377c76d18874ab1eeb04644499ca5d
 aarch32 drop http://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 891d70e93fb0 af4e52f9ce43d9b5856465bb2f20a3c20d9a8dad26630858641b34be4ecb0af9
--- a/patches/hotspot/shenandoah/pr3619.patch	Tue Oct 02 01:30:37 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-# PR3619: Shenandoah broken on s390
-
-diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
-@@ -108,7 +108,7 @@
-   step = MIN2(step, (intx) MaxNormalStep);
- 
-   log_info(gc, ergo)("Capacity: " SIZE_FORMAT "M, Peak Occupancy: " SIZE_FORMAT
--                             "M, Lowest Free: " SIZE_FORMAT "M, Free Threshold: " UINTX_FORMAT "M",
-+                             "M, Lowest Free: " SIZE_FORMAT "M, Free Threshold: " SIZE_FORMAT "M",
-                      capacity / M, _peak_occupancy / M,
-                      (capacity - _peak_occupancy) / M, ShenandoahMinFreeThreshold * capacity / 100 / M);
- 
-diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
-@@ -36,7 +36,7 @@
- }
- 
- void ShenandoahStaticHeuristics::print_thresholds() {
--  log_info(gc, init)("Shenandoah heuristics thresholds: allocation "SIZE_FORMAT", free "SIZE_FORMAT", garbage "SIZE_FORMAT,
-+  log_info(gc, init)("Shenandoah heuristics thresholds: allocation "UINTX_FORMAT", free "UINTX_FORMAT", garbage "UINTX_FORMAT,
-                      ShenandoahAllocationThreshold,
-                      ShenandoahFreeThreshold,
-                      ShenandoahGarbageThreshold);
-diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
---- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-@@ -539,7 +539,7 @@
-     }
-     size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
-     region_size = MAX2(average_heap_size / ShenandoahTargetNumRegions,
--                       ShenandoahMinRegionSize);
-+                       (size_t) ShenandoahMinRegionSize);
- 
-     // Now make sure that we don't go over or under our limits.
-     region_size = MAX2(ShenandoahMinRegionSize, region_size);
-@@ -573,7 +573,7 @@
-   // Otherwise, mem-protecting one region may falsely protect the adjacent
-   // regions too.
-   if (UseLargePages) {
--    region_size = MAX2(region_size, os::large_page_size());
-+    region_size = MAX2((size_t) region_size, os::large_page_size());
-   }
- 
-   int region_size_log = log2_long((jlong) region_size);
--- a/patches/hotspot/shenandoah/pr3620.patch	Tue Oct 02 01:30:37 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-# PR3620: Shenandoah broken on ppc64
-diff --git openjdk.orig/hotspot/make/excludeSrc.make openjdk/hotspot/make/excludeSrc.make
---- openjdk.orig/hotspot/make/excludeSrc.make
-+++ openjdk/hotspot/make/excludeSrc.make
-@@ -121,6 +121,7 @@
-       Src_Files_EXCLUDE +=                                              \
-         shenandoahBarrierSet_x86.cpp                                    \
-         shenandoahBarrierSet_aarch64.cpp                                \
-+        shenandoahBarrierSet_ppc.cpp                                    \
-         shenandoahBarrierSet_sparc.cpp                                  \
-         shenandoahBarrierSet_zero.cpp
- endif
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
-@@ -0,0 +1,54 @@
-+/*
-+ * Copyright (c) 2018, Red Hat, Inc. and/or its affiliates.
-+ *
-+ * This code is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 only, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This code is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-+ * version 2 for more details (a copy is included in the LICENSE file that
-+ * accompanied this code).
-+ *
-+ * You should have received a copy of the GNU General Public License version
-+ * 2 along with this work; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+ * or visit www.oracle.com if you need additional information or have any
-+ * questions.
-+ *
-+ */
-+
-+#include "precompiled.hpp"
-+#include "gc_implementation/shenandoah/brooksPointer.hpp"
-+#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp"
-+
-+#include "asm/macroAssembler.hpp"
-+#include "interpreter/interpreter.hpp"
-+
-+#define __ masm->
-+
-+#ifndef CC_INTERP
-+
-+void ShenandoahBarrierSet::interpreter_read_barrier(MacroAssembler* masm, Register dst) {
-+  Unimplemented();
-+}
-+
-+void ShenandoahBarrierSet::interpreter_read_barrier_not_null(MacroAssembler* masm, Register dst) {
-+  Unimplemented();
-+}
-+
-+void ShenandoahBarrierSet::interpreter_write_barrier(MacroAssembler* masm, Register dst) {
-+  Unimplemented();
-+}
-+
-+void ShenandoahBarrierSet::asm_acmp_barrier(MacroAssembler* masm, Register op1, Register op2) {
-+  Unimplemented();
-+}
-+
-+void ShenandoahHeap::compile_prepare_oop(MacroAssembler* masm, Register obj) {
-+  Unimplemented();
-+}
-+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/hotspot/shenandoah/pr3634.patch	Sat Nov 03 14:32:58 2018 +0000
@@ -0,0 +1,18 @@
+# PR3634: Shenandoah still broken on s390 with aarch64-shenandoah-jdk8u181-b16
+
+diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
+--- openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
+@@ -55,10 +55,10 @@
+           "Size of the Shenandoah regions. "                                \
+           "Determined automatically by default.")                           \
+                                                                             \
+-  experimental(uintx, ShenandoahMinRegionSize, 256 * K,                     \
++  experimental(size_t, ShenandoahMinRegionSize, 256 * K,                    \
+           "Minimum heap region size. ")                                     \
+                                                                             \
+-  experimental(uintx, ShenandoahMaxRegionSize, 32 * M,                      \
++  experimental(size_t, ShenandoahMaxRegionSize, 32 * M,                     \
+           "Maximum heap region size. ")                                     \
+                                                                             \
+   experimental(intx, ShenandoahHumongousThreshold, 100,                     \