Mercurial > hg > icedtea8
changeset 2962:3c695acbaf51
Bump aarch32 to jdk8u262-b01-aarch32-20200429.
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: 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-8238590: Enable JFR by default during compilation in 8u
- JDK-8239476: JDK-8238589 broke windows build by moving OrderedPair
- JDK-8239479: minimal1 and zero builds are failing
- JDK-8239867: correct over use of INCLUDE_JFR macro
- JDK-8240375: Disable JFR by default for July 2020 release
- 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-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
Bump aarch32 to jdk8u262-b01-aarch32-20200429.
* Makefile.am:
(ICEDTEA_PATCHES): Apply backport of JDK-8251120/PR3793
to aarch32 as well.
* hotspot.map.in: Bump aarch32 to
jdk8u262-b01-aarch32-20200429.
* patches/hotspot/aarch32/8143245-pr3548.patch,
* patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch:
Replace with symlinks to Shenandoah versions now
both are again based on the same upstream 8u version.
* patches/hotspot/aarch32/8251120-pr3793.patch,
New patch (symlinked to Shenandoah version) so that
HotSpot builds with ENABLE_JFR unset.
* patches/hotspot/aarch32/pr1975.patch:
Replace with symlinks to Shenandoah versions now
both are again based on the same upstream 8u version.
author | Andrew John Hughes <gnu_andrew@member.fsf.org> |
---|---|
date | Mon, 17 Aug 2020 15:51:41 +0100 |
parents | 2c02d50412c9 |
children | cf679deb93d4 |
files | ChangeLog Makefile.am hotspot.map.in patches/hotspot/aarch32/8143245-pr3548.patch patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch patches/hotspot/aarch32/8251120-pr3793.patch patches/hotspot/aarch32/pr1975.patch |
diffstat | 7 files changed, 27 insertions(+), 1009 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sun Aug 09 23:37:37 2020 +0100 +++ b/ChangeLog Mon Aug 17 15:51:41 2020 +0100 @@ -1,3 +1,22 @@ +2020-08-16 Andrew John Hughes <gnu_andrew@member.fsf.org> + + Bump aarch32 to jdk8u262-b01-aarch32-20200429. + * Makefile.am: + (ICEDTEA_PATCHES): Apply backport of JDK-8251120/PR3793 + to aarch32 as well. + * hotspot.map.in: Bump aarch32 to + jdk8u262-b01-aarch32-20200429. + * patches/hotspot/aarch32/8143245-pr3548.patch, + * patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch: + Replace with symlinks to Shenandoah versions now + both are again based on the same upstream 8u version. + * patches/hotspot/aarch32/8251120-pr3793.patch, + New patch (symlinked to Shenandoah version) so that + HotSpot builds with ENABLE_JFR unset. + * patches/hotspot/aarch32/pr1975.patch: + Replace with symlinks to Shenandoah versions now + both are again based on the same upstream 8u version. + 2020-08-09 Andrew John Hughes <gnu_andrew@member.fsf.org> Bump shenandoah to aarch64-shenandoah-jdk8u262-b01.
--- a/Makefile.am Sun Aug 09 23:37:37 2020 +0100 +++ b/Makefile.am Mon Aug 17 15:51:41 2020 +0100 @@ -380,7 +380,8 @@ patches/hotspot/$(HSBUILD)/8059847-pr3696.patch \ patches/hotspot/$(HSBUILD)/8076475-pr3696.patch \ patches/hotspot/$(HSBUILD)/pr3728.patch \ - patches/hotspot/$(HSBUILD)/8222286-pr3727-s390.patch + patches/hotspot/$(HSBUILD)/8222286-pr3727-s390.patch \ + patches/hotspot/$(HSBUILD)/8251120-pr3793.patch # Shenandoah has the AArch64 port so should get the return value & debug build fixes # Shenandoah also needs some fixes to build on all architectures @@ -388,8 +389,7 @@ 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)/8251120-pr3793.patch + patches/hotspot/$(HSBUILD)/pr3519-return_value-02.patch endif endif
--- a/hotspot.map.in Sun Aug 09 23:37:37 2020 +0100 +++ b/hotspot.map.in Mon Aug 17 15:51:41 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@ 7d23269db69a ca473d1f3bc0ac5ca6713a4df31d42d911c50f9789f0dce5b1726bd5a13536b1 -aarch32 drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ ecc1eb1dc760 271c119ce3691af203f6d13709e65a3de1c43cc880fc1d3ffbc05e8ec595589b +aarch32 drop https://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 104a5c7f735e 642ece375346300cf11dce79dfb9ac3d5ac470bc68246ccf6fdcde7a495dc73b
--- a/patches/hotspot/aarch32/8143245-pr3548.patch Sun Aug 09 23:37:37 2020 +0100 +++ b/patches/hotspot/aarch32/8143245-pr3548.patch Mon Aug 17 15:51:41 2020 +0100 @@ -1,146 +1,1 @@ -# 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 +../shenandoah/8143245-pr3548.patch \ No newline at end of file
--- a/patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch Sun Aug 09 23:37:37 2020 +0100 +++ b/patches/hotspot/aarch32/8158260-pr2991-rh1341258.patch Mon Aug 17 15:51:41 2020 +0100 @@ -1,462 +1,1 @@ -# 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)); -+ } -+ } -+ } -+ -+} +../shenandoah/8158260-pr2991-rh1341258.patch \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/aarch32/8251120-pr3793.patch Mon Aug 17 15:51:41 2020 +0100 @@ -0,0 +1,1 @@ +../shenandoah/8251120-pr3793.patch \ No newline at end of file
--- a/patches/hotspot/aarch32/pr1975.patch Sun Aug 09 23:37:37 2020 +0100 +++ b/patches/hotspot/aarch32/pr1975.patch Mon Aug 17 15:51:41 2020 +0100 @@ -1,397 +1,1 @@ -# 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 <lberk@redhat.com> - -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() { +../shenandoah/pr1975.patch \ No newline at end of file