6964458: Reimplement class meta-data storage to use native memory

Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
This commit is contained in:
Jon Masamitsu 2012-09-01 13:25:18 -04:00 committed by Coleen Phillimore
parent 36eee7c8c8
commit 5c58d27aac
853 changed files with 26124 additions and 82956 deletions

View file

@ -142,7 +142,7 @@ int DTraceJSDT::pd_activate(
++strcount;
for(int prbc = 0; prbc < provider->probe_count; ++prbc) {
JVM_DTraceProbe* p = &(provider->probes[prbc]);
Symbol* sig = JNIHandles::resolve_jmethod_id(p->method)->signature();
Symbol* sig = Method::resolve_jmethod_id(p->method)->signature();
// function + name + one per argument
strcount += 2 + ArgumentCount(sig).size();
}
@ -178,7 +178,7 @@ int DTraceJSDT::pd_activate(
stroffs[curstr++] = string_index;
string_index += strlen(name) + 1;
Symbol* sig = JNIHandles::resolve_jmethod_id(p->method)->signature();
Symbol* sig = Method::resolve_jmethod_id(p->method)->signature();
SignatureStream ss(sig);
for ( ; !ss.at_return_type(); ss.next()) {
BasicType bt = ss.type();
@ -227,7 +227,7 @@ int DTraceJSDT::pd_activate(
uint32_t argscount = 0;
for(int prbc = 0; prbc < provider->probe_count; ++prbc) {
JVM_DTraceProbe* p = &(provider->probes[prbc]);
Symbol* sig = JNIHandles::resolve_jmethod_id(p->method)->signature();
Symbol* sig = Method::resolve_jmethod_id(p->method)->signature();
argscount += ArgumentCount(sig).size();
}
secoffs[argoffs_sec] = align_size_up(offset, alignment_for[ARG_OFFSETS]);
@ -298,7 +298,7 @@ int DTraceJSDT::pd_activate(
strcpy(str, name);
str += strlen(name) + 1;
Symbol* sig = JNIHandles::resolve_jmethod_id(p->method)->signature();
Symbol* sig = Method::resolve_jmethod_id(p->method)->signature();
SignatureStream ss(sig);
for ( ; !ss.at_return_type(); ss.next()) {
BasicType bt = ss.type();
@ -377,7 +377,7 @@ int DTraceJSDT::pd_activate(
uint32_t argsoffs = 0;
for(int prbc = 0; prbc < provider->probe_count; ++prbc) {
JVM_DTraceProbe* probe = &(provider->probes[prbc]);
methodOop m = JNIHandles::resolve_jmethod_id(probe->method);
Method* m = Method::resolve_jmethod_id(probe->method);
int arg_count = ArgumentCount(m->signature()).size();
assert(m->code() != NULL, "must have an nmethod");
@ -415,7 +415,7 @@ int DTraceJSDT::pd_activate(
uint32_t* pof =
(uint32_t*)(dof + sec->dofs_offset + sizeof(uint32_t) * prbc);
JVM_DTraceProbe* probe = &(provider->probes[prbc]);
methodOop m = JNIHandles::resolve_jmethod_id(probe->method);
Method* m = Method::resolve_jmethod_id(probe->method);
*pof = m->code()->trap_offset();
}
@ -433,7 +433,7 @@ int DTraceJSDT::pd_activate(
uint8_t* par = (uint8_t*)(dof + sec->dofs_offset);
for (int prbc = 0; prbc < provider->probe_count; ++prbc) {
JVM_DTraceProbe* p = &(provider->probes[prbc]);
Symbol* sig = JNIHandles::resolve_jmethod_id(p->method)->signature();
Symbol* sig = Method::resolve_jmethod_id(p->method)->signature();
uint8_t count = (uint8_t)ArgumentCount(sig).size();
for (uint8_t i = 0; i < count; ++i) {
*par++ = i;