# HG changeset patch # User jiangli # Date 1452644142 18000 # Node ID d9cf65a7fd2dbc91bbbf0c1390e97bc5f00acd5b # Parent 6ed8e1b70803f67216bf37491d3ccc8b41be7a9a 8146523: VirtualMemoryTracker::remove_released_region double count unmapped CDS shared memory Summary: Skip tracking release for unmapped CDS shared space. Reviewed-by: dholmes, coleenp, iklam, gtriantafill diff -r 6ed8e1b70803 -r d9cf65a7fd2d hotspot/src/share/vm/services/virtualMemoryTracker.cpp --- a/hotspot/src/share/vm/services/virtualMemoryTracker.cpp Tue Jan 12 21:01:22 2016 +0000 +++ b/hotspot/src/share/vm/services/virtualMemoryTracker.cpp Tue Jan 12 19:15:42 2016 -0500 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -416,6 +416,14 @@ return false; } + if (reserved_rgn->flag() == mtClassShared && + reserved_rgn->contain_region(addr, size) && + !reserved_rgn->same_region(addr, size)) { + // This is an unmapped CDS region, which is part of the reserved shared + // memory region. + // See special handling in VirtualMemoryTracker::add_reserved_region also. + return true; + } VirtualMemorySummary::record_released_memory(size, reserved_rgn->flag());