7112912: Message "Error occurred during initialization of VM" on boxes with lots of RAM

Ergonomics now also takes available virtual memory into account when deciding for a heap size. The helper method to determine the maximum allocatable memory block now uses the appropriate OS specific calls to retrieve available virtual memory for the java process. In 32 bit environments this method now also searches for the maximum actually reservable amount of memory. Merge previously separate implementations for Linux/BSD/Solaris into a single method.

Reviewed-by: jmasa, tamao
This commit is contained in:
Thomas Schatzl 2013-03-27 19:21:18 +01:00
parent 89120e7827
commit bb5bd507d7
9 changed files with 92 additions and 57 deletions

View file

@ -312,6 +312,9 @@ class Arguments : AllStatic {
static void set_use_compressed_oops();
static void set_ergonomics_flags();
static void set_shared_spaces_flags();
// limits the given memory size by the maximum amount of memory this process is
// currently allowed to allocate or reserve.
static julong limit_by_allocatable_memory(julong size);
// Setup heap size
static void set_heap_size();
// Based on automatic selection criteria, should the