-
Bug
-
Resolution: Fixed
-
P4
-
8, 9
-
WhiteBox API
-
b40
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8083465 | emb-9 | Tobias Hartmann | P4 | Resolved | Fixed | master |
JDK-8065437 | 8u45 | Tobias Hartmann | P4 | Resolved | Fixed | b01 |
JDK-8062730 | 8u40 | Tobias Hartmann | P4 | Resolved | Fixed | b14 |
JDK-8070877 | emb-8u47 | Tobias Hartmann | P4 | Resolved | Fixed | team |
Invoking Whitebox.deoptimizeMethod() on a method that has multiple OSR compiled versions only deoptimizes one OSR method.
The problem is in 'WB_DeoptimizeMethod' in whitebox.cpp:
int bci = InvocationEntryBci;
while ((code = mh->lookup_osr_nmethod_for(bci, CompLevel_none, false)) != NULL) {
code->mark_for_deoptimization();
++result;
bci = code->osr_entry_bci() + 1;
}
After incrementing the bci 'lookup_osr_nmethod_for()' returns NULL and we exit the loop.
The problem is in 'WB_DeoptimizeMethod' in whitebox.cpp:
int bci = InvocationEntryBci;
while ((code = mh->lookup_osr_nmethod_for(bci, CompLevel_none, false)) != NULL) {
code->mark_for_deoptimization();
++result;
bci = code->osr_entry_bci() + 1;
}
After incrementing the bci 'lookup_osr_nmethod_for()' returns NULL and we exit the loop.
- backported by
-
JDK-8062730 Whitebox.deoptimizeMethod() does not deoptimize all OSR versions of method
-
- Resolved
-
-
JDK-8065437 Whitebox.deoptimizeMethod() does not deoptimize all OSR versions of method
-
- Resolved
-
-
JDK-8070877 Whitebox.deoptimizeMethod() does not deoptimize all OSR versions of method
-
- Resolved
-
-
JDK-8083465 Whitebox.deoptimizeMethod() does not deoptimize all OSR versions of method
-
- Resolved
-
- relates to
-
JDK-8062169 Multiple OSR compilations issued for same bci
-
- Resolved
-