changeset 167:365f5563c84b

Bug 2978: [JDK 9] Add CMSGC hook for JDK 9
author Yasumasa Suenaga <yasuenag@gmail.com>
date Thu, 02 Jun 2016 22:23:35 +0900
parents 6872a12a8688
children ce4c68bbea97
files agent/src/heapstats-engines/overrideFunc.S agent/src/heapstats-engines/overrider.cpp
diffstat 2 files changed, 36 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/agent/src/heapstats-engines/overrideFunc.S	Thu Jun 02 22:23:26 2016 +0900
+++ b/agent/src/heapstats-engines/overrideFunc.S	Thu Jun 02 22:23:35 2016 +0900
@@ -254,6 +254,19 @@
 /* InstanceClassLoaderKlass::oop_pc_follow_contents(oopDesc*, ParCompactionManager*) */
 OVERRIDE_DEFINE(parOld_jdk9, 4, 2)
 
+/* For JDK 9 ParNew GC hook */
+
+/* InstanceKlass::oop_oop_iterate_v(oopDesc*, ExtendedOopClosure*) */
+OVERRIDE_DEFINE(cms_new_jdk9, 0, 2)
+/* ObjArrayKlass::oop_oop_iterate_v(oopDesc*, ExtendedOopClosure*) */
+OVERRIDE_DEFINE(cms_new_jdk9, 1, 2)
+/* TypeArrayKlass::oop_oop_iterate_v(oopDesc*, ExtendedOopClosure*) */
+OVERRIDE_DEFINE(cms_new_jdk9, 2, 2)
+/* InstanceRefKlass::oop_oop_iterate_v(oopDesc*, ExtendedOopClosure*) */
+OVERRIDE_DEFINE(cms_new_jdk9, 3, 2)
+/* InstanceClassLoaderKlass::oop_oop_iterate_v(oopDesc*, ExtendedOopClosure*) */
+OVERRIDE_DEFINE(cms_new_jdk9, 4, 2)
+
 
 #ifdef AVOID__i686
 /* Restore definition. */
--- a/agent/src/heapstats-engines/overrider.cpp	Thu Jun 02 22:23:26 2016 +0900
+++ b/agent/src/heapstats-engines/overrider.cpp	Thu Jun 02 22:23:35 2016 +0900
@@ -74,6 +74,7 @@
  */
 DEFINE_OVERRIDE_FUNC_4(cms_new);
 DEFINE_OVERRIDE_FUNC_5(cms_new_6964458);
+DEFINE_OVERRIDE_FUNC_5(cms_new_jdk9);
 
 /*!
  * \brief Override function for heap object on G1GC.
@@ -401,13 +402,33 @@
     HOOK_FUNC_END};
 
 /*!
+ * \brief Pointer of hook information on CMSGC for JDK 9.
+ */
+THookFunctionInfo jdk9_cms_new_hook[] = {
+    HOOK_FUNC(cms_new_jdk9, 0, "_ZTV13InstanceKlass",
+              "_ZN13InstanceKlass17oop_oop_iterate_vEP7oopDescP18ExtendedOopClosure",
+              &callbackForIterate),
+    HOOK_FUNC(cms_new_jdk9, 1, "_ZTV13ObjArrayKlass",
+              "_ZN13ObjArrayKlass17oop_oop_iterate_vEP7oopDescP18ExtendedOopClosure",
+              &callbackForIterate),
+    HOOK_FUNC(
+        cms_new_jdk9, 2, "_ZTV14TypeArrayKlass",
+        "_ZN14TypeArrayKlass17oop_oop_iterate_vEP7oopDescP18ExtendedOopClosure",
+        &callbackForIterate),
+    HOOK_FUNC(cms_new_jdk9, 3, "_ZTV16InstanceRefKlass",
+              "_ZN16InstanceRefKlass17oop_oop_iterate_vEP7oopDescP18ExtendedOopClosure",
+              &callbackForIterate),
+    HOOK_FUNC(cms_new_jdk9, 4, "_ZTV24InstanceClassLoaderKlass",
+              "_ZN24InstanceClassLoaderKlass17oop_oop_iterate_vEP7oopDescP18ExtendedOopClosure",
+              &callbackForIterate),
+    HOOK_FUNC_END};
+
+/*!
 * \brief Pointers of hook information on CMSGC for several CRs.<br>
 *        These CRs have no impact on CMSGC, so refer to the last.
 */
 #define CR8027746_cms_new_hook CR8000213_cms_new_hook
 #define CR8049421_cms_new_hook CR8000213_cms_new_hook
-/* TODO: We have to define valid hook for JDK 9 */
-#define jdk9_cms_new_hook CR8049421_cms_new_hook
 
 /*!
  * \brief Pointer of hook information on CMSGC.