RFR: 2020-05-20, Bulk integration of Shenandoah 8u to aarch64-port/jdk8u-shenandoah
Aleksey Shipilev
shade at redhat.com
Wed May 20 16:17:51 UTC 2020
https://cr.openjdk.java.net/~shade/shenandoah/merges/aarch64-port-8u-20200520/webrev.01/
This is a huge (sorry!) integration of Shenandoah 8u from our shenandoah/jdk8 staging repository. It
was generated by plain pull from shenandoah/jdk8/hotspot repository and automatic merge.
While the webrev is large, it contains lots of removals and refactorings in Shenandoah parts of the
code. The actual changes to shared code are small and limited only to Shenandoah codepaths. There
should be no changes to shared parts outside Shenandoah paths.
Feel free to ignore the changes to Shenandoah code, we (Shenandoah devs) vouch for those parts :)
I tagged the merge with aarch64-shenandoah-jdk8u262-b02-shenandoah-merge-2020-05-20.
Changes:
[backport] 8240671: Shenandoah: refactor ShenandoahPhaseTimings
[backport] 8240749: Shenandoah: refactor ShenandoahUtils
[backport] 8240750: Shenandoah: remove leftover files and mentions of ShenandoahAllocTracker
[backport] 8230853: Shenandoah: replace leftover assert(is_in(...)) with rich asserts
[backport] 8240868: Shenandoah: remove CM-with-UR piggybacking cycles
[backport] 8240915: Shenandoah: Remove unused fields in init mark tasks
[backport] 8240872: Shenandoah: Avoid updating new regions from start of evacuation
[backport] 8240873: Shenandoah: Short-cut arraycopy barriers
[backport] 8241081: Shenandoah: Do not modify update-watermark concurrently
[backport] 8241534: Shenandoah: region status should include update watermark
[backport] 8240948: Shenandoah: cleanup not-forwarded-objects paths after JDK-8240868
[backport] 8241351: Shenandoah: fragmentation metrics overhaul
[backport] 8241435: Shenandoah: avoid disabling pacing with "aggressive"
[backport] 8241139: Shenandoah: distribute mark-compact work exactly to minimize fragmentation
[backport] 8241520: Shenandoah: simplify region sequence numbers handling
[backport] 8241583: Shenandoah: turn heap lock asserts into macros
[backport] 8241668: Shenandoah: make ShenandoahHeapRegion not derive from ContiguousSpace
[backport] 8241673: Shenandoah: refactor anti-false-sharing padding
[backport] 8241692: Shenandoah: remove ShenandoahHeapRegion::_reserved
[backport] 8241743: Shenandoah: refactor and inline ShenandoahHeap::heap()
[backport] 8241740: Shenandoah: remove ShenandoahHeapRegion::_heap
[backport] 8241748: Shenandoah: inline MarkingContext TAMS methods
[backport] 8241838: Shenandoah: no need to trash cset during final mark
[backport] 8241841: Shenandoah: ditch one of allocation type counters in ShenandoahHeapRegion
[backport] 8241842: Shenandoah: inline ShenandoahHeapRegion::region_number
[backport] 8241844: Shenandoah: rename ShenandoahHeapRegion::region_number
[backport] 8241845: Shenandoah: align ShenandoahHeapRegions to cache lines
[backport] 8242267: Shenandoah: regions space needs to be aligned by os::vm_allocation_granularity()
[backport] 8241093: Shenandoah: editorial changes in flag descriptions
[backport] 8241926: Shenandoah: only print heap changes for operations that directly affect it
[backport] 8241985: Shenandoah: simplify collectable garbage logging
[backport] 8241983: Shenandoah: simplify FreeSet logging
[backport] 8242040: Shenandoah: print allocation failure type
[backport] 8242041: Shenandoah: adaptive heuristics should account evac reserve in free target
[backport] 8242042: Shenandoah: tune down ShenandoahGarbageThreshold
[backport] 8242075: Shenandoah: rename ShenandoahHeapRegionSize flag
[backport] 8242083: Shenandoah: split "Prepare Evacuation" tracking into cset/freeset counters
[backport] 8242089: Shenandoah: per-worker stats should be summed up, not averaged
[backport] 8242082: Shenandoah: Purge Traversal mode
[backport] 8242114: Shenandoah: remove ShenandoahHeapRegion::reset_alloc_metadata_to_shared
[backport] 8242101: Shenandoah: coalesce and parallelise heap region walks during the pauses
[backport] 8242211: Shenandoah: remove ShenandoahHeuristics::RegionData::_seqnum_last_alloc
[backport] 8242212: Shenandoah: initialize ShenandoahHeuristics::_region_data eagerly
[backport] 8242213: Shenandoah: remove ShenandoahHeuristics::_bytes_in_cset
[backport] 8242227: Shenandoah: transit regions to cset state when adding to collection set
[backport] 8242228: Shenandoah: remove unused ShenandoahCollectionSet methods
Fix slowdebug build after JDK-8230853 backport
[backport] 8239926: Shenandoah: Shenandoah needs to mark nmethod's metadata
[backport] 8241675: Shenandoah: assert(n->outcnt() > 0) at shenandoahSupport.cpp:2858 with
java/util/Collections/FindSubList.java
[backport] 8241700: Shenandoah: Fold ShenandoahKeepAliveBarrier flag into ShenandoahSATBBarrier
[backport] 8242130: Shenandoah: Simplify arraycopy-barrier dispatching
[backport] 8242217: Shenandoah: Enable GC mode to be diagnostic/experimental and have a name
[backport] 8242054: Shenandoah: New incremental-update mode
[backport] 8242271: Shenandoah: add test to verify GC mode unlock
[backport] 8242273: Shenandoah: accept either SATB or IU barriers, but not both
[backport] 8242301: Shenandoah: Inline LRB runtime call
[backport] 8242316: Shenandoah: Turn NULL-check into assert in SATB slow-path entry
[backport] 8242353: Shenandoah: micro-optimize region liveness handling
[backport] 8242365: Shenandoah: use uint16_t instead of jushort for liveness cache
[backport] 8241142: Shenandoah: should not use parallel reference processing with single GC thread
[backport] 8242641: Shenandoah: clear live data and update TAMS optimistically
[backport] 8243238: Shenandoah: explicit GC request should wait for a complete GC cycle
[backport] 8243307: Shenandoah: remove ShCollectionSet::live_data
[backport] 8243301: Shenandoah: ditch ShenandoahAllowMixedAllocs
[backport] 8243395: Shenandoah: demote guarantee in ShenandoahPhaseTimings::record_workers_end
[backport] 8244551: Shenandoah: Fix racy update of update_watermark
[backport] 8243463: Shenandoah: ditch total_pause counters
[backport] 8243464: Shenandoah: print statistic counters in time order
[backport] 8243465: Shenandoah: ditch unused pause_other, conc_other counters
[backport] 8243487: Shenandoah: make _num_phases illegal phase type
[backport] 8244200: Shenandoah: build breakages after JDK-8241743
[backport] 8242229: Shenandoah: inline ShenandoahHeapRegion liveness-related methods
[backport] 8221435: Shenandoah should not mark through weak roots
[backport] 8221629: Shenandoah: Cleanup class unloading logic
[backport] 8222992: Shenandoah: Pre-evacuate all roots
[backport] 8223215: Shenandoah: Support verifying subset of roots
[backport] 8223774: Shenandoah: Refactor ShenandoahRootProcessor and family
[backport] 8224210: Shenandoah: Refactor ShenandoahRootScanner to support scanning CSet codecache roots
[backport] 8224579: ResourceMark not declared in shenandoahRootProcessor.inline.hpp with
--disable-precompiled-headers
[backport] 8224679: Shenandoah: Make ShenandoahParallelCodeCacheIterator noncopyable
[backport] 8224751: Shenandoah: Shenandoah Verifier should select proper roots according to current
GC cycle
[backport] 8224508: Shenandoah: Need to update thread roots in final mark for piggyback ref update
cycle
[backport] 8225014: Separate ShenandoahRootScanner method for object_iterate
[backport] 8225573: Shenandoah: Enhance ShenandoahVerifier to ensure roots to-space invariant
[backport] 8225590: Shenandoah: Refactor ShenandoahClassLoaderDataRoots API
[backport] 8226413: Shenandoah: Separate root scanner for SH::object_iterate()
[backport] 8231198: Shenandoah: heap walking should visit all roots most of the time
[backport] 8231244: Shenandoah: all-roots heap walking misses some weak roots
[backport] 8243494: Shenandoah: set counters once per cycle
[backport] 8225216: gc/logging/TestMetaSpaceLog.java doesn't work for Shenandoah
[backport] 8239786: Shenandoah: print per-cycle statistics
[backport] 8243848: Shenandoah: Windows build fails after JDK-8239786
[backport] 8243573: Shenandoah: rename GCParPhases and related code
[backport] 8244180: Shenandoah: carry Phase to ShWorkerTimingsTracker explicitly
[backport] 8244226: Shenandoah: per-cycle statistics contain worker data from previous cycles
[backport] 8244326: Shenandoah: global statistics should not accept bogus samples
Shenandoah: add root statistics for string dedup table/queues
Shenandoah: specialize String Table scans for better pause performance
[backport] 8241062: Shenandoah: rich asserts trigger "empty statement" inspection
[backport] 8244730: Shenandoah: gc/shenandoah/options/TestHeuristicsUnlock.java should only verify
the heuristics
[backport] 8244732: Shenandoah: move heuristics code to gc/shenandoah/heuristics
[backport] 8244737: Shenandoah: move mode code to gc/shenandoah/mode
[backport] 8244739: Shenandoah: break superclass dependency on ShenandoahNormalMode
[backport] 8244740: Shenandoah: rename ShenandoahNormalMode to ShenandoahSATBMode
[backport] 8237632: Shenandoah: accept NULL fwdptr to cooperate with JVMTI and JFR
Testing: hotspot_gc_shenandoah {fastdebug,release}; it was also tested in sh/jdk8 quite extensively
--
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list