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