< prev index next >

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

Print this page
rev 52634 : 8214118: HeapRegions marked as archive even if CDS mapping fails
Reviewed-by:


 666   // the containing regions as 'archive'. For use at JVM init time, when the
 667   // caller may mmap archived heap data at the specified range(s).
 668   // Verify that the MemRegions specified in the argument array are within the
 669   // reserved heap.
 670   bool check_archive_addresses(MemRegion* range, size_t count);
 671 
 672   // Commit the appropriate G1 regions containing the specified MemRegions
 673   // and mark them as 'archive' regions. The regions in the array must be
 674   // non-overlapping and in order of ascending address.
 675   bool alloc_archive_regions(MemRegion* range, size_t count, bool open);
 676 
 677   // Insert any required filler objects in the G1 regions around the specified
 678   // ranges to make the regions parseable. This must be called after
 679   // alloc_archive_regions, and after class loading has occurred.
 680   void fill_archive_regions(MemRegion* range, size_t count);
 681 
 682   // For each of the specified MemRegions, uncommit the containing G1 regions
 683   // which had been allocated by alloc_archive_regions. This should be called
 684   // rather than fill_archive_regions at JVM init time if the archive file
 685   // mapping failed, with the same non-overlapping and sorted MemRegion array.
 686   void dealloc_archive_regions(MemRegion* range, size_t count);
 687 
 688   oop materialize_archived_object(oop obj);
 689 
 690 private:
 691 
 692   // Shrink the garbage-first heap by at most the given size (in bytes!).
 693   // (Rounds down to a HeapRegion boundary.)
 694   void shrink(size_t expand_bytes);
 695   void shrink_helper(size_t expand_bytes);
 696 
 697   #if TASKQUEUE_STATS
 698   static void print_taskqueue_stats_hdr(outputStream* const st);
 699   void print_taskqueue_stats() const;
 700   void reset_taskqueue_stats();
 701   #endif // TASKQUEUE_STATS
 702 
 703   // Schedule the VM operation that will do an evacuation pause to
 704   // satisfy an allocation request of word_size. *succeeded will
 705   // return whether the VM operation was successful (it did do an
 706   // evacuation pause) or not (another thread beat us to it or the GC




 666   // the containing regions as 'archive'. For use at JVM init time, when the
 667   // caller may mmap archived heap data at the specified range(s).
 668   // Verify that the MemRegions specified in the argument array are within the
 669   // reserved heap.
 670   bool check_archive_addresses(MemRegion* range, size_t count);
 671 
 672   // Commit the appropriate G1 regions containing the specified MemRegions
 673   // and mark them as 'archive' regions. The regions in the array must be
 674   // non-overlapping and in order of ascending address.
 675   bool alloc_archive_regions(MemRegion* range, size_t count, bool open);
 676 
 677   // Insert any required filler objects in the G1 regions around the specified
 678   // ranges to make the regions parseable. This must be called after
 679   // alloc_archive_regions, and after class loading has occurred.
 680   void fill_archive_regions(MemRegion* range, size_t count);
 681 
 682   // For each of the specified MemRegions, uncommit the containing G1 regions
 683   // which had been allocated by alloc_archive_regions. This should be called
 684   // rather than fill_archive_regions at JVM init time if the archive file
 685   // mapping failed, with the same non-overlapping and sorted MemRegion array.
 686   void dealloc_archive_regions(MemRegion* range, size_t count, bool is_open);
 687 
 688   oop materialize_archived_object(oop obj);
 689 
 690 private:
 691 
 692   // Shrink the garbage-first heap by at most the given size (in bytes!).
 693   // (Rounds down to a HeapRegion boundary.)
 694   void shrink(size_t expand_bytes);
 695   void shrink_helper(size_t expand_bytes);
 696 
 697   #if TASKQUEUE_STATS
 698   static void print_taskqueue_stats_hdr(outputStream* const st);
 699   void print_taskqueue_stats() const;
 700   void reset_taskqueue_stats();
 701   #endif // TASKQUEUE_STATS
 702 
 703   // Schedule the VM operation that will do an evacuation pause to
 704   // satisfy an allocation request of word_size. *succeeded will
 705   // return whether the VM operation was successful (it did do an
 706   // evacuation pause) or not (another thread beat us to it or the GC


< prev index next >