Skip to content

Commit

Permalink
JEP387 review feedback round 2
Browse files Browse the repository at this point in the history
  • Loading branch information
tstuefe committed Sep 24, 2020
1 parent a7dc085 commit 731f795
Show file tree
Hide file tree
Showing 80 changed files with 394 additions and 359 deletions.
1 change: 0 additions & 1 deletion src/hotspot/share/gc/shared/jvmFlagConstraintsGC.hpp
Expand Up @@ -56,7 +56,6 @@
\
f(uintx, MaxGCPauseMillisConstraintFunc) \
f(uintx, GCPauseIntervalMillisConstraintFunc) \
f(size_t, InitialBootClassLoaderMetaspaceSizeConstraintFunc) \
f(size_t, MinHeapSizeConstraintFunc) \
f(size_t, InitialHeapSizeConstraintFunc) \
f(size_t, MaxHeapSizeConstraintFunc) \
Expand Down
18 changes: 9 additions & 9 deletions src/hotspot/share/memory/metaspace.cpp
Expand Up @@ -29,16 +29,16 @@
#include "logging/log.hpp"
#include "logging/logStream.hpp"
#include "memory/filemap.hpp"
#include "memory/metaspace/chunkHeaderPool.hpp"
#include "memory/metaspace/chunkManager.hpp"
#include "memory/metaspace/commitLimiter.hpp"
#include "memory/metaspace/metaspaceCommon.hpp"
#include "memory/metaspace/metaspaceContext.hpp"
#include "memory/metaspace/metaspaceReporter.hpp"
#include "memory/metaspace/metaspaceSettings.hpp"
#include "memory/metaspace/metaspaceSizesSnapshot.hpp"
#include "memory/metaspace/msChunkHeaderPool.hpp"
#include "memory/metaspace/msChunkManager.hpp"
#include "memory/metaspace/msCommitLimiter.hpp"
#include "memory/metaspace/msCommon.hpp"
#include "memory/metaspace/msContext.hpp"
#include "memory/metaspace/msReport.hpp"
#include "memory/metaspace/msRunningCounters.hpp"
#include "memory/metaspace/msSettings.hpp"
#include "memory/metaspace/msVirtualSpaceList.hpp"
#include "memory/metaspace/runningCounters.hpp"
#include "memory/metaspace/virtualSpaceList.hpp"
#include "memory/metaspace.hpp"
#include "memory/metaspaceShared.hpp"
#include "memory/metaspaceTracer.hpp"
Expand Down
Expand Up @@ -23,12 +23,11 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSALLOCATIONGUARD_HPP
#define SHARE_MEMORY_METASPACE_MSALLOCATIONGUARD_HPP
#ifndef SHARE_MEMORY_METASPACE_ALLOCATIONGUARD_HPP
#define SHARE_MEMORY_METASPACE_ALLOCATIONGUARD_HPP

#include "memory/allocation.hpp"
#include "memory/metaspace/msChunklevel.hpp"
#include "utilities/debug.hpp"
#include "memory/metaspace/chunklevel.hpp"
#include "utilities/globalDefinitions.hpp"

// In Debug builds, Metadata in Metaspace can be optionally guarded - enclosed in canaries -
Expand Down Expand Up @@ -90,10 +89,8 @@ struct Prefix {
return (MetaWord*)(this + 1);
}

void check() const {
assert(_mark == EyeCatcher, "Corrupt block: missing eyecatcher (at " PTR_FORMAT ").", p2i(this));
assert(_word_size > 0 && _word_size < chunklevel::MAX_CHUNK_WORD_SIZE,
"Corrupt block: invalid size " SIZE_FORMAT " (at " PTR_FORMAT ").", _word_size, p2i(this));
bool is_valid() const {
return _mark == EyeCatcher && _word_size > 0 && _word_size < chunklevel::MAX_CHUNK_WORD_SIZE;
}

};
Expand All @@ -116,4 +113,4 @@ inline MetaWord* establish_prefix(MetaWord* p_raw, size_t raw_word_size) {

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSALLOCATIONGUARD_HPP
#endif // SHARE_MEMORY_METASPACE_ALLOCATIONGUARD_HPP
Expand Up @@ -23,11 +23,11 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSBINLIST_HPP
#define SHARE_MEMORY_METASPACE_MSBINLIST_HPP
#ifndef SHARE_MEMORY_METASPACE_BINLIST_HPP
#define SHARE_MEMORY_METASPACE_BINLIST_HPP

#include "memory/metaspace/msCommon.hpp"
#include "memory/metaspace/msCounter.hpp"
#include "memory/metaspace/counters.hpp"
#include "memory/metaspace/metaspaceCommon.hpp"
#include "utilities/align.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
Expand Down Expand Up @@ -222,4 +222,4 @@ typedef BinListImpl<2, 32> BinList32;

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSBINLIST_HPP
#endif // SHARE_MEMORY_METASPACE_BINLIST_HPP
Expand Up @@ -25,7 +25,7 @@

#include "precompiled.hpp"

#include "memory/metaspace/msBlockTree.hpp"
#include "memory/metaspace/blockTree.hpp"
#include "memory/resourceArea.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
Expand Down
Expand Up @@ -23,12 +23,12 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSBLOCKTREE_HPP
#define SHARE_MEMORY_METASPACE_MSBLOCKTREE_HPP
#ifndef SHARE_MEMORY_METASPACE_BLOCKTREE_HPP
#define SHARE_MEMORY_METASPACE_BLOCKTREE_HPP

#include "memory/allocation.hpp"
#include "memory/metaspace/msChunklevel.hpp"
#include "memory/metaspace/msCounter.hpp"
#include "memory/metaspace/chunklevel.hpp"
#include "memory/metaspace/counters.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"

Expand Down Expand Up @@ -404,4 +404,4 @@ class BlockTree: public CHeapObj<mtMetaspace> {

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSBLOCKTREE_HPP
#endif // SHARE_MEMORY_METASPACE_BLOCKTREE_HPP
Expand Up @@ -24,7 +24,7 @@
*/

#include "precompiled.hpp"
#include "memory/metaspace/msChunkHeaderPool.hpp"
#include "memory/metaspace/chunkHeaderPool.hpp"
#include "runtime/os.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
Expand Down
Expand Up @@ -23,13 +23,13 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSCHUNKHEADERPOOL_HPP
#define SHARE_MEMORY_METASPACE_MSCHUNKHEADERPOOL_HPP
#ifndef SHARE_MEMORY_METASPACE_CHUNKHEADERPOOL_HPP
#define SHARE_MEMORY_METASPACE_CHUNKHEADERPOOL_HPP

#include "memory/allocation.hpp"
#include "memory/metaspace/msCounter.hpp"
#include "memory/metaspace/msMetachunk.hpp"
#include "memory/metaspace/msMetachunkList.hpp"
#include "memory/metaspace/counters.hpp"
#include "memory/metaspace/metachunk.hpp"
#include "memory/metaspace/metachunkList.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"

Expand Down Expand Up @@ -142,4 +142,4 @@ class ChunkHeaderPool : public CHeapObj<mtMetaspace> {

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSCHUNKHEADERPOOL_HPP
#endif // SHARE_MEMORY_METASPACE_CHUNKHEADERPOOL_HPP
Expand Up @@ -27,16 +27,16 @@

#include "logging/log.hpp"
#include "logging/logStream.hpp"
#include "memory/metaspace/msArenaGrowthPolicy.hpp"
#include "memory/metaspace/msChunkManager.hpp"
#include "memory/metaspace/msCommon.hpp"
#include "memory/metaspace/msContext.hpp"
#include "memory/metaspace/msInternalStats.hpp"
#include "memory/metaspace/msMetachunk.hpp"
#include "memory/metaspace/msSettings.hpp"
#include "memory/metaspace/msStatistics.hpp"
#include "memory/metaspace/msVirtualSpaceList.hpp"
#include "memory/metaspace/msVirtualSpaceNode.hpp"
#include "memory/metaspace/chunkManager.hpp"
#include "memory/metaspace/internalStats.hpp"
#include "memory/metaspace/metaspaceArenaGrowthPolicy.hpp"
#include "memory/metaspace/metaspaceCommon.hpp"
#include "memory/metaspace/metaspaceContext.hpp"
#include "memory/metaspace/metachunk.hpp"
#include "memory/metaspace/metaspaceSettings.hpp"
#include "memory/metaspace/metaspaceStatistics.hpp"
#include "memory/metaspace/virtualSpaceList.hpp"
#include "memory/metaspace/virtualSpaceNode.hpp"
#include "runtime/mutexLocker.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
Expand Down Expand Up @@ -369,11 +369,22 @@ void ChunkManager::purge() {
const size_t committed_before = _vslist->committed_words();
int num_nodes_purged = 0;

// 1) purge virtual space list
// We purge to return unused memory to the Operating System. We do this in
// two independent steps.

// 1) We purge the virtual space list: any memory mappings which are
// completely deserted can be potentially unmapped. We iterate over the list
// of mappings (VirtualSpaceList::purge) and delete every node whose memory
// only contains free chunks. Deleting that node includes unmapping its memory,
// so all chunk vanish automatically.
// Of course we need to remove the chunk headers of those vanished chunks from
// the ChunkManager freelist.
num_nodes_purged = _vslist->purge(&_chunks);
InternalStats::inc_num_purges();

// 2) uncommit free chunks
// 2) Since (1) is rather ineffective - it is rare that a whole node only contains
// free chunks - we now iterate over all remaining free chunks and
// and uncommit those which can be uncommitted (>= commit granule size).
if (Settings::uncommit_free_chunks()) {
const chunklevel_t max_level =
chunklevel::level_fitting_word_size(Settings::commit_granule_words());
Expand Down
Expand Up @@ -23,14 +23,14 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSCHUNKMANAGER_HPP
#define SHARE_MEMORY_METASPACE_MSCHUNKMANAGER_HPP
#ifndef SHARE_MEMORY_METASPACE_CHUNKMANAGER_HPP
#define SHARE_MEMORY_METASPACE_CHUNKMANAGER_HPP

#include "memory/allocation.hpp"
#include "memory/metaspace/msChunklevel.hpp"
#include "memory/metaspace/msCounter.hpp"
#include "memory/metaspace/msFreeChunkList.hpp"
#include "memory/metaspace/msMetachunk.hpp"
#include "memory/metaspace/chunklevel.hpp"
#include "memory/metaspace/counters.hpp"
#include "memory/metaspace/freeChunkList.hpp"
#include "memory/metaspace/metachunk.hpp"

namespace metaspace {

Expand Down Expand Up @@ -185,4 +185,4 @@ class ChunkManager : public CHeapObj<mtMetaspace> {

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSCHUNKMANAGER_HPP
#endif // SHARE_MEMORY_METASPACE_CHUNKMANAGER_HPP
Expand Up @@ -24,7 +24,7 @@
*/

#include "precompiled.hpp"
#include "memory/metaspace/msChunklevel.hpp"
#include "memory/metaspace/chunklevel.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/ostream.hpp"
Expand Down
Expand Up @@ -23,8 +23,8 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSCHUNKLEVEL_HPP
#define SHARE_MEMORY_METASPACE_MSCHUNKLEVEL_HPP
#ifndef SHARE_MEMORY_METASPACE_CHUNKLEVEL_HPP
#define SHARE_MEMORY_METASPACE_CHUNKLEVEL_HPP

#include "utilities/globalDefinitions.hpp"

Expand Down Expand Up @@ -127,4 +127,4 @@ void print_chunk_size(outputStream* st, chunklevel_t lvl);

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSCHUNKLEVEL_HPP
#endif // SHARE_MEMORY_METASPACE_CHUNKLEVEL_HPP
Expand Up @@ -26,13 +26,13 @@
#include "precompiled.hpp"

#include "logging/log.hpp"
#include "memory/metaspace/msArena.hpp"
#include "memory/metaspace/msArenaGrowthPolicy.hpp"
#include "memory/metaspace/msChunkManager.hpp"
#include "memory/metaspace/msInternalStats.hpp"
#include "memory/metaspace/msRunningCounters.hpp"
#include "memory/metaspace/msSettings.hpp"
#include "memory/metaspace/msStatistics.hpp"
#include "memory/metaspace/chunkManager.hpp"
#include "memory/metaspace/internalStats.hpp"
#include "memory/metaspace/metaspaceArena.hpp"
#include "memory/metaspace/metaspaceArenaGrowthPolicy.hpp"
#include "memory/metaspace/metaspaceSettings.hpp"
#include "memory/metaspace/metaspaceStatistics.hpp"
#include "memory/metaspace/runningCounters.hpp"
#include "memory/metaspace.hpp"
#include "memory/metaspaceTracer.hpp"
#include "runtime/atomic.hpp"
Expand Down
Expand Up @@ -25,7 +25,7 @@

#include "precompiled.hpp"

#include "memory/metaspace/msCommitLimiter.hpp"
#include "memory/metaspace/commitLimiter.hpp"
#include "memory/metaspace.hpp"
#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
Expand Down
Expand Up @@ -23,11 +23,11 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSCOMMITLIMITER_HPP
#define SHARE_MEMORY_METASPACE_MSCOMMITLIMITER_HPP
#ifndef SHARE_MEMORY_METASPACE_COMMITLIMITER_HPP
#define SHARE_MEMORY_METASPACE_COMMITLIMITER_HPP

#include "memory/allocation.hpp"
#include "memory/metaspace/msCounter.hpp"
#include "memory/metaspace/counters.hpp"

namespace metaspace {

Expand Down Expand Up @@ -81,4 +81,4 @@ class CommitLimiter : public CHeapObj<mtMetaspace> {

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSCOMMITLIMITER_HPP
#endif // SHARE_MEMORY_METASPACE_COMMITLIMITER_HPP
Expand Up @@ -25,9 +25,9 @@

#include "precompiled.hpp"

#include "memory/metaspace/msCommitMask.hpp"
#include "memory/metaspace/msCommon.hpp"
#include "memory/metaspace/msSettings.hpp"
#include "memory/metaspace/commitMask.hpp"
#include "memory/metaspace/metaspaceCommon.hpp"
#include "memory/metaspace/metaspaceSettings.hpp"
#include "runtime/stubRoutines.hpp"

#include "utilities/align.hpp"
Expand Down
Expand Up @@ -23,8 +23,8 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSCOMMITMASK_HPP
#define SHARE_MEMORY_METASPACE_MSCOMMITMASK_HPP
#ifndef SHARE_MEMORY_METASPACE_COMMITMASK_HPP
#define SHARE_MEMORY_METASPACE_COMMITMASK_HPP

#include "utilities/debug.hpp"
#include "utilities/bitMap.hpp"
Expand Down Expand Up @@ -175,4 +175,4 @@ class CommitMask : public CHeapBitMap {

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSCOMMITMASK_HPP
#endif // SHARE_MEMORY_METASPACE_COMMITMASK_HPP
Expand Up @@ -23,8 +23,8 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSCOUNTER_HPP
#define SHARE_MEMORY_METASPACE_MSCOUNTER_HPP
#ifndef SHARE_MEMORY_METASPACE_COUNTERS_HPP
#define SHARE_MEMORY_METASPACE_COUNTERS_HPP

#include "metaprogramming/isSigned.hpp"
#include "runtime/atomic.hpp"
Expand Down Expand Up @@ -179,5 +179,5 @@ typedef AbstractMemoryRangeCounter<unsigned, size_t> MemRangeCounter;

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSCOUNTER_HPP
#endif // SHARE_MEMORY_METASPACE_COUNTERS_HPP

Expand Up @@ -24,7 +24,7 @@
*/

#include "precompiled.hpp"
#include "memory/metaspace/msFreeBlocks.hpp"
#include "memory/metaspace/freeBlocks.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/debug.hpp"

Expand Down
Expand Up @@ -23,14 +23,14 @@
*
*/

#ifndef SHARE_MEMORY_METASPACE_MSFREEBLOCKS_HPP
#define SHARE_MEMORY_METASPACE_MSFREEBLOCKS_HPP
#ifndef SHARE_MEMORY_METASPACE_FREEBLOCKS_HPP
#define SHARE_MEMORY_METASPACE_FREEBLOCKS_HPP

#include "memory/allocation.hpp"

#include "memory/metaspace/msBinList.hpp"
#include "memory/metaspace/msBlockTree.hpp"
#include "memory/metaspace/msCounter.hpp"
#include "memory/metaspace/binList.hpp"
#include "memory/metaspace/blockTree.hpp"
#include "memory/metaspace/counters.hpp"

#include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
Expand Down Expand Up @@ -112,4 +112,4 @@ class FreeBlocks : public CHeapObj<mtMetaspace> {

} // namespace metaspace

#endif // SHARE_MEMORY_METASPACE_MSFREEBLOCKS_HPP
#endif // SHARE_MEMORY_METASPACE_FREEBLOCKS_HPP

0 comments on commit 731f795

Please sign in to comment.