< prev index next >

src/share/vm/gc/g1/g1RegionToSpaceMapper.cpp

Print this page
rev 13101 : imported patch 8176571-fine-bitmaps-allocated-as-mtgc


  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "gc/g1/g1BiasedArray.hpp"
  27 #include "gc/g1/g1RegionToSpaceMapper.hpp"
  28 #include "memory/allocation.inline.hpp"
  29 #include "memory/virtualspace.hpp"
  30 #include "services/memTracker.hpp"
  31 #include "utilities/bitMap.inline.hpp"
  32 
  33 G1RegionToSpaceMapper::G1RegionToSpaceMapper(ReservedSpace rs,
  34                                              size_t used_size,
  35                                              size_t page_size,
  36                                              size_t region_granularity,
  37                                              size_t commit_factor,
  38                                              MemoryType type) :
  39   _storage(rs, used_size, page_size),
  40   _region_granularity(region_granularity),
  41   _listener(NULL),
  42   _commit_map(rs.size() * commit_factor / region_granularity) {
  43   guarantee(is_power_of_2(page_size), "must be");
  44   guarantee(is_power_of_2(region_granularity), "must be");
  45 
  46   MemTracker::record_virtual_memory_type((address)rs.base(), type);
  47 }
  48 
  49 // G1RegionToSpaceMapper implementation where the region granularity is larger than
  50 // or the same as the commit granularity.
  51 // Basically, the space corresponding to one region region spans several OS pages.
  52 class G1RegionsLargerThanCommitSizeMapper : public G1RegionToSpaceMapper {
  53  private:
  54   size_t _pages_per_region;
  55 
  56  public:
  57   G1RegionsLargerThanCommitSizeMapper(ReservedSpace rs,
  58                                       size_t actual_size,
  59                                       size_t page_size,
  60                                       size_t alloc_granularity,
  61                                       size_t commit_factor,
  62                                       MemoryType type) :




  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "gc/g1/g1BiasedArray.hpp"
  27 #include "gc/g1/g1RegionToSpaceMapper.hpp"
  28 #include "memory/allocation.inline.hpp"
  29 #include "memory/virtualspace.hpp"
  30 #include "services/memTracker.hpp"
  31 #include "utilities/bitMap.inline.hpp"
  32 
  33 G1RegionToSpaceMapper::G1RegionToSpaceMapper(ReservedSpace rs,
  34                                              size_t used_size,
  35                                              size_t page_size,
  36                                              size_t region_granularity,
  37                                              size_t commit_factor,
  38                                              MemoryType type) :
  39   _storage(rs, used_size, page_size),
  40   _region_granularity(region_granularity),
  41   _listener(NULL),
  42   _commit_map(rs.size() * commit_factor / region_granularity, mtGC) {
  43   guarantee(is_power_of_2(page_size), "must be");
  44   guarantee(is_power_of_2(region_granularity), "must be");
  45 
  46   MemTracker::record_virtual_memory_type((address)rs.base(), type);
  47 }
  48 
  49 // G1RegionToSpaceMapper implementation where the region granularity is larger than
  50 // or the same as the commit granularity.
  51 // Basically, the space corresponding to one region region spans several OS pages.
  52 class G1RegionsLargerThanCommitSizeMapper : public G1RegionToSpaceMapper {
  53  private:
  54   size_t _pages_per_region;
  55 
  56  public:
  57   G1RegionsLargerThanCommitSizeMapper(ReservedSpace rs,
  58                                       size_t actual_size,
  59                                       size_t page_size,
  60                                       size_t alloc_granularity,
  61                                       size_t commit_factor,
  62                                       MemoryType type) :


< prev index next >