< prev index next >

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

Print this page




 769   void end_archive_alloc_range(GrowableArray<MemRegion>* ranges,
 770                                size_t end_alignment_in_bytes = 0);
 771 
 772   // Facility for allocating a fixed range within the heap and marking
 773   // the containing regions as 'archive'. For use at JVM init time, when the
 774   // caller may mmap archived heap data at the specified range(s).
 775   // Verify that the MemRegions specified in the argument array are within the
 776   // reserved heap.
 777   bool check_archive_addresses(MemRegion* range, size_t count);
 778 
 779   // Commit the appropriate G1 regions containing the specified MemRegions
 780   // and mark them as 'archive' regions. The regions in the array must be
 781   // non-overlapping and in order of ascending address.
 782   bool alloc_archive_regions(MemRegion* range, size_t count);
 783 
 784   // Insert any required filler objects in the G1 regions around the specified
 785   // ranges to make the regions parseable. This must be called after
 786   // alloc_archive_regions, and after class loading has occurred.
 787   void fill_archive_regions(MemRegion* range, size_t count);
 788 






 789 protected:
 790 
 791   // Shrink the garbage-first heap by at most the given size (in bytes!).
 792   // (Rounds down to a HeapRegion boundary.)
 793   virtual void shrink(size_t expand_bytes);
 794   void shrink_helper(size_t expand_bytes);
 795 
 796   #if TASKQUEUE_STATS
 797   static void print_taskqueue_stats_hdr(outputStream* const st = gclog_or_tty);
 798   void print_taskqueue_stats(outputStream* const st = gclog_or_tty) const;
 799   void reset_taskqueue_stats();
 800   #endif // TASKQUEUE_STATS
 801 
 802   // Schedule the VM operation that will do an evacuation pause to
 803   // satisfy an allocation request of word_size. *succeeded will
 804   // return whether the VM operation was successful (it did do an
 805   // evacuation pause) or not (another thread beat us to it or the GC
 806   // locker was active). Given that we should not be holding the
 807   // Heap_lock when we enter this method, we will pass the
 808   // gc_count_before (i.e., total_collections()) as a parameter since




 769   void end_archive_alloc_range(GrowableArray<MemRegion>* ranges,
 770                                size_t end_alignment_in_bytes = 0);
 771 
 772   // Facility for allocating a fixed range within the heap and marking
 773   // the containing regions as 'archive'. For use at JVM init time, when the
 774   // caller may mmap archived heap data at the specified range(s).
 775   // Verify that the MemRegions specified in the argument array are within the
 776   // reserved heap.
 777   bool check_archive_addresses(MemRegion* range, size_t count);
 778 
 779   // Commit the appropriate G1 regions containing the specified MemRegions
 780   // and mark them as 'archive' regions. The regions in the array must be
 781   // non-overlapping and in order of ascending address.
 782   bool alloc_archive_regions(MemRegion* range, size_t count);
 783 
 784   // Insert any required filler objects in the G1 regions around the specified
 785   // ranges to make the regions parseable. This must be called after
 786   // alloc_archive_regions, and after class loading has occurred.
 787   void fill_archive_regions(MemRegion* range, size_t count);
 788 
 789   // For each of the specified MemRegions, free the containing G1 regions 
 790   // which had been allocated by alloc_archive_regions. This should be called
 791   // rather than fill_archive_regions at JVM init time if the archive file 
 792   // mapping failed.
 793   void free_archive_regions(MemRegion* range, size_t count);
 794 
 795 protected:
 796 
 797   // Shrink the garbage-first heap by at most the given size (in bytes!).
 798   // (Rounds down to a HeapRegion boundary.)
 799   virtual void shrink(size_t expand_bytes);
 800   void shrink_helper(size_t expand_bytes);
 801 
 802   #if TASKQUEUE_STATS
 803   static void print_taskqueue_stats_hdr(outputStream* const st = gclog_or_tty);
 804   void print_taskqueue_stats(outputStream* const st = gclog_or_tty) const;
 805   void reset_taskqueue_stats();
 806   #endif // TASKQUEUE_STATS
 807 
 808   // Schedule the VM operation that will do an evacuation pause to
 809   // satisfy an allocation request of word_size. *succeeded will
 810   // return whether the VM operation was successful (it did do an
 811   // evacuation pause) or not (another thread beat us to it or the GC
 812   // locker was active). Given that we should not be holding the
 813   // Heap_lock when we enter this method, we will pass the
 814   // gc_count_before (i.e., total_collections()) as a parameter since


< prev index next >