< prev index next >
src/hotspot/share/services/memReporter.cpp
Print this page
@@ -289,11 +289,11 @@
if (amount_in_current_scale(reserved_rgn->size()) == 0) return;
outputStream* out = output();
const char* scale = current_scale();
const NativeCallStack* stack = reserved_rgn->call_stack();
- bool all_committed = reserved_rgn->all_committed();
+ bool all_committed = reserved_rgn->size() == reserved_rgn->committed_size();
const char* region_type = (all_committed ? "reserved and committed" : "reserved");
out->print_cr(" ");
print_virtual_memory_region(region_type, reserved_rgn->base(), reserved_rgn->size());
out->print(" for %s", NMTUtil::flag_to_name(reserved_rgn->flag()));
if (stack->is_empty()) {
@@ -301,11 +301,21 @@
} else {
out->print_cr(" from");
stack->print_on(out, 4);
}
- if (all_committed) return;
+ if (all_committed) {
+ CommittedRegionIterator itr = reserved_rgn->iterate_committed_regions();
+ const CommittedMemoryRegion* committed_rgn = itr.next();
+ if (committed_rgn->size() == reserved_rgn->size() && committed_rgn->call_stack()->equals(*stack)) {
+ // One region spanning the entire reserved region, with the same stack trace.
+ // Don't print this regions because the "reserved and committed" line above
+ // already indicates that the region is comitted.
+ assert(itr.next() == NULL, "Unexpectedly more than one regions");
+ return;
+ }
+ }
CommittedRegionIterator itr = reserved_rgn->iterate_committed_regions();
const CommittedMemoryRegion* committed_rgn;
while ((committed_rgn = itr.next()) != NULL) {
// Don't report if size is too small
@@ -743,6 +753,5 @@
print_virtual_memory_diff(current_reserved, current_committed,
early_reserved, early_committed);
out->print_cr(")\n");
}
-
< prev index next >