hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp
changeset 19339 d247781beec7
parent 17854 d65bc1546091
child 20305 af013cf4a5e6
equal deleted inserted replaced
19289:213031f03f61 19339:d247781beec7
    79   void cleanupHRRS();
    79   void cleanupHRRS();
    80 
    80 
    81   G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs);
    81   G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs);
    82   ~G1RemSet();
    82   ~G1RemSet();
    83 
    83 
    84   // Invoke "blk->do_oop" on all pointers into the CS in objects in regions
    84   // Invoke "blk->do_oop" on all pointers into the collection set
    85   // outside the CS (having invoked "blk->set_region" to set the "from"
    85   // from objects in regions outside the collection set (having
    86   // region correctly beforehand.) The "worker_i" param is for the
    86   // invoked "blk->set_region" to set the "from" region correctly
    87   // parallel case where the number of the worker thread calling this
    87   // beforehand.)
    88   // function can be helpful in partitioning the work to be done. It
    88   //
    89   // should be the same as the "i" passed to the calling thread's
    89   // Invoke code_root_cl->do_code_blob on the unmarked nmethods
    90   // work(i) function. In the sequential case this param will be ingored.
    90   // on the strong code roots list for each region in the
    91   void oops_into_collection_set_do(OopsInHeapRegionClosure* blk, int worker_i);
    91   // collection set.
       
    92   //
       
    93   // The "worker_i" param is for the parallel case where the id
       
    94   // of the worker thread calling this function can be helpful in
       
    95   // partitioning the work to be done. It should be the same as
       
    96   // the "i" passed to the calling thread's work(i) function.
       
    97   // In the sequential case this param will be ignored.
       
    98   void oops_into_collection_set_do(OopsInHeapRegionClosure* blk,
       
    99                                    CodeBlobToOopClosure* code_root_cl,
       
   100                                    int worker_i);
    92 
   101 
    93   // Prepare for and cleanup after an oops_into_collection_set_do
   102   // Prepare for and cleanup after an oops_into_collection_set_do
    94   // call.  Must call each of these once before and after (in sequential
   103   // call.  Must call each of these once before and after (in sequential
    95   // code) any threads call oops_into_collection_set_do.  (This offers an
   104   // code) any threads call oops_into_collection_set_do.  (This offers an
    96   // opportunity to sequential setup and teardown of structures needed by a
   105   // opportunity to sequential setup and teardown of structures needed by a
    97   // parallel iteration over the CS's RS.)
   106   // parallel iteration over the CS's RS.)
    98   void prepare_for_oops_into_collection_set_do();
   107   void prepare_for_oops_into_collection_set_do();
    99   void cleanup_after_oops_into_collection_set_do();
   108   void cleanup_after_oops_into_collection_set_do();
   100 
   109 
   101   void scanRS(OopsInHeapRegionClosure* oc, int worker_i);
   110   void scanRS(OopsInHeapRegionClosure* oc,
       
   111               CodeBlobToOopClosure* code_root_cl,
       
   112               int worker_i);
       
   113 
   102   void updateRS(DirtyCardQueue* into_cset_dcq, int worker_i);
   114   void updateRS(DirtyCardQueue* into_cset_dcq, int worker_i);
   103 
   115 
   104   CardTableModRefBS* ct_bs() { return _ct_bs; }
   116   CardTableModRefBS* ct_bs() { return _ct_bs; }
   105   size_t cardsScanned() { return _total_cards_scanned; }
   117   size_t cardsScanned() { return _total_cards_scanned; }
   106 
   118