Mon, 28 Jul 2014 22:43:08 +0200
8055006: Store original value of Min/MaxHeapFreeRatio
Summary: Store the value set by the user and some makefile changes required to change the flags.
Reviewed-by: sla, mchung, bchristi, jmasa, dholmes
1.1 --- a/make/bsd/makefiles/vm.make Wed Jun 04 10:01:28 2014 +0200 1.2 +++ b/make/bsd/makefiles/vm.make Mon Jul 28 22:43:08 2014 +0200 1.3 @@ -243,10 +243,10 @@ 1.4 1.5 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) 1.6 1.7 -mapfile : $(MAPFILE) vm.def 1.8 +mapfile : $(MAPFILE) vm.def mapfile_ext 1.9 rm -f $@ 1.10 awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \ 1.11 - { system ("cat vm.def"); } \ 1.12 + { system ("cat mapfile_ext"); system ("cat vm.def"); } \ 1.13 else \ 1.14 { print $$0 } \ 1.15 }' > $@ < $(MAPFILE) 1.16 @@ -258,6 +258,13 @@ 1.17 vm.def: $(Res_Files) $(Obj_Files) 1.18 sh $(GAMMADIR)/make/bsd/makefiles/build_vm_def.sh *.o > $@ 1.19 1.20 +mapfile_ext: 1.21 + rm -f $@ 1.22 + touch $@ 1.23 + if [ -f $(HS_ALT_MAKE)/bsd/makefiles/mapfile-ext ]; then \ 1.24 + cat $(HS_ALT_MAKE)/bsd/makefiles/mapfile-ext > $@; \ 1.25 + fi 1.26 + 1.27 STATIC_CXX = false 1.28 1.29 ifeq ($(LINK_INTO),AOUT)
2.1 --- a/make/linux/makefiles/vm.make Wed Jun 04 10:01:28 2014 +0200 2.2 +++ b/make/linux/makefiles/vm.make Mon Jul 28 22:43:08 2014 +0200 2.3 @@ -233,10 +233,10 @@ 2.4 2.5 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) 2.6 2.7 -mapfile : $(MAPFILE) vm.def 2.8 +mapfile : $(MAPFILE) vm.def mapfile_ext 2.9 rm -f $@ 2.10 awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \ 2.11 - { system ("cat vm.def"); } \ 2.12 + { system ("cat mapfile_ext"); system ("cat vm.def"); } \ 2.13 else \ 2.14 { print $$0 } \ 2.15 }' > $@ < $(MAPFILE) 2.16 @@ -248,6 +248,13 @@ 2.17 vm.def: $(Res_Files) $(Obj_Files) 2.18 sh $(GAMMADIR)/make/linux/makefiles/build_vm_def.sh *.o > $@ 2.19 2.20 +mapfile_ext: 2.21 + rm -f $@ 2.22 + touch $@ 2.23 + if [ -f $(HS_ALT_MAKE)/linux/makefiles/mapfile-ext ]; then \ 2.24 + cat $(HS_ALT_MAKE)/linux/makefiles/mapfile-ext > $@; \ 2.25 + fi 2.26 + 2.27 ifeq ($(JVM_VARIANT_ZEROSHARK), true) 2.28 STATIC_CXX = false 2.29 else
3.1 --- a/make/solaris/makefiles/vm.make Wed Jun 04 10:01:28 2014 +0200 3.2 +++ b/make/solaris/makefiles/vm.make Mon Jul 28 22:43:08 2014 +0200 3.3 @@ -247,11 +247,12 @@ 3.4 3.5 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) 3.6 3.7 -mapfile : $(MAPFILE) $(MAPFILE_DTRACE_OPT) vm.def 3.8 +mapfile : $(MAPFILE) $(MAPFILE_DTRACE_OPT) vm.def mapfile_ext 3.9 rm -f $@ 3.10 cat $(MAPFILE) $(MAPFILE_DTRACE_OPT) \ 3.11 | $(NAWK) '{ \ 3.12 if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") { \ 3.13 + system ("cat mapfile_ext"); \ 3.14 system ("cat vm.def"); \ 3.15 } else { \ 3.16 print $$0; \ 3.17 @@ -265,6 +266,13 @@ 3.18 vm.def: $(Obj_Files) 3.19 sh $(GAMMADIR)/make/solaris/makefiles/build_vm_def.sh *.o > $@ 3.20 3.21 +mapfile_ext: 3.22 + rm -f $@ 3.23 + touch $@ 3.24 + if [ -f $(HS_ALT_MAKE)/solaris/makefiles/mapfile-ext ]; then \ 3.25 + cat $(HS_ALT_MAKE)/solaris/makefiles/mapfile-ext > $@; \ 3.26 + fi 3.27 + 3.28 ifeq ($(LINK_INTO),AOUT) 3.29 LIBJVM.o = 3.30 LIBJVM_MAPFILE =
4.1 --- a/src/share/vm/runtime/arguments.cpp Wed Jun 04 10:01:28 2014 +0200 4.2 +++ b/src/share/vm/runtime/arguments.cpp Mon Jul 28 22:43:08 2014 +0200 4.3 @@ -98,6 +98,8 @@ 4.4 bool Arguments::_has_profile = false; 4.5 size_t Arguments::_conservative_max_heap_alignment = 0; 4.6 uintx Arguments::_min_heap_size = 0; 4.7 +uintx Arguments::_min_heap_free_ratio = 0; 4.8 +uintx Arguments::_max_heap_free_ratio = 0; 4.9 Arguments::Mode Arguments::_mode = _mixed; 4.10 bool Arguments::_java_compiler = false; 4.11 bool Arguments::_xdebug_mode = false; 4.12 @@ -1596,9 +1598,11 @@ 4.13 // unless the user actually sets these flags. 4.14 if (FLAG_IS_DEFAULT(MinHeapFreeRatio)) { 4.15 FLAG_SET_DEFAULT(MinHeapFreeRatio, 0); 4.16 + _min_heap_free_ratio = MinHeapFreeRatio; 4.17 } 4.18 if (FLAG_IS_DEFAULT(MaxHeapFreeRatio)) { 4.19 FLAG_SET_DEFAULT(MaxHeapFreeRatio, 100); 4.20 + _max_heap_free_ratio = MaxHeapFreeRatio; 4.21 } 4.22 } 4.23 4.24 @@ -1973,6 +1977,8 @@ 4.25 MaxHeapFreeRatio); 4.26 return false; 4.27 } 4.28 + // This does not set the flag itself, but stores the value in a safe place for later usage. 4.29 + _min_heap_free_ratio = min_heap_free_ratio; 4.30 return true; 4.31 } 4.32 4.33 @@ -1987,6 +1993,8 @@ 4.34 MinHeapFreeRatio); 4.35 return false; 4.36 } 4.37 + // This does not set the flag itself, but stores the value in a safe place for later usage. 4.38 + _max_heap_free_ratio = max_heap_free_ratio; 4.39 return true; 4.40 } 4.41
5.1 --- a/src/share/vm/runtime/arguments.hpp Wed Jun 04 10:01:28 2014 +0200 5.2 +++ b/src/share/vm/runtime/arguments.hpp Mon Jul 28 22:43:08 2014 +0200 5.3 @@ -284,7 +284,11 @@ 5.4 // Value of the conservative maximum heap alignment needed 5.5 static size_t _conservative_max_heap_alignment; 5.6 5.7 - static uintx _min_heap_size; 5.8 + static uintx _min_heap_size; 5.9 + 5.10 + // Used to store original flag values 5.11 + static uintx _min_heap_free_ratio; 5.12 + static uintx _max_heap_free_ratio; 5.13 5.14 // -Xrun arguments 5.15 static AgentLibraryList _libraryList; 5.16 @@ -514,6 +518,10 @@ 5.17 static uintx min_heap_size() { return _min_heap_size; } 5.18 static void set_min_heap_size(uintx v) { _min_heap_size = v; } 5.19 5.20 + // Returns the original values of -XX:MinHeapFreeRatio and -XX:MaxHeapFreeRatio 5.21 + static uintx min_heap_free_ratio() { return _min_heap_free_ratio; } 5.22 + static uintx max_heap_free_ratio() { return _max_heap_free_ratio; } 5.23 + 5.24 // -Xrun 5.25 static AgentLibrary* libraries() { return _libraryList.first(); } 5.26 static bool init_libraries_at_startup() { return !_libraryList.is_empty(); }