< prev index next >
src/share/vm/memory/sharedHeap.hpp
Print this page
rev 7973 : G1RootProcessor
rev 7974 : Convert G1 to G1RootProcessor
rev 7975 : Move remaining root processing to GenCollectedHeap
rev 7976 : [mq]: sharedheap-comment
rev 7977 : [mq]: trace-metadata-comment
*** 59,80 ****
// 2) SubTasksDone has a variable _n_threads that is used in
// all_tasks_completed() to determine completion. all_tasks_complete()
// counts the number of tasks that have been done and then reset
// the SubTasksDone so that it can be used again. When the number of
// tasks is set to the number of GC workers, then _n_threads must
! // be set to the number of active GC workers. G1CollectedHeap,
! // HRInto_G1RemSet, GenCollectedHeap and SharedHeap have SubTasksDone.
! // This seems too many.
// 3) SequentialSubTasksDone has an _n_threads that is used in
// a way similar to SubTasksDone and has the same dependency on the
// number of active GC workers. CompactibleFreeListSpace and Space
// have SequentialSubTasksDone's.
! // Example of using SubTasksDone and SequentialSubTasksDone
! // G1CollectedHeap::g1_process_roots()
! // to SharedHeap::process_roots() and uses
! // SubTasksDone* _process_strong_tasks to claim tasks.
! // process_roots() calls
// rem_set()->younger_refs_iterate()
// to scan the card table and which eventually calls down into
// CardTableModRefBS::par_non_clean_card_iterate_work(). This method
// uses SequentialSubTasksDone* _pst to claim tasks.
// Both SubTasksDone and SequentialSubTasksDone call their method
--- 59,80 ----
// 2) SubTasksDone has a variable _n_threads that is used in
// all_tasks_completed() to determine completion. all_tasks_complete()
// counts the number of tasks that have been done and then reset
// the SubTasksDone so that it can be used again. When the number of
// tasks is set to the number of GC workers, then _n_threads must
! // be set to the number of active GC workers. G1RootProcessor and
! // GenCollectedHeap have SubTasksDone.
// 3) SequentialSubTasksDone has an _n_threads that is used in
// a way similar to SubTasksDone and has the same dependency on the
// number of active GC workers. CompactibleFreeListSpace and Space
// have SequentialSubTasksDone's.
! //
! // Examples of using SubTasksDone and SequentialSubTasksDone:
! // G1RootProcessor and GenCollectedHeap::process_roots() use
! // SubTasksDone* _process_strong_tasks to claim tasks for workers
! //
! // GenCollectedHeap::gen_process_roots() calls
// rem_set()->younger_refs_iterate()
// to scan the card table and which eventually calls down into
// CardTableModRefBS::par_non_clean_card_iterate_work(). This method
// uses SequentialSubTasksDone* _pst to claim tasks.
// Both SubTasksDone and SequentialSubTasksDone call their method
< prev index next >