Mercurial > hg > release > heapstats-2.1
changeset 164:765bf9000f5b
Bug 2970: [JDK 9] Add ParallelOldGC hook for JDK 9
author | Yasumasa Suenaga <yasuenag@gmail.com> |
---|---|
date | Thu, 02 Jun 2016 22:23:04 +0900 |
parents | 975c815a82d7 |
children | a51e5042a3d1 |
files | agent/src/heapstats-engines/overrideFunc.S agent/src/heapstats-engines/overrider.cpp |
diffstat | 2 files changed, 36 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/agent/src/heapstats-engines/overrideFunc.S Mon Apr 18 21:29:23 2016 +0900 +++ b/agent/src/heapstats-engines/overrideFunc.S Thu Jun 02 22:23:04 2016 +0900 @@ -241,6 +241,19 @@ /* InstanceClassLoaderKlass::oop_ms_adjust_pointers(oopDesc*) */ OVERRIDE_DEFINE(par_jdk9, 4, 2) +/* For JDK 9 ParallelOld GC hook */ + +/* InstanceKlass::oop_pc_follow_contents(oopDesc*, ParCompactionManager*) */ +OVERRIDE_DEFINE(parOld_jdk9, 0, 2) +/* ObjArrayKlass::oop_pc_follow_contents(oopDesc*, ParCompactionManager*) */ +OVERRIDE_DEFINE(parOld_jdk9, 1, 2) +/* TypeArrayKlass::oop_pc_follow_contents(oopDesc*, ParCompactionManager*) */ +OVERRIDE_DEFINE(parOld_jdk9, 2, 2) +/* InstanceRefKlass::oop_pc_follow_contents(oopDesc*, ParCompactionManager*) */ +OVERRIDE_DEFINE(parOld_jdk9, 3, 2) +/* InstanceClassLoaderKlass::oop_pc_follow_contents(oopDesc*, ParCompactionManager*) */ +OVERRIDE_DEFINE(parOld_jdk9, 4, 2) + #ifdef AVOID__i686 /* Restore definition. */
--- a/agent/src/heapstats-engines/overrider.cpp Mon Apr 18 21:29:23 2016 +0900 +++ b/agent/src/heapstats-engines/overrider.cpp Thu Jun 02 22:23:04 2016 +0900 @@ -61,8 +61,9 @@ * \brief Override function for heap object on parallelOldGC. */ DEFINE_OVERRIDE_FUNC_4(parOld); +DEFINE_OVERRIDE_FUNC_5(parOld_6964458); +DEFINE_OVERRIDE_FUNC_5(parOld_jdk9); -DEFINE_OVERRIDE_FUNC_5(parOld_6964458); /*! * \brief Override function for sweep at old gen on CMSGC. */ @@ -280,13 +281,32 @@ HOOK_FUNC_END}; /*! + * \brief Pointer of hook information on parallelOldGC for after jdk 9. + */ +THookFunctionInfo jdk9_parOld_hook[] = { + HOOK_FUNC(parOld_jdk9, 0, "_ZTV13InstanceKlass", + "_ZN13InstanceKlass22oop_pc_follow_contentsEP7oopDescP20ParCompactionManager", + &callbackForParOld), + HOOK_FUNC(parOld_jdk9, 1, "_ZTV13ObjArrayKlass", + "_ZN13ObjArrayKlass22oop_pc_follow_contentsEP7oopDescP20ParCompactionManager", + &callbackForParOld), + HOOK_FUNC(parOld_jdk9, 2, "_ZTV14TypeArrayKlass", + "_ZN14TypeArrayKlass22oop_pc_follow_contentsEP7oopDescP20ParCompactionManager", + &callbackForParOld), + HOOK_FUNC(parOld_jdk9, 3, "_ZTV16InstanceRefKlass", + "_ZN16InstanceRefKlass22oop_pc_follow_contentsEP7oopDescP20ParCompactionManager", + &callbackForParOld), + HOOK_FUNC(parOld_jdk9, 4, "_ZTV24InstanceClassLoaderKlass", + "_ZN24InstanceClassLoaderKlass22oop_pc_follow_contentsEP7oopDescP20ParCompactionManager", + &callbackForParOld), + HOOK_FUNC_END}; + +/*! * \brief Pointers of hook information on parallelOldGC for several CRs.<br> * These CRs have no impact on parallelOldGC, so refer to the last. */ #define CR8027746_parOld_hook CR8000213_parOld_hook #define CR8049421_parOld_hook CR8000213_parOld_hook -/* TODO: We have to define valid hook for JDK 9 */ -#define jdk9_parOld_hook CR8049421_parOld_hook /*! * \brief Pointer of hook information on parallelOldGC.