< prev index next >
src/hotspot/share/memory/metaspace/metaspaceCommon.cpp
Print this page
rev 50187 : imported patch metaspace-split
*** 24,38 ****
*/
#include "precompiled.hpp"
#include "memory/metaspace/metaspaceCommon.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/ostream.hpp"
namespace metaspace {
! namespace internals {
// Print a size, in words, scaled.
void print_scaled_words(outputStream* st, size_t word_size, size_t scale, int width) {
print_human_readable_size(st, word_size * sizeof(MetaWord), scale, width);
}
--- 24,41 ----
*/
#include "precompiled.hpp"
#include "memory/metaspace/metaspaceCommon.hpp"
+ #include "memory/metaspace/virtualSpaceNode.hpp"
+ #include "utilities/debug.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/ostream.hpp"
namespace metaspace {
!
! DEBUG_ONLY(internal_statistics_t g_internal_statistics;)
// Print a size, in words, scaled.
void print_scaled_words(outputStream* st, size_t word_size, size_t scale, int width) {
print_human_readable_size(st, word_size * sizeof(MetaWord), scale, width);
}
*** 126,132 ****
st->print("%3.0f%%", p);
}
}
}
! } // namespace internals
} // namespace metaspace
--- 129,200 ----
st->print("%3.0f%%", p);
}
}
}
! // Returns size of this chunk type.
! size_t get_size_for_nonhumongous_chunktype(ChunkIndex chunktype, bool is_class) {
! assert(is_valid_nonhumongous_chunktype(chunktype), "invalid chunk type.");
! size_t size = 0;
! if (is_class) {
! switch(chunktype) {
! case SpecializedIndex: size = ClassSpecializedChunk; break;
! case SmallIndex: size = ClassSmallChunk; break;
! case MediumIndex: size = ClassMediumChunk; break;
! default:
! ShouldNotReachHere();
! }
! } else {
! switch(chunktype) {
! case SpecializedIndex: size = SpecializedChunk; break;
! case SmallIndex: size = SmallChunk; break;
! case MediumIndex: size = MediumChunk; break;
! default:
! ShouldNotReachHere();
! }
! }
! return size;
! }
!
! ChunkIndex get_chunk_type_by_size(size_t size, bool is_class) {
! if (is_class) {
! if (size == ClassSpecializedChunk) {
! return SpecializedIndex;
! } else if (size == ClassSmallChunk) {
! return SmallIndex;
! } else if (size == ClassMediumChunk) {
! return MediumIndex;
! } else if (size > ClassMediumChunk) {
! // A valid humongous chunk size is a multiple of the smallest chunk size.
! assert(is_aligned(size, ClassSpecializedChunk), "Invalid chunk size");
! return HumongousIndex;
! }
! } else {
! if (size == SpecializedChunk) {
! return SpecializedIndex;
! } else if (size == SmallChunk) {
! return SmallIndex;
! } else if (size == MediumChunk) {
! return MediumIndex;
! } else if (size > MediumChunk) {
! // A valid humongous chunk size is a multiple of the smallest chunk size.
! assert(is_aligned(size, SpecializedChunk), "Invalid chunk size");
! return HumongousIndex;
! }
! }
! ShouldNotReachHere();
! return (ChunkIndex)-1;
! }
!
! ChunkIndex next_chunk_index(ChunkIndex i) {
! assert(i < NumberOfInUseLists, "Out of bound");
! return (ChunkIndex) (i+1);
! }
!
! ChunkIndex prev_chunk_index(ChunkIndex i) {
! assert(i > ZeroIndex, "Out of bound");
! return (ChunkIndex) (i-1);
! }
!
!
} // namespace metaspace
+
< prev index next >