< prev index next >

src/hotspot/share/gc/shared/genCollectedHeap.hpp

Print this page
rev 48000 : [mq]: open.patch
rev 48001 : [mq]: 8191564-new.patch


  62 
  63 private:
  64   Generation* _young_gen;
  65   Generation* _old_gen;
  66 
  67   // The singleton CardTable Remembered Set.
  68   CardTableRS* _rem_set;
  69 
  70   // The generational collector policy.
  71   GenCollectorPolicy* _gen_policy;
  72 
  73   // Indicates that the most recent previous incremental collection failed.
  74   // The flag is cleared when an action is taken that might clear the
  75   // condition that caused that incremental collection to fail.
  76   bool _incremental_collection_failed;
  77 
  78   // In support of ExplicitGCInvokesConcurrent functionality
  79   unsigned int _full_collections_completed;
  80 
  81   // Collects the given generation.
  82   void collect_generation(Generation* gen, GCMemoryManager* mem_mgr, bool full, size_t size, bool is_tlab,
  83                           bool run_verification, bool clear_soft_refs,
  84                           bool restore_marks_for_biased_locking);
  85 
  86   // Reserve aligned space for the heap as needed by the contained generations.
  87   char* allocate(size_t alignment, ReservedSpace* heap_rs);
  88 
  89   // Initialize ("weak") refs processing support
  90   void ref_processing_init();
  91 
  92 protected:
  93 
  94   // The set of potentially parallel tasks in root scanning.
  95   enum GCH_strong_roots_tasks {
  96     GCH_PS_Universe_oops_do,
  97     GCH_PS_JNIHandles_oops_do,
  98     GCH_PS_ObjectSynchronizer_oops_do,
  99     GCH_PS_FlatProfiler_oops_do,
 100     GCH_PS_Management_oops_do,
 101     GCH_PS_SystemDictionary_oops_do,
 102     GCH_PS_ClassLoaderDataGraph_oops_do,
 103     GCH_PS_jvmti_oops_do,
 104     GCH_PS_CodeCache_oops_do,
 105     GCH_PS_aot_oops_do,
 106     GCH_PS_younger_gens,
 107     // Leave this one last.
 108     GCH_PS_NumElements
 109   };
 110 
 111   // Data structure for claiming the (potentially) parallel tasks in
 112   // (gen-specific) roots processing.
 113   SubTasksDone* _process_strong_tasks;
 114 
 115   GCMemoryManager* _young_mgr;
 116   GCMemoryManager* _old_mgr;
 117 
 118   // Helper functions for allocation
 119   HeapWord* attempt_allocation(size_t size,
 120                                bool   is_tlab,
 121                                bool   first_only);
 122 
 123   // Helper function for two callbacks below.
 124   // Considers collection of the first max_level+1 generations.
 125   void do_collection(bool           full,
 126                      bool           clear_all_soft_refs,
 127                      size_t         size,
 128                      bool           is_tlab,
 129                      GenerationType max_generation);
 130 
 131   // Callback from VM_GenCollectForAllocation operation.
 132   // This function does everything necessary/possible to satisfy an
 133   // allocation request that failed in the youngest generation that should
 134   // have handled it (including collection, expansion, etc.)
 135   HeapWord* satisfy_failed_allocation(size_t size, bool is_tlab);
 136 




  62 
  63 private:
  64   Generation* _young_gen;
  65   Generation* _old_gen;
  66 
  67   // The singleton CardTable Remembered Set.
  68   CardTableRS* _rem_set;
  69 
  70   // The generational collector policy.
  71   GenCollectorPolicy* _gen_policy;
  72 
  73   // Indicates that the most recent previous incremental collection failed.
  74   // The flag is cleared when an action is taken that might clear the
  75   // condition that caused that incremental collection to fail.
  76   bool _incremental_collection_failed;
  77 
  78   // In support of ExplicitGCInvokesConcurrent functionality
  79   unsigned int _full_collections_completed;
  80 
  81   // Collects the given generation.
  82   void collect_generation(Generation* gen, bool full, size_t size, bool is_tlab,
  83                           bool run_verification, bool clear_soft_refs,
  84                           bool restore_marks_for_biased_locking);
  85 
  86   // Reserve aligned space for the heap as needed by the contained generations.
  87   char* allocate(size_t alignment, ReservedSpace* heap_rs);
  88 
  89   // Initialize ("weak") refs processing support
  90   void ref_processing_init();
  91 
  92 protected:
  93 
  94   // The set of potentially parallel tasks in root scanning.
  95   enum GCH_strong_roots_tasks {
  96     GCH_PS_Universe_oops_do,
  97     GCH_PS_JNIHandles_oops_do,
  98     GCH_PS_ObjectSynchronizer_oops_do,
  99     GCH_PS_FlatProfiler_oops_do,
 100     GCH_PS_Management_oops_do,
 101     GCH_PS_SystemDictionary_oops_do,
 102     GCH_PS_ClassLoaderDataGraph_oops_do,
 103     GCH_PS_jvmti_oops_do,
 104     GCH_PS_CodeCache_oops_do,
 105     GCH_PS_aot_oops_do,
 106     GCH_PS_younger_gens,
 107     // Leave this one last.
 108     GCH_PS_NumElements
 109   };
 110 
 111   // Data structure for claiming the (potentially) parallel tasks in
 112   // (gen-specific) roots processing.
 113   SubTasksDone* _process_strong_tasks;
 114 
 115   GCMemoryManager* _young_manager;
 116   GCMemoryManager* _old_manager;
 117 
 118   // Helper functions for allocation
 119   HeapWord* attempt_allocation(size_t size,
 120                                bool   is_tlab,
 121                                bool   first_only);
 122 
 123   // Helper function for two callbacks below.
 124   // Considers collection of the first max_level+1 generations.
 125   void do_collection(bool           full,
 126                      bool           clear_all_soft_refs,
 127                      size_t         size,
 128                      bool           is_tlab,
 129                      GenerationType max_generation);
 130 
 131   // Callback from VM_GenCollectForAllocation operation.
 132   // This function does everything necessary/possible to satisfy an
 133   // allocation request that failed in the youngest generation that should
 134   // have handled it (including collection, expansion, etc.)
 135   HeapWord* satisfy_failed_allocation(size_t size, bool is_tlab);
 136 


< prev index next >