1705 page_size,
1706 HeapRegion::GrainBytes,
1707 1,
1708 mtJavaHeap);
1709 os::trace_page_sizes("Heap",
1710 collector_policy()->min_heap_byte_size(),
1711 max_byte_size,
1712 page_size,
1713 heap_rs.base(),
1714 heap_rs.size());
1715 heap_storage->set_mapping_changed_listener(&_listener);
1716
1717 // Create storage for the BOT, card table, card counts table (hot card cache) and the bitmaps.
1718 G1RegionToSpaceMapper* bot_storage =
1719 create_aux_memory_mapper("Block Offset Table",
1720 G1BlockOffsetTable::compute_size(g1_rs.size() / HeapWordSize),
1721 G1BlockOffsetTable::heap_map_factor());
1722
1723 G1RegionToSpaceMapper* cardtable_storage =
1724 create_aux_memory_mapper("Card Table",
1725 G1SATBCardTableLoggingModRefBS::compute_size(g1_rs.size() / HeapWordSize),
1726 G1SATBCardTableLoggingModRefBS::heap_map_factor());
1727
1728 G1RegionToSpaceMapper* card_counts_storage =
1729 create_aux_memory_mapper("Card Counts Table",
1730 G1CardCounts::compute_size(g1_rs.size() / HeapWordSize),
1731 G1CardCounts::heap_map_factor());
1732
1733 size_t bitmap_size = G1CMBitMap::compute_size(g1_rs.size());
1734 G1RegionToSpaceMapper* prev_bitmap_storage =
1735 create_aux_memory_mapper("Prev Bitmap", bitmap_size, G1CMBitMap::heap_map_factor());
1736 G1RegionToSpaceMapper* next_bitmap_storage =
1737 create_aux_memory_mapper("Next Bitmap", bitmap_size, G1CMBitMap::heap_map_factor());
1738
1739 _hrm.initialize(heap_storage, prev_bitmap_storage, next_bitmap_storage, bot_storage, cardtable_storage, card_counts_storage);
1740 g1_card_table()->initialize(cardtable_storage);
1741 // Do later initialization work for concurrent refinement.
1742 _hot_card_cache->initialize(card_counts_storage);
1743
1744 // 6843694 - ensure that the maximum region index can fit
1745 // in the remembered set structures.
1746 const uint max_region_idx = (1U << (sizeof(RegionIdx_t)*BitsPerByte-1)) - 1;
|
1705 page_size,
1706 HeapRegion::GrainBytes,
1707 1,
1708 mtJavaHeap);
1709 os::trace_page_sizes("Heap",
1710 collector_policy()->min_heap_byte_size(),
1711 max_byte_size,
1712 page_size,
1713 heap_rs.base(),
1714 heap_rs.size());
1715 heap_storage->set_mapping_changed_listener(&_listener);
1716
1717 // Create storage for the BOT, card table, card counts table (hot card cache) and the bitmaps.
1718 G1RegionToSpaceMapper* bot_storage =
1719 create_aux_memory_mapper("Block Offset Table",
1720 G1BlockOffsetTable::compute_size(g1_rs.size() / HeapWordSize),
1721 G1BlockOffsetTable::heap_map_factor());
1722
1723 G1RegionToSpaceMapper* cardtable_storage =
1724 create_aux_memory_mapper("Card Table",
1725 G1CardTable::compute_size(g1_rs.size() / HeapWordSize),
1726 G1CardTable::heap_map_factor());
1727
1728 G1RegionToSpaceMapper* card_counts_storage =
1729 create_aux_memory_mapper("Card Counts Table",
1730 G1CardCounts::compute_size(g1_rs.size() / HeapWordSize),
1731 G1CardCounts::heap_map_factor());
1732
1733 size_t bitmap_size = G1CMBitMap::compute_size(g1_rs.size());
1734 G1RegionToSpaceMapper* prev_bitmap_storage =
1735 create_aux_memory_mapper("Prev Bitmap", bitmap_size, G1CMBitMap::heap_map_factor());
1736 G1RegionToSpaceMapper* next_bitmap_storage =
1737 create_aux_memory_mapper("Next Bitmap", bitmap_size, G1CMBitMap::heap_map_factor());
1738
1739 _hrm.initialize(heap_storage, prev_bitmap_storage, next_bitmap_storage, bot_storage, cardtable_storage, card_counts_storage);
1740 g1_card_table()->initialize(cardtable_storage);
1741 // Do later initialization work for concurrent refinement.
1742 _hot_card_cache->initialize(card_counts_storage);
1743
1744 // 6843694 - ensure that the maximum region index can fit
1745 // in the remembered set structures.
1746 const uint max_region_idx = (1U << (sizeof(RegionIdx_t)*BitsPerByte-1)) - 1;
|