src/hotspot/share/gc/parallel/psOldGen.cpp
changeset 53117 37930c6ba6d7
parent 49982 9042ffe5b7fe
child 54678 93f09ca4a7f8
equal deleted inserted replaced
53116:bb03098c4dde 53117:37930c6ba6d7
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
    26 #include "gc/parallel/objectStartArray.inline.hpp"
    26 #include "gc/parallel/objectStartArray.inline.hpp"
    27 #include "gc/parallel/parallelScavengeHeap.hpp"
    27 #include "gc/parallel/parallelScavengeHeap.hpp"
    28 #include "gc/parallel/psAdaptiveSizePolicy.hpp"
    28 #include "gc/parallel/psAdaptiveSizePolicy.hpp"
    29 #include "gc/parallel/psCardTable.hpp"
    29 #include "gc/parallel/psCardTable.hpp"
       
    30 #include "gc/parallel/psFileBackedVirtualspace.hpp"
    30 #include "gc/parallel/psMarkSweepDecorator.hpp"
    31 #include "gc/parallel/psMarkSweepDecorator.hpp"
    31 #include "gc/parallel/psOldGen.hpp"
    32 #include "gc/parallel/psOldGen.hpp"
    32 #include "gc/shared/cardTableBarrierSet.hpp"
    33 #include "gc/shared/cardTableBarrierSet.hpp"
    33 #include "gc/shared/gcLocker.hpp"
    34 #include "gc/shared/gcLocker.hpp"
    34 #include "gc/shared/spaceDecorator.hpp"
    35 #include "gc/shared/spaceDecorator.hpp"
    69   initialize_performance_counters(perf_data_name, level);
    70   initialize_performance_counters(perf_data_name, level);
    70 }
    71 }
    71 
    72 
    72 void PSOldGen::initialize_virtual_space(ReservedSpace rs, size_t alignment) {
    73 void PSOldGen::initialize_virtual_space(ReservedSpace rs, size_t alignment) {
    73 
    74 
    74   _virtual_space = new PSVirtualSpace(rs, alignment);
    75   if(ParallelScavengeHeap::heap()->ps_collector_policy()->is_hetero_heap()) {
       
    76     _virtual_space = new PSFileBackedVirtualSpace(rs, alignment, AllocateOldGenAt);
       
    77     if (!(static_cast <PSFileBackedVirtualSpace*>(_virtual_space))->initialize()) {
       
    78       vm_exit_during_initialization("Could not map space for PSOldGen at given AllocateOldGenAt path");
       
    79     }
       
    80   } else {
       
    81     _virtual_space = new PSVirtualSpace(rs, alignment);
       
    82   }
    75   if (!_virtual_space->expand_by(_init_gen_size)) {
    83   if (!_virtual_space->expand_by(_init_gen_size)) {
    76     vm_exit_during_initialization("Could not reserve enough space for "
    84     vm_exit_during_initialization("Could not reserve enough space for "
    77                                   "object heap");
    85                                   "object heap");
    78   }
    86   }
    79 }
    87 }