< 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 >