< prev index next >

src/hotspot/share/gc/g1/g1CollectedHeap.cpp

Print this page
rev 60593 : 8252035: G1: Clean up G1CollectedHeap::*reserved* methods
Reviewed-by:

*** 1679,1706 **** // The G1FromCardCache reserves card with value 0 as "invalid", so the heap must not // start within the first card. guarantee(g1_rs.base() >= (char*)G1CardTable::card_size, "Java heap must not start within the first card."); // Also create a G1 rem set. _rem_set = new G1RemSet(this, _card_table, _hot_card_cache); ! _rem_set->initialize(max_reserved_capacity(), max_regions()); size_t max_cards_per_region = ((size_t)1 << (sizeof(CardIdx_t)*BitsPerByte-1)) - 1; guarantee(HeapRegion::CardsPerRegion > 0, "make sure it's initialized"); guarantee(HeapRegion::CardsPerRegion < max_cards_per_region, "too many cards per region"); FreeRegionList::set_unrealistically_long_length(max_expandable_regions() + 1); ! _bot = new G1BlockOffsetTable(reserved_region(), bot_storage); { - HeapWord* start = _hrm->reserved().start(); - HeapWord* end = _hrm->reserved().end(); size_t granularity = HeapRegion::GrainBytes; ! _region_attr.initialize(start, end, granularity); ! _humongous_reclaim_candidates.initialize(start, end, granularity); } _workers = new WorkGang("GC Thread", ParallelGCThreads, true /* are_GC_task_threads */, false /* are_ConcurrentGC_threads */); --- 1679,1704 ---- // The G1FromCardCache reserves card with value 0 as "invalid", so the heap must not // start within the first card. guarantee(g1_rs.base() >= (char*)G1CardTable::card_size, "Java heap must not start within the first card."); // Also create a G1 rem set. _rem_set = new G1RemSet(this, _card_table, _hot_card_cache); ! _rem_set->initialize(max_regions()); size_t max_cards_per_region = ((size_t)1 << (sizeof(CardIdx_t)*BitsPerByte-1)) - 1; guarantee(HeapRegion::CardsPerRegion > 0, "make sure it's initialized"); guarantee(HeapRegion::CardsPerRegion < max_cards_per_region, "too many cards per region"); FreeRegionList::set_unrealistically_long_length(max_expandable_regions() + 1); ! _bot = new G1BlockOffsetTable(reserved(), bot_storage); { size_t granularity = HeapRegion::GrainBytes; ! _region_attr.initialize(reserved(), granularity); ! _humongous_reclaim_candidates.initialize(reserved(), granularity); } _workers = new WorkGang("GC Thread", ParallelGCThreads, true /* are_GC_task_threads */, false /* are_ConcurrentGC_threads */);
*** 2269,2279 **** } } #ifdef ASSERT bool G1CollectedHeap::is_in_exact(const void* p) const { ! bool contains = reserved_region().contains(p); bool available = _hrm->is_available(addr_to_region((HeapWord*)p)); if (contains && available) { return true; } else { return false; --- 2267,2277 ---- } } #ifdef ASSERT bool G1CollectedHeap::is_in_exact(const void* p) const { ! bool contains = reserved().contains(p); bool available = _hrm->is_available(addr_to_region((HeapWord*)p)); if (contains && available) { return true; } else { return false;
*** 2391,2404 **** size_t G1CollectedHeap::max_capacity() const { return _hrm->max_expandable_length() * HeapRegion::GrainBytes; } - size_t G1CollectedHeap::max_reserved_capacity() const { - return _hrm->max_length() * HeapRegion::GrainBytes; - } - void G1CollectedHeap::deduplicate_string(oop str) { assert(java_lang_String::is_instance(str), "invariant"); if (G1StringDedup::is_enabled()) { G1StringDedup::deduplicate(str); --- 2389,2398 ----
< prev index next >