47 #include "utilities/debug.hpp"
48 #include "utilities/formatBuffer.hpp"
49 #include "utilities/globalDefinitions.hpp"
50 #include "utilities/vmError.hpp"
51
52
53 using namespace metaspace;
54
55 MetaWord* last_allocated = 0;
56
57 size_t Metaspace::_compressed_class_space_size;
58 const MetaspaceTracer* Metaspace::_tracer = NULL;
59
60 DEBUG_ONLY(bool Metaspace::_frozen = false;)
61
62 static const char* space_type_name(Metaspace::MetaspaceType t) {
63 const char* s = NULL;
64 switch (t) {
65 case Metaspace::StandardMetaspaceType: s = "Standard"; break;
66 case Metaspace::BootMetaspaceType: s = "Boot"; break;
67 case Metaspace::UnsafeAnonymousMetaspaceType: s = "UnsafeAnonymous"; break;
68 case Metaspace::ReflectionMetaspaceType: s = "Reflection"; break;
69 default: ShouldNotReachHere();
70 }
71 return s;
72 }
73
74 volatile size_t MetaspaceGC::_capacity_until_GC = 0;
75 uint MetaspaceGC::_shrink_factor = 0;
76
77 // BlockFreelist methods
78
79 // VirtualSpaceNode methods
80
81 // MetaspaceGC methods
82
83 // VM_CollectForMetadataAllocation is the vm operation used to GC.
84 // Within the VM operation after the GC the attempt to allocate the metadata
85 // should succeed. If the GC did not free enough space for the metaspace
86 // allocation, the HWM is increased so that another virtualspace will be
87 // allocated for the metadata. With perm gen the increase in the perm
|
47 #include "utilities/debug.hpp"
48 #include "utilities/formatBuffer.hpp"
49 #include "utilities/globalDefinitions.hpp"
50 #include "utilities/vmError.hpp"
51
52
53 using namespace metaspace;
54
55 MetaWord* last_allocated = 0;
56
57 size_t Metaspace::_compressed_class_space_size;
58 const MetaspaceTracer* Metaspace::_tracer = NULL;
59
60 DEBUG_ONLY(bool Metaspace::_frozen = false;)
61
62 static const char* space_type_name(Metaspace::MetaspaceType t) {
63 const char* s = NULL;
64 switch (t) {
65 case Metaspace::StandardMetaspaceType: s = "Standard"; break;
66 case Metaspace::BootMetaspaceType: s = "Boot"; break;
67 case Metaspace::ShortLivedMetaspaceType: s = "ShortLived"; break;
68 case Metaspace::ReflectionMetaspaceType: s = "Reflection"; break;
69 default: ShouldNotReachHere();
70 }
71 return s;
72 }
73
74 volatile size_t MetaspaceGC::_capacity_until_GC = 0;
75 uint MetaspaceGC::_shrink_factor = 0;
76
77 // BlockFreelist methods
78
79 // VirtualSpaceNode methods
80
81 // MetaspaceGC methods
82
83 // VM_CollectForMetadataAllocation is the vm operation used to GC.
84 // Within the VM operation after the GC the attempt to allocate the metadata
85 // should succeed. If the GC did not free enough space for the metaspace
86 // allocation, the HWM is increased so that another virtualspace will be
87 // allocated for the metadata. With perm gen the increase in the perm
|