< prev index next >
src/share/vm/gc/g1/heapRegion.cpp
Print this page
*** 209,226 ****
double region_elapsed_time_ms =
g1p->predict_region_elapsed_time_ms(this, false /* for_young_gc */);
_gc_efficiency = (double) reclaimable_bytes() / region_elapsed_time_ms;
}
! void HeapRegion::set_starts_humongous(HeapWord* obj_top) {
assert(!is_humongous(), "sanity / pre-condition");
assert(top() == bottom(), "should be empty");
_type.set_starts_humongous();
_humongous_start_region = this;
! _offsets.set_for_starts_humongous(obj_top);
}
void HeapRegion::set_continues_humongous(HeapRegion* first_hr) {
assert(!is_humongous(), "sanity / pre-condition");
assert(top() == bottom(), "should be empty");
--- 209,226 ----
double region_elapsed_time_ms =
g1p->predict_region_elapsed_time_ms(this, false /* for_young_gc */);
_gc_efficiency = (double) reclaimable_bytes() / region_elapsed_time_ms;
}
! void HeapRegion::set_starts_humongous(HeapWord* end) {
assert(!is_humongous(), "sanity / pre-condition");
assert(top() == bottom(), "should be empty");
_type.set_starts_humongous();
_humongous_start_region = this;
! _offsets.set_for_starts_humongous(end);
}
void HeapRegion::set_continues_humongous(HeapRegion* first_hr) {
assert(!is_humongous(), "sanity / pre-condition");
assert(top() == bottom(), "should be empty");
*** 754,773 ****
while (p < top()) {
oop obj = oop(p);
size_t obj_size = block_size(p);
object_num += 1;
- if (is_region_humongous != g1->is_humongous(obj_size) &&
- !g1->is_obj_dead(obj, this)) { // Dead objects may have bigger block_size since they span several objects.
- gclog_or_tty->print_cr("obj " PTR_FORMAT " is of %shumongous size ("
- SIZE_FORMAT " words) in a %shumongous region",
- p2i(p), g1->is_humongous(obj_size) ? "" : "non-",
- obj_size, is_region_humongous ? "" : "non-");
- *failures = true;
- return;
- }
-
if (!g1->is_obj_dead_cond(obj, this, vo)) {
if (obj->is_oop()) {
Klass* klass = obj->klass();
bool is_metaspace_object = Metaspace::contains(klass) ||
(vo == VerifyOption_G1UsePrevMarking &&
--- 754,763 ----
*** 874,891 ****
*failures = true;
return;
}
}
- if (is_region_humongous && object_num > 1) {
- gclog_or_tty->print_cr("region [" PTR_FORMAT "," PTR_FORMAT "] is humongous "
- "but has " SIZE_FORMAT ", objects",
- p2i(bottom()), p2i(end()), object_num);
- *failures = true;
- return;
- }
-
verify_strong_code_roots(vo, failures);
}
void HeapRegion::verify() const {
bool dummy = false;
--- 864,873 ----
< prev index next >