< prev index next >

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

Print this page
rev 13280 : imported patch CollectedHeap_register_nmethod
rev 13281 : [mq]: CollectedHeap_register_nmethod_v2


1372   // Added if it is NULL it isn't dead.
1373 
1374   inline bool is_obj_dead(const oop obj) const;
1375 
1376   inline bool is_obj_ill(const oop obj) const;
1377 
1378   G1ConcurrentMark* concurrent_mark() const { return _cm; }
1379 
1380   // Refinement
1381 
1382   ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; }
1383 
1384   // Optimized nmethod scanning support routines
1385 
1386   // Register the given nmethod with the G1 heap.
1387   virtual void register_nmethod(nmethod* nm);
1388 
1389   // Unregister the given nmethod from the G1 heap.
1390   virtual void unregister_nmethod(nmethod* nm);
1391 


1392   // Free up superfluous code root memory.
1393   void purge_code_root_memory();
1394 
1395   // Rebuild the strong code root lists for each region
1396   // after a full GC.
1397   void rebuild_strong_code_roots();
1398 
1399   // Partial cleaning used when class unloading is disabled.
1400   // Let the caller choose what structures to clean out:
1401   // - StringTable
1402   // - SymbolTable
1403   // - StringDeduplication structures
1404   void partial_cleaning(BoolObjectClosure* is_alive, bool unlink_strings, bool unlink_symbols, bool unlink_string_dedup);
1405 
1406   // Complete cleaning used when class unloading is enabled.
1407   // Cleans out all structures handled by partial_cleaning and also the CodeCache.
1408   void complete_cleaning(BoolObjectClosure* is_alive, bool class_unloading_occurred);
1409 
1410   // Redirty logged cards in the refinement queue.
1411   void redirty_logged_cards();


1418 
1419   // vo == UsePrevMarking  -> use "prev" marking information,
1420   // vo == UseNextMarking -> use "next" marking information
1421   // vo == UseMarkWord    -> use the mark word in the object header
1422   //
1423   // NOTE: Only the "prev" marking information is guaranteed to be
1424   // consistent most of the time, so most calls to this should use
1425   // vo == UsePrevMarking.
1426   // Currently, there is only one case where this is called with
1427   // vo == UseNextMarking, which is to verify the "next" marking
1428   // information at the end of remark.
1429   // Currently there is only one place where this is called with
1430   // vo == UseMarkWord, which is to verify the marking during a
1431   // full GC.
1432   void verify(VerifyOption vo);
1433 
1434   // WhiteBox testing support.
1435   virtual bool supports_concurrent_phase_control() const;
1436   virtual const char* const* concurrent_phases() const;
1437   virtual bool request_concurrent_phase(const char* phase);
1438 
1439   void verify_nmethod_roots(nmethod* nmethod);
1440 
1441   // The methods below are here for convenience and dispatch the
1442   // appropriate method depending on value of the given VerifyOption
1443   // parameter. The values for that parameter, and their meanings,
1444   // are the same as those above.
1445 
1446   bool is_obj_dead_cond(const oop obj,
1447                         const HeapRegion* hr,
1448                         const VerifyOption vo) const;
1449 
1450   bool is_obj_dead_cond(const oop obj,
1451                         const VerifyOption vo) const;
1452 
1453   G1HeapSummary create_g1_heap_summary();
1454   G1EvacSummary create_g1_evac_summary(G1EvacStats* stats);
1455 
1456   // Printing
1457 private:
1458   void print_heap_regions() const;
1459   void print_regions_on(outputStream* st) const;




1372   // Added if it is NULL it isn't dead.
1373 
1374   inline bool is_obj_dead(const oop obj) const;
1375 
1376   inline bool is_obj_ill(const oop obj) const;
1377 
1378   G1ConcurrentMark* concurrent_mark() const { return _cm; }
1379 
1380   // Refinement
1381 
1382   ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; }
1383 
1384   // Optimized nmethod scanning support routines
1385 
1386   // Register the given nmethod with the G1 heap.
1387   virtual void register_nmethod(nmethod* nm);
1388 
1389   // Unregister the given nmethod from the G1 heap.
1390   virtual void unregister_nmethod(nmethod* nm);
1391 
1392   virtual void verify_nmethod_roots(nmethod* nmethod) {}
1393 
1394   // Free up superfluous code root memory.
1395   void purge_code_root_memory();
1396 
1397   // Rebuild the strong code root lists for each region
1398   // after a full GC.
1399   void rebuild_strong_code_roots();
1400 
1401   // Partial cleaning used when class unloading is disabled.
1402   // Let the caller choose what structures to clean out:
1403   // - StringTable
1404   // - SymbolTable
1405   // - StringDeduplication structures
1406   void partial_cleaning(BoolObjectClosure* is_alive, bool unlink_strings, bool unlink_symbols, bool unlink_string_dedup);
1407 
1408   // Complete cleaning used when class unloading is enabled.
1409   // Cleans out all structures handled by partial_cleaning and also the CodeCache.
1410   void complete_cleaning(BoolObjectClosure* is_alive, bool class_unloading_occurred);
1411 
1412   // Redirty logged cards in the refinement queue.
1413   void redirty_logged_cards();


1420 
1421   // vo == UsePrevMarking  -> use "prev" marking information,
1422   // vo == UseNextMarking -> use "next" marking information
1423   // vo == UseMarkWord    -> use the mark word in the object header
1424   //
1425   // NOTE: Only the "prev" marking information is guaranteed to be
1426   // consistent most of the time, so most calls to this should use
1427   // vo == UsePrevMarking.
1428   // Currently, there is only one case where this is called with
1429   // vo == UseNextMarking, which is to verify the "next" marking
1430   // information at the end of remark.
1431   // Currently there is only one place where this is called with
1432   // vo == UseMarkWord, which is to verify the marking during a
1433   // full GC.
1434   void verify(VerifyOption vo);
1435 
1436   // WhiteBox testing support.
1437   virtual bool supports_concurrent_phase_control() const;
1438   virtual const char* const* concurrent_phases() const;
1439   virtual bool request_concurrent_phase(const char* phase);


1440 
1441   // The methods below are here for convenience and dispatch the
1442   // appropriate method depending on value of the given VerifyOption
1443   // parameter. The values for that parameter, and their meanings,
1444   // are the same as those above.
1445 
1446   bool is_obj_dead_cond(const oop obj,
1447                         const HeapRegion* hr,
1448                         const VerifyOption vo) const;
1449 
1450   bool is_obj_dead_cond(const oop obj,
1451                         const VerifyOption vo) const;
1452 
1453   G1HeapSummary create_g1_heap_summary();
1454   G1EvacSummary create_g1_evac_summary(G1EvacStats* stats);
1455 
1456   // Printing
1457 private:
1458   void print_heap_regions() const;
1459   void print_regions_on(outputStream* st) const;


< prev index next >