8055006: Store original value of Min/MaxHeapFreeRatio

Mon, 28 Jul 2014 22:43:08 +0200

author
jwilhelm
date
Mon, 28 Jul 2014 22:43:08 +0200
changeset 7059
f933a15469d4
parent 7058
2fd0fd493045
child 7060
28b4223e2ea7

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

make/bsd/makefiles/vm.make file | annotate | diff | comparison | revisions
make/linux/makefiles/vm.make file | annotate | diff | comparison | revisions
make/solaris/makefiles/vm.make file | annotate | diff | comparison | revisions
src/share/vm/runtime/arguments.cpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/arguments.hpp file | annotate | diff | comparison | revisions
     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(); }

mercurial