< prev index next >
src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp
Print this page
rev 12117 : Pin regions that contain JNI critical regions, instead of bail-and-retry protocol.
*** 125,135 ****
jlong i = 0;
jlong end = sorted_regions->active_regions();
while (i < end) {
ShenandoahHeapRegion* region = sorted_regions->get(i++);
! if (region->garbage() > _garbage_threshold && ! region->is_humongous()) {
// tty->print("choose region %d with garbage = " SIZE_FORMAT " and live = " SIZE_FORMAT " and _garbage_threshold = " SIZE_FORMAT "\n",
// region->region_number(), region->garbage(), region->getLiveData(), _garbage_threshold);
assert(! region->is_humongous(), "no humongous regions in collection set");
--- 125,135 ----
jlong i = 0;
jlong end = sorted_regions->active_regions();
while (i < end) {
ShenandoahHeapRegion* region = sorted_regions->get(i++);
! if (region->garbage() > _garbage_threshold && ! region->is_humongous() && ! region->is_pinned()) {
// tty->print("choose region %d with garbage = " SIZE_FORMAT " and live = " SIZE_FORMAT " and _garbage_threshold = " SIZE_FORMAT "\n",
// region->region_number(), region->garbage(), region->getLiveData(), _garbage_threshold);
assert(! region->is_humongous(), "no humongous regions in collection set");
*** 156,166 ****
jlong end = sorted_regions->active_regions();
size_t garbage = 0;
while (i < end && garbage < min_garbage) {
ShenandoahHeapRegion* region = sorted_regions->get(i++);
! if (region->garbage() > _garbage_threshold && ! region->is_humongous()) {
collection_set->add_region(region);
garbage += region->garbage();
region->set_is_in_collection_set(true);
}
}
--- 156,166 ----
jlong end = sorted_regions->active_regions();
size_t garbage = 0;
while (i < end && garbage < min_garbage) {
ShenandoahHeapRegion* region = sorted_regions->get(i++);
! if (region->garbage() > _garbage_threshold && ! region->is_humongous() && ! region->is_pinned()) {
collection_set->add_region(region);
garbage += region->garbage();
region->set_is_in_collection_set(true);
}
}
*** 173,183 ****
jlong end = ordered_regions->active_regions();
while (i < end) {
ShenandoahHeapRegion* region = ordered_regions->get(i++);
if ((! region->is_in_collection_set())
! && (! region->is_humongous())) {
free_set->add_region(region);
}
}
}
--- 173,184 ----
jlong end = ordered_regions->active_regions();
while (i < end) {
ShenandoahHeapRegion* region = ordered_regions->get(i++);
if ((! region->is_in_collection_set())
! && (! region->is_humongous())
! && (! region->is_pinned())) {
free_set->add_region(region);
}
}
}
< prev index next >