# HG changeset patch # User Andrew John Hughes # Date 1597012657 -3600 # Node ID 2c02d50412c974a5412878bc7f6aeca5a9d07e09 # Parent 9a5af933ef21a439487abf26dc74c9c3cccdbf29 Bump shenandoah to aarch64-shenandoah-jdk8u262-b01. Upstream changes: - JDK-8003209: JFR events for network utilization - JDK-8030680: 292 cleanup from default method code assessment - JDK-8041626: Shutdown tracing event - JDK-8141056: Erroneous assignment in HeapRegionSet.cpp - JDK-8165675: Trace event for thread park has incorrect unit for timeout - JDK-8183925: [AArch64] Decouple crash protection from watcher thread - JDK-8183925: Decouple crash protection from watcher thread - JDK-8191393: Random crashes during cfree+0x1c - JDK-8195817: JFR.stop should require name of recording - JDK-8195818: JFR.start should increase autogenerated name by one - JDK-8195819: Remove recording=x from jcmd JFR.check output - JDK-8199712: [AArch64] Flight Recorder - JDK-8199712: Flight Recorder - JDK-8202578: Revisit location for class unload events - JDK-8202835: jfr/event/os/TestSystemProcess.java fails on missing events - JDK-8203287: Zero fails to build after JDK-8199712 (Flight Recorder) - JDK-8203346: JFR: Inconsistent signature of jfr_add_string_constant - JDK-8203664: JFR start failure after AppCDS archive created with JFR StartFlightRecording - JDK-8203921: JFR thread sampling is missing fixes from JDK-8194552 - JDK-8203929: Limit amount of data for JFR.dump - JDK-8205516: JFR tool - JDK-8207392: [PPC64] Implement JFR profiling - JDK-8209960: -Xlog:jfr* doesn't work with the JFR - JDK-8210024: JFR calls virtual is_Java_thread from ~Thread() - JDK-8210776: Upgrade X Window System 6.8.2 to the latest XWD 1.0.7 - JDK-8211239: Build fails without JFR: empty JFR events signatures mismatch - JDK-8213015: Inconsistent settings between JFR.configure and -XX:FlightRecorderOptions - JDK-8213421: Line number information for execution samples always 0 - JDK-8213617: JFR should record the PID of the recorded process - JDK-8213966: The ZGC JFR events should be marked as experimental - JDK-8214542: JFR: Old Object Sample event slow on a deep heap in debug builds - JDK-8215175: Inconsistencies in JFR event metadata - JDK-8215284: Reduce noise induced by periodic task getFileSize() - JDK-8215355: Object monitor deadlock with no threads holding the monitor (using jemalloc 5.1) - JDK-8215961: jdk/jfr/event/os/TestCPUInformation.java fails on AArch64 - JDK-8216064: -XX:StartFlightRecording:settings= doesn't work properly - JDK-8216486: Possibility of integer overflow in JfrThreadSampler::run() - JDK-8216559: [JFR] Native libraries not correctly parsed from /proc/self/maps - JDK-8216578: Remove unused/obsolete method in JFR code - JDK-8216995: Clean up JFR command line processing - JDK-8218935: Make jfr strncpy uses GCC 8.x friendly - JDK-8223147: JFR Backport - JDK-8223689: Add JFR Thread Sampling Support - JDK-8223690: Add JFR BiasedLock Event Support - JDK-8223691: Add JFR G1 Region Type Change Event Support - JDK-8223692: Add JFR G1 Heap Summary Event Support - JDK-8224172: assert(jfr_is_event_enabled(id)) failed: invariant - JDK-8227011: Starting a JFR recording in response to JVMTI VMInit and / or Java agent premain corrupts memory - JDK-8227605: Kitchensink fails "assert((((klass)->trace_id() & (JfrTraceIdEpoch::leakp_in_use_this_epoch_bit())) != 0)) failed: invariant" - JDK-8229366: JFR backport allows unchecked writing to memory - JDK-8229401: Fix JFR code cache test failures - JDK-8229708: JFR backport code does not initialize - JDK-8229873: 8229401 broke jdk8u-jfr-incubator - JDK-8230707: JFR related tests are failing - JDK-8231995: two jtreg tests failed after 8229366 is fixed - JDK-8236008: Some backup files were accidentally left in the hotspot tree - JDK-8238076: Fix OpenJDK 7 Bootstrap Broken by JFR Backport - JDK-8238589: Necessary code cleanup in JFR for JDK8u - JDK-8239476: JDK-8238589 broke windows build by moving OrderedPair - JDK-8239867: correct over use of INCLUDE_JFR macro - JDK-8241444: Metaspace::_class_vsm not initialized if compressed class pointers are disabled - JDK-8241902: AIX Build broken after integration of JDK-8223147 (JFR Backport) - JDK-8242788: Non-PCH build is broken after JDK-8191393 ChangeLog: 2020-08-09 Andrew John Hughes Bump shenandoah to aarch64-shenandoah-jdk8u262-b01. * Makefile.am: (ICEDTEA_PATCHES): Add backport of JDK-8251120/PR3793 so that JFR in the new Shenandoah HotSpot is not partially enabled. * NEWS: Updated. * hotspot.map.in: Bump shenandoah to aarch64-shenandoah-jdk8u262-b01. * patches/hotspot/aarch32/8143245-pr3548.patch, * patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch, * patches/hotspot/aarch32/pr1975.patch: Replace symlinks with copies of the Shenandoah versions, so the Shenandoah copies can be updated to apply against the new drop. * patches/hotspot/shenandoah/8143245-pr3548.patch: Regenerated due to changed context in thread_linux_zero.cpp from JDK-8203287 (JFR Zero support). * patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch: Regenerated due to changed globals.hpp context from JDK-8223147 (JFR backport) * patches/hotspot/shenandoah/8251120-pr3793.patch: New patch so that HotSpot builds with ENABLE_JFR unset. * patches/hotspot/shenandoah/pr1975.patch: Regenerated due to changed g1MarkSweep.cpp context from JDK-8223147 (JFR backport) diff -r 9a5af933ef21 -r 2c02d50412c9 ChangeLog --- a/ChangeLog Mon May 04 01:50:31 2020 +0100 +++ b/ChangeLog Sun Aug 09 23:37:37 2020 +0100 @@ -1,3 +1,30 @@ +2020-08-09 Andrew John Hughes + + Bump shenandoah to aarch64-shenandoah-jdk8u262-b01. + * Makefile.am: + (ICEDTEA_PATCHES): Add backport of JDK-8251120/PR3793 + so that JFR in the new Shenandoah HotSpot is not partially + enabled. + * NEWS: Updated. + * hotspot.map.in: Bump shenandoah to + aarch64-shenandoah-jdk8u262-b01. + * patches/hotspot/aarch32/8143245-pr3548.patch, + * patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch, + * patches/hotspot/aarch32/pr1975.patch: + Replace symlinks with copies of the Shenandoah versions, so the + Shenandoah copies can be updated to apply against the new drop. + * patches/hotspot/shenandoah/8143245-pr3548.patch: + Regenerated due to changed context in thread_linux_zero.cpp + from JDK-8203287 (JFR Zero support). + * patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch: + Regenerated due to changed globals.hpp context from + JDK-8223147 (JFR backport) + * patches/hotspot/shenandoah/8251120-pr3793.patch: + New patch so that HotSpot builds with ENABLE_JFR unset. + * patches/hotspot/shenandoah/pr1975.patch: + Regenerated due to changed g1MarkSweep.cpp context from + JDK-8223147 (JFR backport) + 2020-05-03 Andrew John Hughes Start 3.17.0 release cycle. diff -r 9a5af933ef21 -r 2c02d50412c9 Makefile.am --- a/Makefile.am Mon May 04 01:50:31 2020 +0100 +++ b/Makefile.am Sun Aug 09 23:37:37 2020 +0100 @@ -388,7 +388,8 @@ ICEDTEA_PATCHES += \ patches/hotspot/$(HSBUILD)/8158260-pr2991-rh1341258-aarch64.patch \ patches/hotspot/$(HSBUILD)/8222286-pr3727-s390-shenandoah.patch \ - patches/hotspot/$(HSBUILD)/pr3519-return_value-02.patch + patches/hotspot/$(HSBUILD)/pr3519-return_value-02.patch \ + patches/hotspot/$(HSBUILD)/8251120-pr3793.patch endif endif diff -r 9a5af933ef21 -r 2c02d50412c9 NEWS --- a/NEWS Mon May 04 01:50:31 2020 +0100 +++ b/NEWS Sun Aug 09 23:37:37 2020 +0100 @@ -13,6 +13,72 @@ New in release 3.17.0 (2020-07-XX): +* Shenandoah + - JDK-8003209: JFR events for network utilization + - JDK-8030680: 292 cleanup from default method code assessment + - JDK-8041626: Shutdown tracing event + - JDK-8141056: Erroneous assignment in HeapRegionSet.cpp + - JDK-8165675: Trace event for thread park has incorrect unit for timeout + - JDK-8183925: Decouple crash protection from watcher thread + - JDK-8191393: Random crashes during cfree+0x1c + - JDK-8195817: JFR.stop should require name of recording + - JDK-8195818: JFR.start should increase autogenerated name by one + - JDK-8195819: Remove recording=x from jcmd JFR.check output + - JDK-8199712: Flight Recorder + - JDK-8202578: Revisit location for class unload events + - JDK-8202835: jfr/event/os/TestSystemProcess.java fails on missing events + - JDK-8203287: Zero fails to build after JDK-8199712 (Flight Recorder) + - JDK-8203346: JFR: Inconsistent signature of jfr_add_string_constant + - JDK-8203664: JFR start failure after AppCDS archive created with JFR StartFlightRecording + - JDK-8203921: JFR thread sampling is missing fixes from JDK-8194552 + - JDK-8203929: Limit amount of data for JFR.dump + - JDK-8205516: JFR tool + - JDK-8207392: [PPC64] Implement JFR profiling + - JDK-8209960: -Xlog:jfr* doesn't work with the JFR + - JDK-8210024: JFR calls virtual is_Java_thread from ~Thread() + - JDK-8210776: Upgrade X Window System 6.8.2 to the latest XWD 1.0.7 + - JDK-8211239: Build fails without JFR: empty JFR events signatures mismatch + - JDK-8213015: Inconsistent settings between JFR.configure and -XX:FlightRecorderOptions + - JDK-8213421: Line number information for execution samples always 0 + - JDK-8213617: JFR should record the PID of the recorded process + - JDK-8213966: The ZGC JFR events should be marked as experimental + - JDK-8214542: JFR: Old Object Sample event slow on a deep heap in debug builds + - JDK-8215175: Inconsistencies in JFR event metadata + - JDK-8215284: Reduce noise induced by periodic task getFileSize() + - JDK-8215355: Object monitor deadlock with no threads holding the monitor (using jemalloc 5.1) + - JDK-8216064: -XX:StartFlightRecording:settings= doesn't work properly + - JDK-8216486: Possibility of integer overflow in JfrThreadSampler::run() + - JDK-8216559: [JFR] Native libraries not correctly parsed from /proc/self/maps + - JDK-8216578: Remove unused/obsolete method in JFR code + - JDK-8216995: Clean up JFR command line processing + - JDK-8218935: Make jfr strncpy uses GCC 8.x friendly + - JDK-8223147: JFR Backport + - JDK-8223689: Add JFR Thread Sampling Support + - JDK-8223690: Add JFR BiasedLock Event Support + - JDK-8223691: Add JFR G1 Region Type Change Event Support + - JDK-8223692: Add JFR G1 Heap Summary Event Support + - JDK-8224172: assert(jfr_is_event_enabled(id)) failed: invariant + - JDK-8227011: Starting a JFR recording in response to JVMTI VMInit and / or Java agent premain corrupts memory + - JDK-8227605: Kitchensink fails "assert((((klass)->trace_id() & (JfrTraceIdEpoch::leakp_in_use_this_epoch_bit())) != 0)) failed: invariant" + - JDK-8229366: JFR backport allows unchecked writing to memory + - JDK-8229401: Fix JFR code cache test failures + - JDK-8229708: JFR backport code does not initialize + - JDK-8229873: 8229401 broke jdk8u-jfr-incubator + - JDK-8230707: JFR related tests are failing + - JDK-8231995: two jtreg tests failed after 8229366 is fixed + - JDK-8236008: Some backup files were accidentally left in the hotspot tree + - JDK-8238076: Fix OpenJDK 7 Bootstrap Broken by JFR Backport + - JDK-8238589: Necessary code cleanup in JFR for JDK8u + - JDK-8239476: JDK-8238589 broke windows build by moving OrderedPair + - JDK-8239867: correct over use of INCLUDE_JFR macro + - JDK-8241444: Metaspace::_class_vsm not initialized if compressed class pointers are disabled + - JDK-8241902: AIX Build broken after integration of JDK-8223147 (JFR Backport) + - JDK-8242788: Non-PCH build is broken after JDK-8191393 +* AArch64 port + - JDK-8183925: [AArch64] Decouple crash protection from watcher thread + - JDK-8199712: [AArch64] Flight Recorder + - JDK-8215961: jdk/jfr/event/os/TestCPUInformation.java fails on AArch64 + New in release 3.16.0 (2020-05-02): * Security fixes diff -r 9a5af933ef21 -r 2c02d50412c9 hotspot.map.in --- a/hotspot.map.in Mon May 04 01:50:31 2020 +0100 +++ b/hotspot.map.in Sun Aug 09 23:37:37 2020 +0100 @@ -1,4 +1,4 @@ # version type(drop/hg) url changeset sha256sum default drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ eeb08cfebded a6b3e5379b95d6263d8d397cf181d6c07946400f1d5a424a8bc06c1cce9ef1e3 -shenandoah drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ e4e81ae21643 9f3d54522e8d8f97d0d6bc4c3b2e2e8779bdffbac0b7fea5b7a27e6ec665db7c +shenandoah drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 7d23269db69a ca473d1f3bc0ac5ca6713a4df31d42d911c50f9789f0dce5b1726bd5a13536b1 aarch32 drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ ecc1eb1dc760 271c119ce3691af203f6d13709e65a3de1c43cc880fc1d3ffbc05e8ec595589b diff -r 9a5af933ef21 -r 2c02d50412c9 patches/hotspot/aarch32/8143245-pr3548.patch --- a/patches/hotspot/aarch32/8143245-pr3548.patch Mon May 04 01:50:31 2020 +0100 +++ b/patches/hotspot/aarch32/8143245-pr3548.patch Sun Aug 09 23:37:37 2020 +0100 @@ -1,1 +1,146 @@ -../shenandoah/8143245-pr3548.patch \ No newline at end of file +# HG changeset patch +# User sgehwolf +# Date 1525714161 -3600 +# Mon May 07 18:29:21 2018 +0100 +# Node ID afb31413c73cbc06420fdb447aa90a7a38258904 +# Parent bcbc64dfb629c5f188bbf59b8f986ad95963ed60 +8143245, PR3548: Zero build requires disabled warnings +Reviewed-by: dholmes, coleenp + +diff -Nru openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make +--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make 2019-10-10 18:16:42.000000000 +0100 ++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make 2019-10-24 04:00:14.945588968 +0100 +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + # Copyright 2007, 2008 Red Hat, Inc. + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + # +@@ -29,11 +29,6 @@ + ifeq ($(JVM_VARIANT_ZEROSHARK), true) + WARNING_FLAGS += -Wno-undef + endif +-# Suppress some warning flags that are normally turned on for hotspot, +-# because some of the zero code has not been updated accordingly. +-WARNING_FLAGS += -Wno-return-type \ +- -Wno-format-nonliteral -Wno-format-security \ +- -Wno-maybe-uninitialized + + + # If FDLIBM_CFLAGS is non-empty it holds CFLAGS needed to be passed to +diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp 2019-10-10 18:16:42.000000000 +0100 ++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp 2019-10-24 03:59:57.009862016 +0100 +@@ -100,7 +100,7 @@ + case T_DOUBLE: + case T_VOID: + return result; +- default : ShouldNotReachHere(); ++ default : ShouldNotReachHere(); return NULL_WORD; + } + } + +diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp 2019-10-10 18:16:42.000000000 +0100 ++++ openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp 2019-10-24 03:59:57.009862016 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright 2007, 2008, 2010 Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * +@@ -62,7 +62,7 @@ + } + + void InterpreterRuntime::SignatureHandlerGeneratorBase::push(BasicType type) { +- ffi_type *ftype; ++ ffi_type *ftype = NULL; + switch (type) { + case T_VOID: + ftype = &ffi_type_void; +diff -Nru openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp +--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2019-10-10 18:16:42.000000000 +0100 ++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2019-10-24 03:59:57.009862016 +0100 +@@ -1,6 +1,6 @@ + /* + * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. +- * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. ++ * Copyright 2016 Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -61,6 +61,7 @@ + + frame os::get_sender_for_C_frame(frame* fr) { + ShouldNotCallThis(); ++ return frame(NULL, NULL); // silence compile warning. + } + + frame os::current_frame() { +@@ -98,16 +99,19 @@ + + address os::Linux::ucontext_get_pc(ucontext_t* uc) { + ShouldNotCallThis(); ++ return NULL; // silence compile warnings + } + + ExtendedPC os::fetch_frame_from_context(void* ucVoid, + intptr_t** ret_sp, + intptr_t** ret_fp) { + ShouldNotCallThis(); ++ return NULL; // silence compile warnings + } + + frame os::fetch_frame_from_context(void* ucVoid) { + ShouldNotCallThis(); ++ return frame(NULL, NULL); // silence compile warnings + } + + extern "C" JNIEXPORT int +@@ -247,11 +251,16 @@ + } + #endif // !PRODUCT + +- const char *fmt = "caught unhandled signal %d"; + char buf[64]; + +- sprintf(buf, fmt, sig); ++ sprintf(buf, "caught unhandled signal %d", sig); ++ ++// Silence -Wformat-security warning for fatal() ++PRAGMA_DIAG_PUSH ++PRAGMA_FORMAT_NONLITERAL_IGNORED + fatal(buf); ++PRAGMA_DIAG_POP ++ return true; // silence compiler warnings + } + + void os::Linux::init_thread_fpu_state(void) { +@@ -260,6 +269,7 @@ + + int os::Linux::get_fpu_control_word() { + ShouldNotCallThis(); ++ return -1; // silence compile warnings + } + + void os::Linux::set_fpu_control_word(int fpu) { +diff -Nru openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp +--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp 2019-10-10 18:16:42.000000000 +0100 ++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp 2019-10-24 03:59:57.009862016 +0100 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * +@@ -110,6 +110,7 @@ + void* ucontext, + bool isInJava) { + ShouldNotCallThis(); ++ return false; // silence compile warning + } + + // These routines are only used on cpu architectures that diff -r 9a5af933ef21 -r 2c02d50412c9 patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch --- a/patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch Mon May 04 01:50:31 2020 +0100 +++ b/patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch Sun Aug 09 23:37:37 2020 +0100 @@ -1,1 +1,462 @@ -../shenandoah/8158260-pr2991-rh1341258.patch \ No newline at end of file +# HG changeset patch +# User simonis +# Date 1466155884 -7200 +# Fri Jun 17 11:31:24 2016 +0200 +# Node ID 4b40867e627dd9043bc67a4795caa9834ef69478 +# Parent 3fc29347b27fdd2075e6ec6d80bb26ab2bf667c1 +8158260, PR2991, RH1341258: PPC64: unaligned Unsafe.getInt can lead to the generation of illegal instructions +Summary: Adjust instruction generation. Includes portions of 8026049 for test case. +Reviewed-by: goetz +Contributed-by: gromero@linux.vnet.ibm.com, horii@jp.ibm.com + +diff -Nru openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp +--- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp 2019-01-16 07:13:59.000000000 +0000 ++++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp 2019-01-25 13:46:51.799453897 +0000 +@@ -237,6 +251,11 @@ + if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) { + UseMontgomerySquareIntrinsic = true; + } ++ ++ // This machine allows unaligned memory accesses ++ if (FLAG_IS_DEFAULT(UseUnalignedAccesses)) { ++ FLAG_SET_DEFAULT(UseUnalignedAccesses, true); ++ } + } + + void VM_Version::print_features() { +diff -Nru openjdk.orig/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp +--- openjdk.orig/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp 2019-01-16 07:13:59.000000000 +0000 ++++ openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp 2019-01-25 13:46:51.799453897 +0000 +@@ -375,6 +375,13 @@ + (cache_line_size > ContendedPaddingWidth)) + ContendedPaddingWidth = cache_line_size; + ++ // This machine does not allow unaligned memory accesses ++ if (UseUnalignedAccesses) { ++ if (!FLAG_IS_DEFAULT(UseUnalignedAccesses)) ++ warning("Unaligned memory access is not available on this CPU"); ++ FLAG_SET_DEFAULT(UseUnalignedAccesses, false); ++ } ++ + #ifndef PRODUCT + if (PrintMiscellaneous && Verbose) { + tty->print_cr("L1 data cache line size: %u", L1_data_cache_line_size()); +diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/vm_version_x86.cpp openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp +--- openjdk.orig/hotspot/src/cpu/x86/vm/vm_version_x86.cpp 2019-01-16 07:13:59.000000000 +0000 ++++ openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp 2019-01-25 13:46:51.799453897 +0000 +@@ -1033,6 +1033,11 @@ + (cache_line_size > ContendedPaddingWidth)) + ContendedPaddingWidth = cache_line_size; + ++ // This machine allows unaligned memory accesses ++ if (FLAG_IS_DEFAULT(UseUnalignedAccesses)) { ++ FLAG_SET_DEFAULT(UseUnalignedAccesses, true); ++ } ++ + #ifndef PRODUCT + if (PrintMiscellaneous && Verbose) { + tty->print_cr("Logical CPUs per core: %u", +diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/vm_version_zero.cpp openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.cpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/vm_version_zero.cpp 2019-01-16 07:13:59.000000000 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.cpp 2019-01-25 13:46:51.799453897 +0000 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright 2009 Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * +@@ -36,4 +36,11 @@ + # include "os_bsd.inline.hpp" + #endif + +-// This file is intentionally empty ++ ++void VM_Version::initialize() { ++ // This machine does not allow unaligned memory accesses ++ if (! FLAG_IS_DEFAULT(UseUnalignedAccesses)) { ++ warning("Unaligned memory access is not available on this CPU"); ++ FLAG_SET_DEFAULT(UseUnalignedAccesses, false); ++ } ++} +diff -Nru openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp openjdk/hotspot/src/share/vm/prims/unsafe.cpp +--- openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp 2019-01-16 07:13:59.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/prims/unsafe.cpp 2019-01-25 13:50:10.160334728 +0000 +@@ -385,6 +385,24 @@ + + #endif // not SUPPORTS_NATIVE_CX8 + ++UNSAFE_ENTRY(jboolean, Unsafe_isBigEndian0(JNIEnv *env, jobject unsafe)) ++ UnsafeWrapper("Unsafe_IsBigEndian0"); ++ { ++#ifdef VM_LITTLE_ENDIAN ++ return false; ++#else ++ return true; ++#endif ++ } ++UNSAFE_END ++ ++UNSAFE_ENTRY(jint, Unsafe_unalignedAccess0(JNIEnv *env, jobject unsafe)) ++ UnsafeWrapper("Unsafe_UnalignedAccess0"); ++ { ++ return UseUnalignedAccesses; ++ } ++UNSAFE_END ++ + #define DEFINE_GETSETOOP(jboolean, Boolean) \ + \ + UNSAFE_ENTRY(jboolean, Unsafe_Get##Boolean##140(JNIEnv *env, jobject unsafe, jobject obj, jint offset)) \ +@@ -1716,6 +1734,11 @@ + {CC "fullFence", CC "()V", FN_PTR(Unsafe_FullFence)}, + }; + ++JNINativeMethod cpu_methods[] = { ++ {CC"isBigEndian0", CC"()Z", FN_PTR(Unsafe_isBigEndian0)}, ++ {CC"unalignedAccess0", CC"()Z", FN_PTR(Unsafe_unalignedAccess0)} ++}; ++ + #undef CC + #undef FN_PTR + +@@ -1815,5 +1838,8 @@ + + // Fence methods + register_natives("1.8 fence methods", env, unsafecls, fence_methods, sizeof(fence_methods)/sizeof(JNINativeMethod)); ++ ++ // CPU methods ++ register_natives("1.9 CPU methods", env, unsafecls, cpu_methods, sizeof(cpu_methods)/sizeof(JNINativeMethod)); + } + JVM_END +diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp +--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp 2019-01-16 07:13:59.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp 2019-01-25 13:46:51.803453833 +0000 +@@ -4003,6 +4003,9 @@ + product(bool, UseLockedTracing, false, \ + "Use locked-tracing when doing event-based tracing") \ + \ ++ diagnostic(bool, UseUnalignedAccesses, false, \ ++ "Use unaligned memory accesses in sun.misc.Unsafe") \ ++ \ + product_pd(bool, PreserveFramePointer, \ + "Use the FP register for holding the frame pointer " \ + "and not as a general purpose register.") +diff -Nru openjdk.orig/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java openjdk/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java +--- openjdk.orig/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java 1970-01-01 01:00:00.000000000 +0100 ++++ openjdk/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java 2019-01-25 13:46:51.803453833 +0000 +@@ -0,0 +1,315 @@ ++/* ++ * Copyright (c) 2016 SAP SE. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * 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. ++ */ ++ ++/* ++ * @test ++ * @bug 8158260 ++ * @summary Test unaligned Unsafe accesses ++ * @modules java.base/jdk.internal.misc ++ * @run main/othervm -Diters=20000 -XX:-UseOnStackReplacement -XX:-BackgroundCompilation JdkInternalMiscUnsafeUnalignedAccess ++ * @author volker.simonis@gmail.com ++ */ ++ ++import java.lang.reflect.Field; ++import java.nio.ByteOrder; ++import sun.misc.Unsafe; ++ ++public class JdkInternalMiscUnsafeUnalignedAccess { ++ static final int ITERS = Integer.getInteger("iters", 20_000); ++ private static final boolean BIG_ENDIAN = ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN); ++ private static final Unsafe UNSAFE; ++ private static final int SIZE = 1024; ++ private static long memory; ++ ++ static { ++ try { ++ Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe"); ++ unsafeField.setAccessible(true); ++ UNSAFE = (Unsafe) unsafeField.get(null); ++ } ++ catch (Exception e) { ++ throw new RuntimeException("Unable to get Unsafe instance.", e); ++ } ++ } ++ ++ static int getInt_0() { ++ return UNSAFE.getInt(memory + 0); ++ } ++ static int getInt_1() { ++ return UNSAFE.getInt(memory + 1); ++ } ++ static int getInt_4() { ++ return UNSAFE.getInt(memory + 4); ++ } ++ static int getInt_17() { ++ return UNSAFE.getInt(memory + 17); ++ } ++ ++ static long getIntAsLong_0() { ++ return UNSAFE.getInt(memory + 0); ++ } ++ static long getIntAsLong_1() { ++ return UNSAFE.getInt(memory + 1); ++ } ++ static long getIntAsLong_4() { ++ return UNSAFE.getInt(memory + 4); ++ } ++ static long getIntAsLong_17() { ++ return UNSAFE.getInt(memory + 17); ++ } ++ ++ static long getLong_0() { ++ return UNSAFE.getLong(memory + 0); ++ } ++ static long getLong_1() { ++ return UNSAFE.getLong(memory + 1); ++ } ++ static long getLong_4() { ++ return UNSAFE.getLong(memory + 4); ++ } ++ static long getLong_8() { ++ return UNSAFE.getLong(memory + 8); ++ } ++ static long getLong_17() { ++ return UNSAFE.getLong(memory + 17); ++ } ++ ++ static void putInt_0(int i) { ++ UNSAFE.putInt(memory + 0, i); ++ } ++ static void putInt_1(int i) { ++ UNSAFE.putInt(memory + 1, i); ++ } ++ static void putInt_4(int i) { ++ UNSAFE.putInt(memory + 4, i); ++ } ++ static void putInt_17(int i) { ++ UNSAFE.putInt(memory + 17, i); ++ } ++ ++ static void putLong_0(long l) { ++ UNSAFE.putLong(memory + 0, l); ++ } ++ static void putLong_1(long l) { ++ UNSAFE.putLong(memory + 1, l); ++ } ++ static void putLong_4(long l) { ++ UNSAFE.putLong(memory + 4, l); ++ } ++ static void putLong_8(long l) { ++ UNSAFE.putLong(memory + 8, l); ++ } ++ static void putLong_17(long l) { ++ UNSAFE.putLong(memory + 17, l); ++ } ++ ++ public static void main(String[] args) throws Exception { ++ ++ if (!UNSAFE.unalignedAccess()) { ++ System.out.println("Platform is not supporting unaligned access - nothing to test."); ++ return; ++ } ++ ++ memory = UNSAFE.allocateMemory(SIZE); ++ ++ UNSAFE.putInt(memory + 0, 0x00112233); ++ UNSAFE.putInt(memory + 4, 0x44556677); ++ UNSAFE.putInt(memory + 8, 0x8899aabb); ++ UNSAFE.putInt(memory + 12, 0xccddeeff); ++ UNSAFE.putInt(memory + 16, 0x01234567); ++ UNSAFE.putInt(memory + 20, 0x89abcdef); ++ UNSAFE.putInt(memory + 24, 0x01234567); ++ ++ // Unsafe.getInt() ++ int res; ++ for (int i = 0; i < ITERS; i++) { ++ res = getInt_0(); ++ if (res != 0x00112233) { ++ throw new Exception(res + " != 0x00112233"); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ res = getInt_1(); ++ if (res != (BIG_ENDIAN ? 0x11223344 : 0x77001122)) { ++ throw new Exception(res + " != " + (BIG_ENDIAN ? 0x11223344 : 0x77001122)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ res = getInt_4(); ++ if (res != 0x44556677) { ++ throw new Exception(res + " != 0x44556677"); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ res = getInt_17(); ++ if (res != (BIG_ENDIAN ? 0x23456789 : 0xef012345)) { ++ throw new Exception(res + " != " + (BIG_ENDIAN ? 0x23456789 : 0xef012345)); ++ } ++ } ++ ++ // (long)Unsafe.getInt() ++ long lres; ++ for (int i = 0; i < ITERS; i++) { ++ lres = getIntAsLong_0(); ++ if (lres != (long)0x00112233) { ++ throw new Exception(lres + " != 0x00112233"); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ lres = getIntAsLong_1(); ++ if (lres != (BIG_ENDIAN ? (long)0x11223344 : (long)0x77001122)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? (long)0x11223344 : (long)0x77001122)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ lres = getIntAsLong_4(); ++ if (lres != (long)0x44556677) { ++ throw new Exception(lres + " != 0x44556677"); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ lres = getIntAsLong_17(); ++ if (lres != (BIG_ENDIAN ? (long)0x23456789 : (long)0xef012345)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? (long)0x23456789 : (long)0xef012345)); ++ } ++ } ++ ++ // Unsafe.getLong() ++ for (int i = 0; i < ITERS; i++) { ++ lres = getLong_0(); ++ if (lres != (BIG_ENDIAN ? 0x0011223344556677L : 0x4455667700112233L)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x0011223344556677L : 0x4455667700112233L)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ lres = getLong_1(); ++ if (lres != (BIG_ENDIAN ? 0x1122334455667788L : 0xbb44556677001122L)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x1122334455667788L : 0xbb44556677001122L)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ lres = getLong_4(); ++ if (lres != (BIG_ENDIAN ? 0x445566778899aabbL : 0x8899aabb44556677L)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x445566778899aabbL : 0x8899aabb44556677L)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ lres = getLong_8(); ++ if (lres != (BIG_ENDIAN ? 0x8899aabbccddeeffL : 0xccddeeff8899aabbL)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x8899aabbccddeeffL : 0xccddeeff8899aabbL)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ lres = getLong_17(); ++ if (lres != (BIG_ENDIAN ? 0x23456789abcdef01L : 0x6789abcdef012345L)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x23456789abcdef01L : 0x6789abcdef012345L)); ++ } ++ } ++ ++ // Unsafe.putInt() ++ for (int i = 0; i < ITERS; i++) { ++ putInt_0(0x00112233); ++ res = getInt_0(); ++ if (res != 0x00112233) { ++ throw new Exception(res + " != 0x00112233"); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ putInt_1(BIG_ENDIAN ? 0x11223344 : 0x77001122); ++ res = getInt_1(); ++ if (res != (BIG_ENDIAN ? 0x11223344 : 0x77001122)) { ++ throw new Exception(res + " != " + (BIG_ENDIAN ? 0x11223344 : 0x77001122)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ putInt_4(0x44556677); ++ res = getInt_4(); ++ if (res != 0x44556677) { ++ throw new Exception(res + " != 0x44556677"); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ putInt_17(BIG_ENDIAN ? 0x23456789 : 0xef012345); ++ res = getInt_17(); ++ if (res != (BIG_ENDIAN ? 0x23456789 : 0xef012345)) { ++ throw new Exception(res + " != " + (BIG_ENDIAN ? 0x23456789 : 0xef012345)); ++ } ++ } ++ ++ ++ // Unsafe.putLong() ++ for (int i = 0; i < ITERS; i++) { ++ putLong_0(BIG_ENDIAN ? 0x0011223344556677L : 0x4455667700112233L); ++ lres = getLong_0(); ++ if (lres != (BIG_ENDIAN ? 0x0011223344556677L : 0x4455667700112233L)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x0011223344556677L : 0x4455667700112233L)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ putLong_1(BIG_ENDIAN ? 0x1122334455667788L : 0xbb44556677001122L); ++ lres = getLong_1(); ++ if (lres != (BIG_ENDIAN ? 0x1122334455667788L : 0xbb44556677001122L)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x1122334455667788L : 0xbb44556677001122L)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ putLong_4(BIG_ENDIAN ? 0x445566778899aabbL : 0x8899aabb44556677L); ++ lres = getLong_4(); ++ if (lres != (BIG_ENDIAN ? 0x445566778899aabbL : 0x8899aabb44556677L)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x445566778899aabbL : 0x8899aabb44556677L)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ putLong_8(BIG_ENDIAN ? 0x8899aabbccddeeffL : 0xccddeeff8899aabbL); ++ lres = getLong_8(); ++ if (lres != (BIG_ENDIAN ? 0x8899aabbccddeeffL : 0xccddeeff8899aabbL)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x8899aabbccddeeffL : 0xccddeeff8899aabbL)); ++ } ++ } ++ ++ for (int i = 0; i < ITERS; i++) { ++ putLong_17(BIG_ENDIAN ? 0x23456789abcdef01L : 0x6789abcdef012345L); ++ lres = getLong_17(); ++ if (lres != (BIG_ENDIAN ? 0x23456789abcdef01L : 0x6789abcdef012345L)) { ++ throw new Exception(lres + " != " + (BIG_ENDIAN ? 0x23456789abcdef01L : 0x6789abcdef012345L)); ++ } ++ } ++ } ++ ++} diff -r 9a5af933ef21 -r 2c02d50412c9 patches/hotspot/aarch32/pr1975.patch --- a/patches/hotspot/aarch32/pr1975.patch Mon May 04 01:50:31 2020 +0100 +++ b/patches/hotspot/aarch32/pr1975.patch Sun Aug 09 23:37:37 2020 +0100 @@ -1,1 +1,397 @@ -../shenandoah/pr1975.patch \ No newline at end of file +# HG changeset patch +# User andrew +# Date 1433440378 -3600 +# Thu Jun 04 18:52:58 2015 +0100 +# Node ID 74654e3651a912ce5b8d61a2604e78264b13eace +# Parent 9b0cf2504591dc6d53765cb4e987651027ee7650 +PR1975: SystemTap probes for the garbage collector. +Contributed-by: Lukas Berk + +diff -Nru openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp openjdk/hotspot/src/share/vm/compiler/oopMap.cpp +--- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp 2016-07-21 04:08:08.504603049 +0100 +@@ -33,9 +33,13 @@ + #include "memory/resourceArea.hpp" + #include "runtime/frame.inline.hpp" + #include "runtime/signature.hpp" ++#include "utilities/dtrace.hpp" + #ifdef COMPILER1 + #include "c1/c1_Defs.hpp" + #endif ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL1(provider, gc__collection__delete, *uintptr_t); ++#endif /* !USDT2 */ + + // OopMapStream + +@@ -664,6 +668,9 @@ + " - Derived: " INTPTR_FORMAT " Base: " INTPTR_FORMAT " (Offset: " INTX_FORMAT ")", + p2i(derived_loc), p2i((address)*derived_loc), p2i((address)base), offset); + } ++#ifndef USDT2 ++ HS_DTRACE_PROBE1(hotspot, gc__collection__delete, entry); ++#endif /* !USDT2 */ + + // Delete entry + delete entry; +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2016-07-21 04:08:08.508602985 +0100 +@@ -63,6 +63,12 @@ + #include "runtime/vmThread.hpp" + #include "services/memoryService.hpp" + #include "services/runtimeService.hpp" ++#include "utilities/dtrace.hpp" ++ ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ + + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + +@@ -1674,7 +1680,13 @@ + size_t size, + bool tlab) + { ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, tlab); ++#endif /* !USDT2 */ + collector()->collect(full, clear_all_soft_refs, size, tlab); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, tlab); ++#endif /* !USDT2 */ + } + + void CMSCollector::collect(bool full, +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2016-07-21 04:08:08.508602985 +0100 +@@ -51,8 +51,13 @@ + #include "runtime/thread.hpp" + #include "runtime/vmThread.hpp" + #include "utilities/copy.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/events.hpp" + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__end, *uintptr_t, *uintptr_t); ++ #endif /* !USDT2 */ + class HeapRegion; + + void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, +@@ -86,6 +91,9 @@ + // The marking doesn't preserve the marks of biased objects. + BiasedLocking::preserve_marks(); + ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__G1__begin, &sh, sh->gc_cause()); ++#endif /* !USDT2 */ + mark_sweep_phase1(marked_for_unloading, clear_all_softrefs); + + mark_sweep_phase2(); +@@ -101,6 +109,9 @@ + BiasedLocking::restore_marks(); + GenMarkSweep::deallocate_stacks(); + ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__G1__end, &sh, sh->gc_cause()); ++#endif /* !USDT2 */ + // "free at last gc" is calculated from these. + // CHF: cheating for now!!! + // Universe::set_heap_capacity_at_last_gc(Universe::heap()->capacity()); +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2016-07-21 04:08:08.508602985 +0100 +@@ -43,8 +43,14 @@ + #include "runtime/java.hpp" + #include "runtime/vmThread.hpp" + #include "services/memTracker.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/vmError.hpp" + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__parscavenge__heap__end, *uintptr_t, *uintptr_t); ++#endif /* !USDT2 */ ++ + PSYoungGen* ParallelScavengeHeap::_young_gen = NULL; + PSOldGen* ParallelScavengeHeap::_old_gen = NULL; + PSAdaptiveSizePolicy* ParallelScavengeHeap::_size_policy = NULL; +@@ -531,7 +537,13 @@ + } + + VM_ParallelGCSystemGC op(gc_count, full_gc_count, cause); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__begin, &op, cause); ++#endif /* !USDT2 */ + VMThread::execute(&op); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__parscavenge__heap__end, &op, cause); ++#endif /* !USDT2 */ + } + + void ParallelScavengeHeap::oop_iterate(ExtendedOopClosure* cl) { +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2016-07-21 04:08:08.508602985 +0100 +@@ -56,6 +56,7 @@ + #include "services/management.hpp" + #include "services/memoryService.hpp" + #include "services/memTracker.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/events.hpp" + #include "utilities/stack.inline.hpp" + +@@ -63,6 +64,12 @@ + + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__ParallelCompact__clear, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__parallel__collect, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__move, *uintptr_t, *uintptr_t, *uintptr_t, *uintptr_t); ++#endif /* !USDT2 */ ++ + // All sizes are in HeapWords. + const size_t ParallelCompactData::Log2RegionSize = 16; // 64K words + const size_t ParallelCompactData::RegionSize = (size_t)1 << Log2RegionSize; +@@ -453,6 +460,9 @@ + + void ParallelCompactData::clear() + { ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__ParallelCompact__clear, &_region_data, _region_data->data_location()); ++#endif /* !USDT2 */ + memset(_region_data, 0, _region_vspace->committed_size()); + memset(_block_data, 0, _block_vspace->committed_size()); + } +@@ -1978,6 +1988,9 @@ + "should be in vm thread"); + + ParallelScavengeHeap* heap = gc_heap(); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__parallel__collect, heap, heap->gc_cause()); ++#endif /* !USDT2 */ + GCCause::Cause gc_cause = heap->gc_cause(); + assert(!heap->is_gc_active(), "not reentrant"); + +@@ -3269,6 +3282,9 @@ + // past the end of the partial object entering the region (if any). + HeapWord* const dest_addr = sd.partial_obj_end(dp_region); + HeapWord* const new_top = _space_info[space_id].new_top(); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__move, &beg_addr, &end_addr, &dest_addr, &new_top); ++#endif /* !USDT2 */ + assert(new_top >= dest_addr, "bad new_top value"); + const size_t words = pointer_delta(new_top, dest_addr); + +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2016-07-21 04:08:08.508602985 +0100 +@@ -54,10 +54,20 @@ + #include "runtime/vmThread.hpp" + #include "runtime/vm_operations.hpp" + #include "services/memoryService.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/stack.inline.hpp" + + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSScavenge__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSScavenge__end, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSParallelCompact__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSParallelCompact__end, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSMarkSweep__begin, *uintptr_t, *uintptr_t); ++ HS_DTRACE_PROBE_DECL2(provider, gc__collection__PSMarkSweep__end, *uintptr_t, *uintptr_t); ++#endif /* !USDT2 */ ++ + HeapWord* PSScavenge::_to_space_top_before_gc = NULL; + int PSScavenge::_consecutive_skipped_scavenges = 0; + ReferenceProcessor* PSScavenge::_ref_processor = NULL; +@@ -229,7 +239,13 @@ + PSAdaptiveSizePolicy* policy = heap->size_policy(); + IsGCActiveMark mark; + ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSScavenge__begin, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + const bool scavenge_done = PSScavenge::invoke_no_policy(); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSScavenge__end, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + const bool need_full_gc = !scavenge_done || + policy->should_full_GC(heap->old_gen()->free_in_bytes()); + bool full_gc_done = false; +@@ -246,9 +262,21 @@ + const bool clear_all_softrefs = cp->should_clear_all_soft_refs(); + + if (UseParallelOldGC) { ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSParallelCompact__begin, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + full_gc_done = PSParallelCompact::invoke_no_policy(clear_all_softrefs); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSParallelCompact__end, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + } else { ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSMarkSweep__begin, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + full_gc_done = PSMarkSweep::invoke_no_policy(clear_all_softrefs); ++#ifndef USDT2 ++ HS_DTRACE_PROBE2(hotspot, gc__collection__PSMarkSweep__end, &heap, heap->gc_cause()); ++#endif /* !USDT2 */ + } + } + +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2016-07-21 04:08:08.508602985 +0100 +@@ -54,6 +54,12 @@ + #include "utilities/copy.hpp" + #include "utilities/globalDefinitions.hpp" + #include "utilities/workgroup.hpp" ++#include "utilities/dtrace.hpp" ++ ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__parnew__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ + + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + +@@ -914,6 +920,9 @@ + bool clear_all_soft_refs, + size_t size, + bool is_tlab) { ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__begin, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + assert(full || size > 0, "otherwise we don't want to collect"); + + GenCollectedHeap* gch = GenCollectedHeap::heap(); +@@ -1064,6 +1073,10 @@ + gch->print_heap_change(gch_prev_used); + } + ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__parnew__end, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ ++ + if (PrintGCDetails && ParallelGCVerbose) { + TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats()); + TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats()); +diff -Nru openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp 2016-07-21 04:08:08.508602985 +0100 +@@ -45,10 +45,16 @@ + #include "runtime/prefetch.inline.hpp" + #include "runtime/thread.inline.hpp" + #include "utilities/copy.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/stack.inline.hpp" + + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__defnew__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ ++ + // + // DefNewGeneration functions. + +@@ -561,6 +567,9 @@ + bool clear_all_soft_refs, + size_t size, + bool is_tlab) { ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__begin, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + assert(full || size > 0, "otherwise we don't want to collect"); + + GenCollectedHeap* gch = GenCollectedHeap::heap(); +@@ -709,6 +718,10 @@ + jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC; + update_time_of_last_gc(now); + ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__defnew__end, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ ++ + gch->trace_heap_after_gc(&gc_tracer); + gc_tracer.report_tenuring_threshold(tenuring_threshold()); + +diff -Nru openjdk.orig/hotspot/src/share/vm/memory/generation.cpp openjdk/hotspot/src/share/vm/memory/generation.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/generation.cpp 2016-07-21 04:08:08.508602985 +0100 +@@ -41,10 +41,16 @@ + #include "oops/oop.inline.hpp" + #include "runtime/java.hpp" + #include "utilities/copy.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/events.hpp" + + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__contig__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ ++ + Generation::Generation(ReservedSpace rs, size_t initial_size, int level) : + _level(level), + _ref_processor(NULL) { +@@ -636,7 +642,13 @@ + SerialOldTracer* gc_tracer = GenMarkSweep::gc_tracer(); + gc_tracer->report_gc_start(gch->gc_cause(), gc_timer->gc_start()); + ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__begin, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + GenMarkSweep::invoke_at_safepoint(_level, ref_processor(), clear_all_soft_refs); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__contig__end, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + + gc_timer->register_gc_end(); + +diff -Nru openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2016-05-12 21:03:31.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2016-07-21 04:08:38.520114048 +0100 +@@ -32,11 +32,17 @@ + #include "memory/tenuredGeneration.hpp" + #include "oops/oop.inline.hpp" + #include "runtime/java.hpp" ++#include "utilities/dtrace.hpp" + #include "utilities/macros.hpp" + #if INCLUDE_ALL_GCS + #include "gc_implementation/shared/parGCAllocBuffer.hpp" + #endif + ++#ifndef USDT2 ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__tenured__begin, bool, bool, size_t, bool); ++ HS_DTRACE_PROBE_DECL4(provider, gc__collection__tenured__end, bool, bool, size_t, bool); ++#endif /* !USDT2 */ ++ + TenuredGeneration::TenuredGeneration(ReservedSpace rs, + size_t initial_byte_size, int level, + GenRemSet* remset) : +@@ -154,8 +160,14 @@ + size_t size, + bool is_tlab) { + retire_alloc_buffers_before_full_gc(); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__tenured__begin, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + OneContigSpaceCardGeneration::collect(full, clear_all_soft_refs, + size, is_tlab); ++#ifndef USDT2 ++ HS_DTRACE_PROBE4(hotspot, gc__collection__tenured__end, full, clear_all_soft_refs, size, is_tlab); ++#endif /* !USDT2 */ + } + + void TenuredGeneration::compute_new_size() { diff -r 9a5af933ef21 -r 2c02d50412c9 patches/hotspot/shenandoah/8143245-pr3548.patch --- a/patches/hotspot/shenandoah/8143245-pr3548.patch Mon May 04 01:50:31 2020 +0100 +++ b/patches/hotspot/shenandoah/8143245-pr3548.patch Sun Aug 09 23:37:37 2020 +0100 @@ -8,8 +8,8 @@ Reviewed-by: dholmes, coleenp diff -Nru openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make ---- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make 2019-10-10 18:16:42.000000000 +0100 -+++ openjdk/hotspot/make/linux/makefiles/zeroshark.make 2019-10-24 04:00:14.945588968 +0100 +--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make 2020-07-21 03:22:17.875932021 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. @@ -30,8 +30,8 @@ # If FDLIBM_CFLAGS is non-empty it holds CFLAGS needed to be passed to diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp 2019-10-10 18:16:42.000000000 +0100 -+++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp 2019-10-24 03:59:57.009862016 +0100 +--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp 2020-07-21 03:22:17.875932021 +0100 @@ -100,7 +100,7 @@ case T_DOUBLE: case T_VOID: @@ -42,8 +42,8 @@ } diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp 2019-10-10 18:16:42.000000000 +0100 -+++ openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp 2019-10-24 03:59:57.009862016 +0100 +--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp 2020-07-21 03:22:17.876932032 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -61,8 +61,8 @@ case T_VOID: ftype = &ffi_type_void; diff -Nru openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp ---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2019-10-10 18:16:42.000000000 +0100 -+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2019-10-24 03:59:57.009862016 +0100 +--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2020-07-21 03:22:17.876932032 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. @@ -127,8 +127,8 @@ void os::Linux::set_fpu_control_word(int fpu) { diff -Nru openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp ---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp 2019-10-10 18:16:42.000000000 +0100 -+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp 2019-10-24 03:59:57.009862016 +0100 +--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp 2020-07-21 03:22:43.949200090 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. @@ -143,4 +143,4 @@ + return false; // silence compile warning } - // These routines are only used on cpu architectures that + bool pd_get_top_frame_for_profiling(frame* fr_addr, diff -r 9a5af933ef21 -r 2c02d50412c9 patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch --- a/patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch Mon May 04 01:50:31 2020 +0100 +++ b/patches/hotspot/shenandoah/8158260-pr2991-rh1341258.patch Sun Aug 09 23:37:37 2020 +0100 @@ -10,9 +10,9 @@ Contributed-by: gromero@linux.vnet.ibm.com, horii@jp.ibm.com diff -Nru openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp ---- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp 2019-01-16 07:13:59.000000000 +0000 -+++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp 2019-01-25 13:46:51.799453897 +0000 -@@ -237,6 +251,11 @@ +--- openjdk.orig/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp 2020-07-20 21:22:39.888675486 +0100 +@@ -242,6 +242,11 @@ if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) { UseMontgomerySquareIntrinsic = true; } @@ -25,9 +25,9 @@ void VM_Version::print_features() { diff -Nru openjdk.orig/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp ---- openjdk.orig/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp 2019-01-16 07:13:59.000000000 +0000 -+++ openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp 2019-01-25 13:46:51.799453897 +0000 -@@ -375,6 +375,13 @@ +--- openjdk.orig/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp 2020-07-20 21:22:39.889675497 +0100 +@@ -386,6 +386,13 @@ (cache_line_size > ContendedPaddingWidth)) ContendedPaddingWidth = cache_line_size; @@ -42,9 +42,9 @@ if (PrintMiscellaneous && Verbose) { tty->print_cr("L1 data cache line size: %u", L1_data_cache_line_size()); diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/vm_version_x86.cpp openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp ---- openjdk.orig/hotspot/src/cpu/x86/vm/vm_version_x86.cpp 2019-01-16 07:13:59.000000000 +0000 -+++ openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp 2019-01-25 13:46:51.799453897 +0000 -@@ -1033,6 +1033,11 @@ +--- openjdk.orig/hotspot/src/cpu/x86/vm/vm_version_x86.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/cpu/x86/vm/vm_version_x86.cpp 2020-07-20 21:22:39.889675497 +0100 +@@ -1056,6 +1056,11 @@ (cache_line_size > ContendedPaddingWidth)) ContendedPaddingWidth = cache_line_size; @@ -57,8 +57,8 @@ if (PrintMiscellaneous && Verbose) { tty->print_cr("Logical CPUs per core: %u", diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/vm_version_zero.cpp openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.cpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/vm_version_zero.cpp 2019-01-16 07:13:59.000000000 +0000 -+++ openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.cpp 2019-01-25 13:46:51.799453897 +0000 +--- openjdk.orig/hotspot/src/cpu/zero/vm/vm_version_zero.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/vm_version_zero.cpp 2020-07-20 21:22:39.889675497 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. @@ -80,9 +80,9 @@ + } +} diff -Nru openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp openjdk/hotspot/src/share/vm/prims/unsafe.cpp ---- openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp 2019-01-16 07:13:59.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/prims/unsafe.cpp 2019-01-25 13:50:10.160334728 +0000 -@@ -385,6 +385,24 @@ +--- openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/prims/unsafe.cpp 2020-07-20 21:22:39.889675497 +0100 +@@ -395,6 +395,24 @@ #endif // not SUPPORTS_NATIVE_CX8 @@ -107,7 +107,7 @@ #define DEFINE_GETSETOOP(jboolean, Boolean) \ \ UNSAFE_ENTRY(jboolean, Unsafe_Get##Boolean##140(JNIEnv *env, jobject unsafe, jobject obj, jint offset)) \ -@@ -1716,6 +1734,11 @@ +@@ -1715,6 +1733,11 @@ {CC "fullFence", CC "()V", FN_PTR(Unsafe_FullFence)}, }; @@ -119,7 +119,7 @@ #undef CC #undef FN_PTR -@@ -1815,5 +1838,8 @@ +@@ -1814,5 +1837,8 @@ // Fence methods register_natives("1.8 fence methods", env, unsafecls, fence_methods, sizeof(fence_methods)/sizeof(JNINativeMethod)); @@ -129,21 +129,21 @@ } JVM_END diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp ---- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp 2019-01-16 07:13:59.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/globals.hpp 2019-01-25 13:46:51.803453833 +0000 -@@ -4003,6 +4003,9 @@ - product(bool, UseLockedTracing, false, \ - "Use locked-tracing when doing event-based tracing") \ +--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp 2020-07-20 21:26:19.916023747 +0100 +@@ -4001,6 +4001,9 @@ + "Allocation less than this value will be allocated " \ + "using malloc. Larger allocations will use mmap.") \ \ + diagnostic(bool, UseUnalignedAccesses, false, \ + "Use unaligned memory accesses in sun.misc.Unsafe") \ + \ product_pd(bool, PreserveFramePointer, \ "Use the FP register for holding the frame pointer " \ - "and not as a general purpose register.") + "and not as a general purpose register.") \ diff -Nru openjdk.orig/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java openjdk/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java --- openjdk.orig/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java 2019-01-25 13:46:51.803453833 +0000 ++++ openjdk/hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeUnalignedAccess.java 2020-07-20 21:22:39.899675604 +0100 @@ -0,0 +1,315 @@ +/* + * Copyright (c) 2016 SAP SE. All rights reserved. diff -r 9a5af933ef21 -r 2c02d50412c9 patches/hotspot/shenandoah/8251120-pr3793.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/shenandoah/8251120-pr3793.patch Sun Aug 09 23:37:37 2020 +0100 @@ -0,0 +1,96 @@ +diff --git openjdk.orig/hotspot/make/aix/makefiles/buildtree.make openjdk/hotspot/make/aix/makefiles/buildtree.make +--- openjdk.orig/hotspot/make/aix/makefiles/buildtree.make ++++ openjdk/hotspot/make/aix/makefiles/buildtree.make +@@ -111,7 +111,7 @@ + endif + endif + +-ifeq ($(ENABLE_JFR),false) ++ifneq ($(ENABLE_JFR),true) + ALWAYS_EXCLUDE_DIRS += -o -name jfr + endif + +diff --git openjdk.orig/hotspot/make/aix/makefiles/vm.make openjdk/hotspot/make/aix/makefiles/vm.make +--- openjdk.orig/hotspot/make/aix/makefiles/vm.make ++++ openjdk/hotspot/make/aix/makefiles/vm.make +@@ -147,7 +147,7 @@ + LIBJVM_DEBUGINFO = lib$(JVM).debuginfo + LIBJVM_DIZ = lib$(JVM).diz + +-ifeq ($(ENABLE_JFR),false) ++ifneq ($(ENABLE_JFR),true) + EXCLUDE_JFR_PATHS:= -o -name jfr -prune + endif + +diff --git openjdk.orig/hotspot/make/bsd/makefiles/buildtree.make openjdk/hotspot/make/bsd/makefiles/buildtree.make +--- openjdk.orig/hotspot/make/bsd/makefiles/buildtree.make ++++ openjdk/hotspot/make/bsd/makefiles/buildtree.make +@@ -113,7 +113,7 @@ + endif + endif + +-ifeq ($(ENABLE_JFR),false) ++ifneq ($(ENABLE_JFR),true) + ALWAYS_EXCLUDE_DIRS += -o -name jfr + endif + +diff --git openjdk.orig/hotspot/make/bsd/makefiles/vm.make openjdk/hotspot/make/bsd/makefiles/vm.make +--- openjdk.orig/hotspot/make/bsd/makefiles/vm.make ++++ openjdk/hotspot/make/bsd/makefiles/vm.make +@@ -165,7 +165,7 @@ + LIBJVM_DIZ = lib$(JVM).diz + endif + +-ifeq ($(ENABLE_JFR),false) ++ifneq ($(ENABLE_JFR),true) + EXCLUDE_JFR_PATHS:= -o -name jfr -prune + endif + SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt +diff --git openjdk.orig/hotspot/make/linux/makefiles/buildtree.make openjdk/hotspot/make/linux/makefiles/buildtree.make +--- openjdk.orig/hotspot/make/linux/makefiles/buildtree.make ++++ openjdk/hotspot/make/linux/makefiles/buildtree.make +@@ -112,7 +112,7 @@ + endif + endif + +-ifeq ($(ENABLE_JFR),false) ++ifneq ($(ENABLE_JFR),true) + ALWAYS_EXCLUDE_DIRS += -o -name jfr + endif + +diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make openjdk/hotspot/make/linux/makefiles/vm.make +--- openjdk.orig/hotspot/make/linux/makefiles/vm.make ++++ openjdk/hotspot/make/linux/makefiles/vm.make +@@ -150,7 +150,7 @@ + LIBJVM_DEBUGINFO = lib$(JVM).debuginfo + LIBJVM_DIZ = lib$(JVM).diz + +-ifeq ($(ENABLE_JFR),false) ++ifneq ($(ENABLE_JFR),true) + EXCLUDE_JFR_PATHS:= -o -name jfr -prune + endif + SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt +diff --git openjdk.orig/hotspot/make/solaris/makefiles/buildtree.make openjdk/hotspot/make/solaris/makefiles/buildtree.make +--- openjdk.orig/hotspot/make/solaris/makefiles/buildtree.make ++++ openjdk/hotspot/make/solaris/makefiles/buildtree.make +@@ -103,7 +103,7 @@ + endif + endif + +-ifeq ($(ENABLE_JFR),false) ++ifneq ($(ENABLE_JFR),true) + ALWAYS_EXCLUDE_DIRS += -o -name jfr + endif + +diff --git openjdk.orig/hotspot/make/solaris/makefiles/vm.make openjdk/hotspot/make/solaris/makefiles/vm.make +--- openjdk.orig/hotspot/make/solaris/makefiles/vm.make ++++ openjdk/hotspot/make/solaris/makefiles/vm.make +@@ -164,7 +164,7 @@ + + LIBJVM_DEBUGINFO = lib$(JVM).debuginfo + LIBJVM_DIZ = lib$(JVM).diz +-ifeq ($(ENABLE_JFR),false) ++ifneq ($(ENABLE_JFR),true) + EXCLUDE_JFR_PATHS:= -o -name jfr -prune + endif + SPECIAL_PATHS:=adlc c1 dist gc_implementation opto shark libadt diff -r 9a5af933ef21 -r 2c02d50412c9 patches/hotspot/shenandoah/pr1975.patch --- a/patches/hotspot/shenandoah/pr1975.patch Mon May 04 01:50:31 2020 +0100 +++ b/patches/hotspot/shenandoah/pr1975.patch Sun Aug 09 23:37:37 2020 +0100 @@ -8,8 +8,8 @@ Contributed-by: Lukas Berk diff -Nru openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp openjdk/hotspot/src/share/vm/compiler/oopMap.cpp ---- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp 2016-07-21 04:08:08.504603049 +0100 +--- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp 2020-07-20 21:45:58.967022854 +0100 @@ -33,9 +33,13 @@ #include "memory/resourceArea.hpp" #include "runtime/frame.inline.hpp" @@ -24,7 +24,7 @@ // OopMapStream -@@ -664,6 +668,9 @@ +@@ -663,6 +667,9 @@ " - Derived: " INTPTR_FORMAT " Base: " INTPTR_FORMAT " (Offset: " INTX_FORMAT ")", p2i(derived_loc), p2i((address)*derived_loc), p2i((address)base), offset); } @@ -35,8 +35,8 @@ // Delete entry delete entry; diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2016-07-21 04:08:08.508602985 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2020-07-20 21:45:58.968022866 +0100 @@ -63,6 +63,12 @@ #include "runtime/vmThread.hpp" #include "services/memoryService.hpp" @@ -50,7 +50,7 @@ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC -@@ -1674,7 +1680,13 @@ +@@ -1678,7 +1684,13 @@ size_t size, bool tlab) { @@ -65,23 +65,27 @@ void CMSCollector::collect(bool full, diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2016-07-21 04:08:08.508602985 +0100 -@@ -51,8 +51,13 @@ +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2020-07-20 21:46:37.233452471 +0100 +@@ -51,11 +51,17 @@ #include "runtime/thread.hpp" #include "runtime/vmThread.hpp" #include "utilities/copy.hpp" +#include "utilities/dtrace.hpp" #include "utilities/events.hpp" + #if INCLUDE_JFR + #include "jfr/jfr.hpp" + #endif // INCLUDE_JFR +#ifndef USDT2 + HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__begin, *uintptr_t, *uintptr_t); + HS_DTRACE_PROBE_DECL2(provider, gc__collection__G1__end, *uintptr_t, *uintptr_t); + #endif /* !USDT2 */ ++ class HeapRegion; void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, -@@ -86,6 +91,9 @@ +@@ -89,6 +95,9 @@ // The marking doesn't preserve the marks of biased objects. BiasedLocking::preserve_marks(); @@ -91,7 +95,7 @@ mark_sweep_phase1(marked_for_unloading, clear_all_softrefs); mark_sweep_phase2(); -@@ -101,6 +109,9 @@ +@@ -104,6 +113,9 @@ BiasedLocking::restore_marks(); GenMarkSweep::deallocate_stacks(); @@ -102,8 +106,8 @@ // CHF: cheating for now!!! // Universe::set_heap_capacity_at_last_gc(Universe::heap()->capacity()); diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2016-07-21 04:08:08.508602985 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2020-07-20 21:45:58.968022866 +0100 @@ -43,8 +43,14 @@ #include "runtime/java.hpp" #include "runtime/vmThread.hpp" @@ -119,7 +123,7 @@ PSYoungGen* ParallelScavengeHeap::_young_gen = NULL; PSOldGen* ParallelScavengeHeap::_old_gen = NULL; PSAdaptiveSizePolicy* ParallelScavengeHeap::_size_policy = NULL; -@@ -531,7 +537,13 @@ +@@ -535,7 +541,13 @@ } VM_ParallelGCSystemGC op(gc_count, full_gc_count, cause); @@ -134,8 +138,8 @@ void ParallelScavengeHeap::oop_iterate(ExtendedOopClosure* cl) { diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2016-07-21 04:08:08.508602985 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2020-07-20 21:47:00.084709013 +0100 @@ -56,6 +56,7 @@ #include "services/management.hpp" #include "services/memoryService.hpp" @@ -143,8 +147,8 @@ +#include "utilities/dtrace.hpp" #include "utilities/events.hpp" #include "utilities/stack.inline.hpp" - -@@ -63,6 +64,12 @@ + #if INCLUDE_JFR +@@ -66,6 +67,12 @@ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC @@ -157,7 +161,7 @@ // All sizes are in HeapWords. const size_t ParallelCompactData::Log2RegionSize = 16; // 64K words const size_t ParallelCompactData::RegionSize = (size_t)1 << Log2RegionSize; -@@ -453,6 +460,9 @@ +@@ -456,6 +463,9 @@ void ParallelCompactData::clear() { @@ -167,7 +171,7 @@ memset(_region_data, 0, _region_vspace->committed_size()); memset(_block_data, 0, _block_vspace->committed_size()); } -@@ -1978,6 +1988,9 @@ +@@ -1981,6 +1991,9 @@ "should be in vm thread"); ParallelScavengeHeap* heap = gc_heap(); @@ -177,7 +181,7 @@ GCCause::Cause gc_cause = heap->gc_cause(); assert(!heap->is_gc_active(), "not reentrant"); -@@ -3269,6 +3282,9 @@ +@@ -3266,6 +3279,9 @@ // past the end of the partial object entering the region (if any). HeapWord* const dest_addr = sd.partial_obj_end(dp_region); HeapWord* const new_top = _space_info[space_id].new_top(); @@ -188,8 +192,8 @@ const size_t words = pointer_delta(new_top, dest_addr); diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2016-07-21 04:08:08.508602985 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2020-07-20 21:45:58.969022877 +0100 @@ -54,10 +54,20 @@ #include "runtime/vmThread.hpp" #include "runtime/vm_operations.hpp" @@ -248,8 +252,8 @@ } diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2016-07-21 04:08:08.508602985 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2020-07-20 21:45:58.970022888 +0100 @@ -54,6 +54,12 @@ #include "utilities/copy.hpp" #include "utilities/globalDefinitions.hpp" @@ -285,8 +289,8 @@ TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats()); TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats()); diff -Nru openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp ---- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp 2016-07-21 04:08:08.508602985 +0100 +--- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp 2020-07-20 21:45:58.970022888 +0100 @@ -45,10 +45,16 @@ #include "runtime/prefetch.inline.hpp" #include "runtime/thread.inline.hpp" @@ -326,8 +330,8 @@ gc_tracer.report_tenuring_threshold(tenuring_threshold()); diff -Nru openjdk.orig/hotspot/src/share/vm/memory/generation.cpp openjdk/hotspot/src/share/vm/memory/generation.cpp ---- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/memory/generation.cpp 2016-07-21 04:08:08.508602985 +0100 +--- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/memory/generation.cpp 2020-07-20 21:45:58.970022888 +0100 @@ -41,10 +41,16 @@ #include "oops/oop.inline.hpp" #include "runtime/java.hpp" @@ -345,7 +349,7 @@ Generation::Generation(ReservedSpace rs, size_t initial_size, int level) : _level(level), _ref_processor(NULL) { -@@ -636,7 +642,13 @@ +@@ -642,7 +648,13 @@ SerialOldTracer* gc_tracer = GenMarkSweep::gc_tracer(); gc_tracer->report_gc_start(gch->gc_cause(), gc_timer->gc_start()); @@ -360,8 +364,8 @@ gc_timer->register_gc_end(); diff -Nru openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp ---- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2016-05-12 21:03:31.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2016-07-21 04:08:38.520114048 +0100 +--- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2019-01-03 15:14:40.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2020-07-20 21:45:58.970022888 +0100 @@ -32,11 +32,17 @@ #include "memory/tenuredGeneration.hpp" #include "oops/oop.inline.hpp"