Mercurial > hg > icedtea8
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, \