Print this page
rev 6875 : 8056240: Investigate increased GC remark time after class unloading changes in CRM Fuse
Reviewed-by: mgerdin, coleenp, bdelsart

Split Split Close
Expand all
Collapse all
          --- old/src/share/vm/code/nmethod.hpp
          +++ new/src/share/vm/code/nmethod.hpp
↓ open down ↓ 606 lines elided ↑ open up ↑
 607  607    bool can_not_entrant_be_converted();
 608  608  
 609  609    // Evolution support. We make old (discarded) compiled methods point to new Method*s.
 610  610    void set_method(Method* method) { _method = method; }
 611  611  
 612  612    // GC support
 613  613    void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
 614  614    //  The parallel versions are used by G1.
 615  615    bool do_unloading_parallel(BoolObjectClosure* is_alive, bool unloading_occurred);
 616  616    void do_unloading_parallel_postponed(BoolObjectClosure* is_alive, bool unloading_occurred);
      617 +
      618 + private:
 617  619    //  Unload a nmethod if the *root object is dead.
 618  620    bool can_unload(BoolObjectClosure* is_alive, oop* root, bool unloading_occurred);
      621 +  bool unload_if_dead_at(RelocIterator *iter_at_oop, BoolObjectClosure* is_alive, bool unloading_occurred);
 619  622  
      623 +  void mark_metadata_on_stack_at(RelocIterator* iter_at_metadata);
      624 +  void mark_metadata_on_stack_non_relocs();
      625 +
      626 + public:
 620  627    void preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map,
 621  628                                       OopClosure* f);
 622  629    void oops_do(OopClosure* f) { oops_do(f, false); }
 623  630    void oops_do(OopClosure* f, bool allow_zombie);
 624  631    bool detect_scavenge_root_oops();
 625  632    void verify_scavenge_root_oops() PRODUCT_RETURN;
 626  633  
 627  634    bool test_set_oops_do_mark();
 628  635    static void oops_do_marking_prologue();
 629  636    static void oops_do_marking_epilogue();
↓ open down ↓ 172 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX