Request for review: 7150058: Allocate symbols from null boot loader to an arena for NMT
tom.rodriguez at oracle.com
Thu Mar 8 09:51:51 PST 2012
On Mar 8, 2012, at 7:55 AM, Coleen Phillimore wrote:
> Please review this change to allocate symbols from the boot class loader into a global arena. This change reduces reporting traffic at startup for the native memory tracking project in development. It is also useful for class data sharing in the permgen elimination project, also in development. I had to increase the SharedMiscSize because ResourceObj in debug mode is 2 extra pointers.
I think the decision about where a symbol is allocated should be inside of operator new instead of up in SymbolTable.cpp. Why not pass the class loader all the way through?
Why is there a path where c_heap is being forced?
+ // Create a new symbol.
+ Symbol* sym = allocate_symbol(name, len, true, CHECK_NULL);
+ assert(sym->equals((char*)name, len), "symbol must be properly initialized");
Maybe this isn't wired up?
+ bool c_heap = class_loader() != NULL;
Symbol* sym = table->basic_add(index, (u1*)names[i], lengths[i],
- hashValues[i], CHECK);
+ hashValues[i], CHECK);
> open webrev at http://cr.openjdk.java.net/~coleenp/symbol-arena
> bug link at http://bugs.sun.com/view_bug.do?bug_id=7150058
More information about the hotspot-runtime-dev