< prev index next >
src/hotspot/share/gc/g1/g1CollectionSetChooser.cpp
Print this page
rev 53416 : imported patch 8217330-split-collectionsetchooser
rev 53417 : [mq]: 8217330-leo-review
rev 53418 : imported patch 8217328-rename-collectionsetchooser
*** 21,32 ****
* questions.
*
*/
#include "precompiled.hpp"
- #include "gc/g1/collectionSetChooser.hpp"
#include "gc/g1/g1CollectedHeap.inline.hpp"
#include "gc/g1/heapRegionRemSet.hpp"
#include "gc/shared/space.inline.hpp"
#include "runtime/atomic.hpp"
#include "utilities/quickSort.hpp"
--- 21,32 ----
* questions.
*
*/
#include "precompiled.hpp"
#include "gc/g1/g1CollectedHeap.inline.hpp"
+ #include "gc/g1/g1CollectionSetChooser.hpp"
#include "gc/g1/heapRegionRemSet.hpp"
#include "gc/shared/space.inline.hpp"
#include "runtime/atomic.hpp"
#include "utilities/quickSort.hpp"
*** 168,178 ****
_regions_added++;
_reclaimable_bytes_added += hr->reclaimable_bytes();
}
! bool should_add(HeapRegion* hr) { return CollectionSetChooser::should_add(hr); }
public:
G1BuildCandidateRegionsClosure(G1BuildCandidateArray* array) :
_array(array),
_cur_chunk_idx(0),
--- 168,178 ----
_regions_added++;
_reclaimable_bytes_added += hr->reclaimable_bytes();
}
! bool should_add(HeapRegion* hr) { return G1CollectionSetChooser::should_add(hr); }
public:
G1BuildCandidateRegionsClosure(G1BuildCandidateArray* array) :
_array(array),
_cur_chunk_idx(0),
*** 242,264 ****
_num_regions_added,
_reclaimable_bytes_added);
}
};
! uint CollectionSetChooser::calculate_work_chunk_size(uint num_workers, uint num_regions) {
assert(num_workers > 0, "Active gc workers should be greater than 0");
return MAX2(num_regions / num_workers, 1U);
}
! bool CollectionSetChooser::should_add(HeapRegion* hr) {
return !hr->is_young() &&
!hr->is_pinned() &&
region_occupancy_low_enough_for_evac(hr->live_bytes()) &&
hr->rem_set()->is_complete();
}
! G1CollectionSetCandidates* CollectionSetChooser::build(WorkGang* workers, uint max_num_regions) {
uint num_workers = workers->active_workers();
uint chunk_size = calculate_work_chunk_size(num_workers, max_num_regions);
G1BuildCandidateRegionsTask cl(max_num_regions, chunk_size, num_workers);
workers->run_task(&cl, num_workers);
--- 242,264 ----
_num_regions_added,
_reclaimable_bytes_added);
}
};
! uint G1CollectionSetChooser::calculate_work_chunk_size(uint num_workers, uint num_regions) {
assert(num_workers > 0, "Active gc workers should be greater than 0");
return MAX2(num_regions / num_workers, 1U);
}
! bool G1CollectionSetChooser::should_add(HeapRegion* hr) {
return !hr->is_young() &&
!hr->is_pinned() &&
region_occupancy_low_enough_for_evac(hr->live_bytes()) &&
hr->rem_set()->is_complete();
}
! G1CollectionSetCandidates* G1CollectionSetChooser::build(WorkGang* workers, uint max_num_regions) {
uint num_workers = workers->active_workers();
uint chunk_size = calculate_work_chunk_size(num_workers, max_num_regions);
G1BuildCandidateRegionsTask cl(max_num_regions, chunk_size, num_workers);
workers->run_task(&cl, num_workers);
< prev index next >