United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6463133 Deoptimization should not use code patching
6463133 : Deoptimization should not use code patching

Details
Type:
Enhancement
Submit Date:
2006-08-23
Status:
Resolved
Updated Date:
2010-04-02
Project Name:
JDK
Resolved Date:
2007-01-17
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
6
Fixed Versions:
hs10

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

Sub Tasks

Description
Deoptimization is susceptible to failure because it uses cross code patching. At the moment we know of no cpu's where this fails but we may well be running out of time. Newer Intel processors have an errata which isn't planned to be fixed that hints that we could fail.

We should use a deopt scheme that uses return address patching instead. This also allows us to go to single frame deopt. a capability we lost when lazy deopt was implemented.

                                    

Comments
EVALUATION

From the putback comment:

This converts deoptimization to no longer do patching of code
and now only patches return address. This made a rather large
change to the frame object so that now a frame always carries
along the codeBlob it refers to if it in fact does refer to
a codeBlob. This removes lots of redundant CodeCache::find_blob
calls. The testing of this fix which obviously changes the way
frames look on the stack discovered that both SA and pstack support
have been broken. pstack support has been been broken for years.
                                     
2007-01-17



Hardware and Software, Engineered to Work Together