[aarch64-port-dev ] RFR: 2020-05-20, Bulk integration of Shenandoah 8u to aarch64-port/jdk8u-shenandoah
Andrew Hughes
gnu.andrew at redhat.com
Wed May 20 16:30:55 UTC 2020
On 20/05/2020 17:17, Aleksey Shipilev wrote:
> 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
>
Shared code changes look ok and mostly restricted to Shenandoah-specific
blocks AFAICS.
Let's get this in, and then I'll test it once merged with the b03 work I
have.
Thanks,
--
Andrew :)
Senior Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04 C5A0 CFDA 0F9B 3596 4222
More information about the shenandoah-dev
mailing list