Mercurial > hg > heapstats
changeset 168:ce4c68bbea97
Bug 2979: [JDK 9] Add G1GC hook for JDK 9
author | Yasumasa Suenaga <yasuenag@gmail.com> |
---|---|
date | Thu, 02 Jun 2016 22:23:44 +0900 |
parents | 365f5563c84b |
children | 855a307943b1 |
files | agent/src/heapstats-engines/overrideFunc.S agent/src/heapstats-engines/overrider.cpp agent/src/heapstats-engines/overrider.hpp |
diffstat | 3 files changed, 100 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/agent/src/heapstats-engines/overrideFunc.S Thu Jun 02 22:23:35 2016 +0900 +++ b/agent/src/heapstats-engines/overrideFunc.S Thu Jun 02 22:23:44 2016 +0900 @@ -267,6 +267,38 @@ /* InstanceClassLoaderKlass::oop_oop_iterate_v(oopDesc*, ExtendedOopClosure*) */ OVERRIDE_DEFINE(cms_new_jdk9, 4, 2) +/* For JDK 9 G1 GC hook */ + +/* initial-mark */ +/* G1ParCopyClosure<(G1Barrier)0, (G1Mark)1, false>::do_oop(oopDesc**) */ +OVERRIDE_DEFINE(g1_jdk9, 0, 2) +/* G1ParCopyClosure<(G1Barrier)0, (G1Mark)1, false>::do_oop(unsigned int*) */ +OVERRIDE_DEFINE(g1_jdk9, 1, 2) + +/* concurrent-root-region-scan */ +/* InstanceKlass::oop_oop_iterate_nv(oopDesc*, G1RootRegionScanClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 2, 2) +/* ObjArrayKlass::oop_oop_iterate_nv(oopDesc*, G1RootRegionScanClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 3, 2) +/* TypeArrayKlass::oop_oop_iterate_nv(oopDesc*, G1RootRegionScanClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 4, 2) +/* InstanceRefKlass::oop_oop_iterate_nv(oopDesc*, G1RootRegionScanClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 5, 2) +/* InstanceClassLoaderKlass::oop_oop_iterate_nv(oopDesc*, G1RootRegionScanClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 6, 2) + +/* concurrent-mark / remark */ +/* InstanceKlass::oop_oop_iterate_nv(oopDesc*, G1CMOopClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 7, 2) +/* ObjArrayKlass::oop_oop_iterate_nv(oopDesc*, G1CMOopClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 8, 2) +/* TypeArrayKlass::oop_oop_iterate_nv(oopDesc*, G1CMOopClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 9, 2) +/* InstanceRefKlass::oop_oop_iterate_nv(oopDesc*, G1CMOopClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 10, 2) +/* InstanceClassLoaderKlass::oop_oop_iterate_nv(oopDesc*, G1CMOopClosure*) */ +OVERRIDE_DEFINE(g1_jdk9, 11, 2) + #ifdef AVOID__i686 /* Restore definition. */
--- a/agent/src/heapstats-engines/overrider.cpp Thu Jun 02 22:23:35 2016 +0900 +++ b/agent/src/heapstats-engines/overrider.cpp Thu Jun 02 22:23:44 2016 +0900 @@ -81,6 +81,7 @@ */ DEFINE_OVERRIDE_FUNC_9(g1); DEFINE_OVERRIDE_FUNC_11(g1_6964458); +DEFINE_OVERRIDE_FUNC_12(g1_jdk9); /*! * \brief Override function for cleanup and System.gc() event on G1GC. @@ -671,8 +672,59 @@ &callbackForIterate), HOOK_FUNC_END}; -/* TODO: We have to define valid hook for JDK 9 */ -#define jdk9_g1_hook CR8049421_g1_hook +/*! + * \brief Pointer of hook information on G1GC for after JDK 9. + */ +THookFunctionInfo jdk9_g1_hook[] = { + HOOK_FUNC( + g1_jdk9, 0, "_ZTV16G1ParCopyClosureIL9G1Barrier0EL6G1Mark1ELb0EE", + "_ZN16G1ParCopyClosureIL9G1Barrier0EL6G1Mark1ELb0EE6do_oopEPP7oopDesc", + &callbackForDoOop), + HOOK_FUNC( + g1_jdk9, 1, "_ZTV16G1ParCopyClosureIL9G1Barrier0EL6G1Mark1ELb0EE", + "_ZN16G1ParCopyClosureIL9G1Barrier0EL6G1Mark1ELb0EE6do_oopEPj", + &callbackForDoNarrowOop), + HOOK_FUNC( + g1_jdk9, 2, "_ZTV13InstanceKlass", + "_ZN13InstanceKlass18oop_oop_iterate_nvEP7oopDescP23G1RootRegionScanClosure", + &callbackForIterate), + HOOK_FUNC( + g1_jdk9, 3, "_ZTV13ObjArrayKlass", + "_ZN13ObjArrayKlass18oop_oop_iterate_nvEP7oopDescP23G1RootRegionScanClosure", + &callbackForIterate), + HOOK_FUNC( + g1_jdk9, 4, "_ZTV14TypeArrayKlass", + "_ZN14TypeArrayKlass18oop_oop_iterate_nvEP7oopDescP23G1RootRegionScanClosure", + &callbackForIterate), + HOOK_FUNC( + g1_jdk9, 5, "_ZTV16InstanceRefKlass", + "_ZN16InstanceRefKlass18oop_oop_iterate_nvEP7oopDescP23G1RootRegionScanClosure", + &callbackForIterate), + HOOK_FUNC( + g1_jdk9, 6, "_ZTV24InstanceClassLoaderKlass", + "_ZN24InstanceClassLoaderKlass18oop_oop_iterate_nvEP7oopDescP23G1RootRegionScanClosure", + &callbackForIterate), + HOOK_FUNC( + g1_jdk9, 7, "_ZTV13InstanceKlass", + "_ZN13InstanceKlass18oop_oop_iterate_nvEP7oopDescP14G1CMOopClosure", + &callbackForIterate), + HOOK_FUNC( + g1_jdk9, 8, "_ZTV13ObjArrayKlass", + "_ZN13ObjArrayKlass18oop_oop_iterate_nvEP7oopDescP14G1CMOopClosure", + &callbackForIterate), + HOOK_FUNC( + g1_jdk9, 9, "_ZTV14TypeArrayKlass", + "_ZN14TypeArrayKlass18oop_oop_iterate_nvEP7oopDescP14G1CMOopClosure", + &callbackForIterate), + HOOK_FUNC( + g1_jdk9, 10, "_ZTV16InstanceRefKlass", + "_ZN16InstanceRefKlass18oop_oop_iterate_nvEP7oopDescP14G1CMOopClosure", + &callbackForIterate), + HOOK_FUNC( + g1_jdk9, 11, "_ZTV24InstanceClassLoaderKlass", + "_ZN24InstanceClassLoaderKlass18oop_oop_iterate_nvEP7oopDescP14G1CMOopClosure", + &callbackForIterate), + HOOK_FUNC_END}; /*! * \brief Pointer of hook information on G1GC.
--- a/agent/src/heapstats-engines/overrider.hpp Thu Jun 02 22:23:35 2016 +0900 +++ b/agent/src/heapstats-engines/overrider.hpp Thu Jun 02 22:23:44 2016 +0900 @@ -158,6 +158,20 @@ DEFINE_OVERRIDE_FUNC_N(prefix, 9) \ DEFINE_OVERRIDE_FUNC_N(prefix, 10) +#define DEFINE_OVERRIDE_FUNC_12(prefix) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 0) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 1) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 2) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 3) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 4) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 5) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 6) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 7) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 8) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 9) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 10) \ + DEFINE_OVERRIDE_FUNC_N(prefix, 11) + /*! * \brief Macro to select override function with CR. */