277 G1PretouchTask cl(page_start(start_page), bounded_end_addr(start_page + size_in_pages), _page_size); |
277 G1PretouchTask cl(page_start(start_page), bounded_end_addr(start_page + size_in_pages), _page_size); |
278 |
278 |
279 if (pretouch_gang != NULL) { |
279 if (pretouch_gang != NULL) { |
280 size_t num_chunks = MAX2((size_t)1, size_in_pages * _page_size / MAX2(G1PretouchTask::chunk_size(), _page_size)); |
280 size_t num_chunks = MAX2((size_t)1, size_in_pages * _page_size / MAX2(G1PretouchTask::chunk_size(), _page_size)); |
281 |
281 |
282 uint num_workers = MIN2((uint)num_chunks, pretouch_gang->active_workers()); |
282 uint num_workers = MIN2((uint)num_chunks, pretouch_gang->total_workers()); |
283 log_debug(gc, heap)("Running %s with %u workers for " SIZE_FORMAT " work units pre-touching " SIZE_FORMAT "B.", |
283 log_debug(gc, heap)("Running %s with %u workers for " SIZE_FORMAT " work units pre-touching " SIZE_FORMAT "B.", |
284 cl.name(), num_workers, num_chunks, size_in_pages * _page_size); |
284 cl.name(), num_workers, num_chunks, size_in_pages * _page_size); |
285 pretouch_gang->run_task(&cl, num_workers); |
285 pretouch_gang->run_task(&cl, num_workers); |
286 } else { |
286 } else { |
287 log_debug(gc, heap)("Running %s pre-touching " SIZE_FORMAT "B.", |
287 log_debug(gc, heap)("Running %s pre-touching " SIZE_FORMAT "B.", |