United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6863023 need non-perm oops in code cache for JSR 292
6863023 : need non-perm oops in code cache for JSR 292

Details
Type:
Bug
Submit Date:
2009-07-22
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:
hs17

Related Reports
Backport:
Backport:
Relates:
Relates:
Relates:
Relates:
Relates:

Sub Tasks

Description
In order to inline method handles at invokedynamic instructions, it is necessary to manipulate MethodHandle and CallSite constants from generated code.  Since these objects are created by ordinary user code and subject to usual GC, they are not preallocated in the perm gen.

Currently compiled code requires that any oop embedded as an instruction constant or any other nmethod part must be OopDesc::is_perm.  For example, internal method objects and classes and interned strings are permanent so that they can be manipulated from compiled code.

This restriction is a bug for JSR 292.  Luckily, there is a simple fix.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/148e5441d916
                                     
2009-09-16



Hardware and Software, Engineered to Work Together