-
Bug
-
Resolution: Fixed
-
P4
-
1.3.0
-
b09
-
generic
-
solaris_2.5.1
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2188204 | 7 | Vladimir Kozlov | P4 | Closed | Fixed | b83 |
JDK-2190014 | 6u21 | Vladimir Kozlov | P4 | Resolved | Fixed | b01 |
Presently the VM is started with a fixed limit on the size of
generated code. When classes gets unloaded, the corresponding
nmethods gets flushed from the code cache.
If the code cache limit is reached, no more compilation occurs,
even is class unloading occurs at a future point. For most
programs this is a non-issue, but this failure has been observed
for the Cloudscape big app, which compiles SQL->Java on the fly
without ever unloading code.
A reasonable solution would be to write the currect GC invocation
count in an nmethod whenever it is seen on the stack (already done
for non-reentrant methods). If the code cache fills up, we can
force deoptimization and flushing of the nmethods with the lowest
GC counts.
steffen.grarup@eng 2000-08-07
An improved version of the scheme above would be to force frequent
safepoints when the code cache get close to the limit. At each
safepoint we could write the current GC invocation count in all
nmethods seen on stack. This would greate reduce the risk of
flushing a hot non-allocating nmethod.
steffen.grarup@eng 2000-10-16
generated code. When classes gets unloaded, the corresponding
nmethods gets flushed from the code cache.
If the code cache limit is reached, no more compilation occurs,
even is class unloading occurs at a future point. For most
programs this is a non-issue, but this failure has been observed
for the Cloudscape big app, which compiles SQL->Java on the fly
without ever unloading code.
A reasonable solution would be to write the currect GC invocation
count in an nmethod whenever it is seen on the stack (already done
for non-reentrant methods). If the code cache fills up, we can
force deoptimization and flushing of the nmethods with the lowest
GC counts.
steffen.grarup@eng 2000-08-07
An improved version of the scheme above would be to force frequent
safepoints when the code cache get close to the limit. At each
safepoint we could write the current GC invocation count in all
nmethods seen on stack. This would greate reduce the risk of
flushing a hot non-allocating nmethod.
steffen.grarup@eng 2000-10-16
- backported by
-
JDK-2190014 Evict nmethods when code cache gets full
-
- Resolved
-
-
JDK-2188204 Evict nmethods when code cache gets full
-
- Closed
-
- relates to
-
JDK-6976372 # assert(_owner == Thread::current()) failed: invariant
-
- Closed
-
-
JDK-6928717 HS17 fails to build with SS11 C++
-
- Resolved
-
-
JDK-6935466 new CodeCache flushing code is not guarded by the flag
-
- Resolved
-
-
JDK-6957825 "CodeCache is full. Compiler has been disabled" after 23 hours
-
- Closed
-
(1 relates to)