< prev index next >

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

Print this page
rev 51611 : 8214118: HeapRegions marked as archive even if CDS mapping fails
Reviewed-by: tschatzl, jiangli


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




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


< prev index next >