< prev index next >

src/share/vm/gc/parallel/psTasks.hpp

Print this page
rev 12906 : [mq]: gc_interface

*** 147,157 **** // exceed the top of the generation. Note that having fewer GC threads // than stripes works because all the tasks are executed so all stripes // will be covered. In this example if 4 tasks have been created to cover // all the stripes and there are only 3 threads, one of the threads will // get the tasks with the 4th stripe. However, there is a dependence in ! // CardTableExtension::scavenge_contents_parallel() on the number // of tasks created. In scavenge_contents_parallel the distance // to the next stripe is calculated based on the number of tasks. // If the stripe width is ssize, a task's next stripe is at // ssize * number_of_tasks (= slice_stride). In this case after // finishing stripe 0 in slice 0, the thread finds the stripe 0 in slice1 --- 147,157 ---- // exceed the top of the generation. Note that having fewer GC threads // than stripes works because all the tasks are executed so all stripes // will be covered. In this example if 4 tasks have been created to cover // all the stripes and there are only 3 threads, one of the threads will // get the tasks with the 4th stripe. However, there is a dependence in ! // PSCardTable::scavenge_contents_parallel() on the number // of tasks created. In scavenge_contents_parallel the distance // to the next stripe is calculated based on the number of tasks. // If the stripe width is ssize, a task's next stripe is at // ssize * number_of_tasks (= slice_stride). In this case after // finishing stripe 0 in slice 0, the thread finds the stripe 0 in slice1
< prev index next >