src/hotspot/share/gc/g1/g1CollectedHeap.hpp
changeset 57785 8d9362f3b8aa
parent 57777 90ead0febf56
child 57903 5e2576c303a2
equal deleted inserted replaced
57783:a0257f1458aa 57785:8d9362f3b8aa
   760   // Evacuate the next set of optional regions.
   760   // Evacuate the next set of optional regions.
   761   void evacuate_next_optional_regions(G1ParScanThreadStateSet* per_thread_states);
   761   void evacuate_next_optional_regions(G1ParScanThreadStateSet* per_thread_states);
   762 
   762 
   763 public:
   763 public:
   764   void pre_evacuate_collection_set(G1EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* pss);
   764   void pre_evacuate_collection_set(G1EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* pss);
   765   void post_evacuate_collection_set(G1EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* pss);
   765   void post_evacuate_collection_set(G1EvacuationInfo& evacuation_info,
       
   766                                     G1RedirtyCardsQueueSet* rdcqs,
       
   767                                     G1ParScanThreadStateSet* pss);
   766 
   768 
   767   void expand_heap_after_young_collection();
   769   void expand_heap_after_young_collection();
   768   // Update object copying statistics.
   770   // Update object copying statistics.
   769   void record_obj_copy_mem_stats();
   771   void record_obj_copy_mem_stats();
   770 
   772 
   772   G1HotCardCache* _hot_card_cache;
   774   G1HotCardCache* _hot_card_cache;
   773 
   775 
   774   // The g1 remembered set of the heap.
   776   // The g1 remembered set of the heap.
   775   G1RemSet* _rem_set;
   777   G1RemSet* _rem_set;
   776 
   778 
   777   // A set of cards that cover the objects for which the Rsets should be updated
       
   778   // concurrently after the collection.
       
   779   G1RedirtyCardsQueueSet _redirty_cards_queue_set;
       
   780 
       
   781   // After a collection pause, convert the regions in the collection set into free
   779   // After a collection pause, convert the regions in the collection set into free
   782   // regions.
   780   // regions.
   783   void free_collection_set(G1CollectionSet* collection_set, G1EvacuationInfo& evacuation_info, const size_t* surviving_young_words);
   781   void free_collection_set(G1CollectionSet* collection_set, G1EvacuationInfo& evacuation_info, const size_t* surviving_young_words);
   784 
   782 
   785   // Abandon the current collection set without recording policy
   783   // Abandon the current collection set without recording policy
   801 
   799 
   802   EvacuationFailedInfo* _evacuation_failed_info_array;
   800   EvacuationFailedInfo* _evacuation_failed_info_array;
   803 
   801 
   804   // Failed evacuations cause some logical from-space objects to have
   802   // Failed evacuations cause some logical from-space objects to have
   805   // forwarding pointers to themselves.  Reset them.
   803   // forwarding pointers to themselves.  Reset them.
   806   void remove_self_forwarding_pointers();
   804   void remove_self_forwarding_pointers(G1RedirtyCardsQueueSet* rdcqs);
   807 
   805 
   808   // Restore the objects in the regions in the collection set after an
   806   // Restore the objects in the regions in the collection set after an
   809   // evacuation failure.
   807   // evacuation failure.
   810   void restore_after_evac_failure();
   808   void restore_after_evac_failure(G1RedirtyCardsQueueSet* rdcqs);
   811 
   809 
   812   PreservedMarksSet _preserved_marks_set;
   810   PreservedMarksSet _preserved_marks_set;
   813 
   811 
   814   // Preserve the mark of "obj", if necessary, in preparation for its mark
   812   // Preserve the mark of "obj", if necessary, in preparation for its mark
   815   // word being overwritten with a self-forwarding-pointer.
   813   // word being overwritten with a self-forwarding-pointer.
   933 
   931 
   934   RefToScanQueue *task_queue(uint i) const;
   932   RefToScanQueue *task_queue(uint i) const;
   935 
   933 
   936   uint num_task_queues() const;
   934   uint num_task_queues() const;
   937 
   935 
   938   // A set of cards where updates happened during the GC
       
   939   G1RedirtyCardsQueueSet& redirty_cards_queue_set() {
       
   940     return _redirty_cards_queue_set;
       
   941   }
       
   942 
       
   943   // Create a G1CollectedHeap.
   936   // Create a G1CollectedHeap.
   944   // Must call the initialize method afterwards.
   937   // Must call the initialize method afterwards.
   945   // May not return if something goes wrong.
   938   // May not return if something goes wrong.
   946   G1CollectedHeap();
   939   G1CollectedHeap();
   947 
   940 
  1364 
  1357 
  1365   // Performs cleaning of data structures after class unloading.
  1358   // Performs cleaning of data structures after class unloading.
  1366   void complete_cleaning(BoolObjectClosure* is_alive, bool class_unloading_occurred);
  1359   void complete_cleaning(BoolObjectClosure* is_alive, bool class_unloading_occurred);
  1367 
  1360 
  1368   // Redirty logged cards in the refinement queue.
  1361   // Redirty logged cards in the refinement queue.
  1369   void redirty_logged_cards();
  1362   void redirty_logged_cards(G1RedirtyCardsQueueSet* rdcqs);
       
  1363 
  1370   // Verification
  1364   // Verification
  1371 
  1365 
  1372   // Deduplicate the string
  1366   // Deduplicate the string
  1373   virtual void deduplicate_string(oop str);
  1367   virtual void deduplicate_string(oop str);
  1374 
  1368