src/share/vm/memory/genCollectedHeap.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/memory/genCollectedHeap.cpp Fri Oct 17 15:34:52 2014
--- new/src/share/vm/memory/genCollectedHeap.cpp Fri Oct 17 15:34:52 2014
*** 93,112 ****
--- 93,102 ----
// system which believe this to be true (e.g. oop->object_size in some
// cases incorrectly returns the size in wordSize units rather than
// HeapWordSize).
guarantee(HeapWordSize == wordSize, "HeapWordSize must equal wordSize");
// The heap must be at least as aligned as generations.
size_t gen_alignment = Generation::GenGrain;
_gen_specs = gen_policy()->generations();
// Make sure the sizes are all aligned.
for (i = 0; i < _n_gens; i++) {
_gen_specs[i]->align(gen_alignment);
}
// Allocate space for the heap.
char* heap_address;
size_t total_reserved = 0;
int n_covered_regions = 0;
*** 128,144 ****
--- 118,135 ----
_rem_set = collector_policy()->create_rem_set(reserved_region(), n_covered_regions);
set_barrier_set(rem_set()->bs());
_gch = this;
! ReservedSpace young_rs = heap_rs.first_part(_gen_specs[0]->max_size(), false, false);
! _young_gen = _gen_specs[0]->init(young_rs, 0, rem_set());
! heap_rs = heap_rs.last_part(_gen_specs[0]->max_size());
! ReservedSpace old_rs = heap_rs.first_part(_gen_specs[1]->max_size(), false, false);
! _old_gen = _gen_specs[1]->init(old_rs, 1, rem_set());
! heap_rs = heap_rs.last_part(_gen_specs[1]->max_size());
! ReservedSpace young_rs = heap_rs.first_part(gen_policy()->young_gen_spec()->max_size(), false, false);
! _young_gen = gen_policy()->young_gen_spec()->init(young_rs, 0, rem_set());
! heap_rs = heap_rs.last_part(gen_policy()->young_gen_spec()->max_size());
+
! ReservedSpace old_rs = heap_rs.first_part(gen_policy()->old_gen_spec()->max_size(), false, false);
! _old_gen = gen_policy()->old_gen_spec()->init(old_rs, 1, rem_set());
! heap_rs = heap_rs.last_part(gen_policy()->old_gen_spec()->max_size());
+
clear_incremental_collection_failed();
#if INCLUDE_ALL_GCS
// If we are running CMS, create the collector responsible
// for collecting the CMS generations.
*** 157,184 ****
--- 148,173 ----
ReservedSpace* heap_rs){
const char overflow_msg[] = "The size of the object heap + VM data exceeds "
"the maximum representable size";
// Now figure out the total size.
! size_t total_reserved = 0;
int n_covered_regions = 0;
const size_t pageSize = UseLargePages ?
os::large_page_size() : os::vm_page_size();
! const size_t pageSize = UseLargePages ? os::large_page_size() : os::vm_page_size();
assert(alignment % pageSize == 0, "Must be");
for (int i = 0; i < _n_gens; i++) {
! total_reserved += _gen_specs[i]->max_size();
if (total_reserved < _gen_specs[i]->max_size()) {
+ size_t total_reserved = gen_policy()->young_gen_spec()->max_size() +
! gen_policy()->old_gen_spec()->max_size();
+ if (total_reserved < gen_policy()->young_gen_spec()->max_size() ||
+ total_reserved < gen_policy()->old_gen_spec()->max_size()) {
vm_exit_during_initialization(overflow_msg);
}
n_covered_regions += _gen_specs[i]->n_covered_regions();
}
assert(total_reserved % alignment == 0,
err_msg("Gen size; total_reserved=" SIZE_FORMAT ", alignment="
SIZE_FORMAT, total_reserved, alignment));
+ int n_covered_regions = gen_policy()->young_gen_spec()->n_covered_regions() +
+ gen_policy()->old_gen_spec()->n_covered_regions();
+
// Needed until the cardtable is fixed to have the right number
// of covered regions.
n_covered_regions += 2;
*_total_reserved = total_reserved;
src/share/vm/memory/genCollectedHeap.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File