Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8083469 | emb-9 | Tobias Hartmann | P3 | Resolved | Fixed | master |
JDK-8065436 | 8u45 | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8062534 | 8u40 | Tobias Hartmann | P3 | Resolved | Fixed | b14 |
JDK-8070876 | emb-8u47 | Tobias Hartmann | P3 | Resolved | Fixed | team |
While fixing JDK-8061817 I noticed that under some circumstances the VM performs multiple OSR compilations for the same method/bci flooding the JIT compilers with requests. The compiled versions are not used and the VM continues interpreting the method and issuing new requests.
It only happens if we have several OSR versions of the same method for different bci's.
Logs look like this:
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 79872 hot: yes
353 55 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 80896 hot: yes
355 56 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 81920 hot: yes
359 57 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 82944 hot: yes
362 58 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 83968 hot: yes
365 59 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 84992 hot: yes
367 60 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 86016 hot: yes
370 61 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
[...]
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 118784 hot: yes
457 93 % b 4 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (4) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
460 92 % 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes) made not entrant
It only happens if we have several OSR versions of the same method for different bci's.
Logs look like this:
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 79872 hot: yes
353 55 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 80896 hot: yes
355 56 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 81920 hot: yes
359 57 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 82944 hot: yes
362 58 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 83968 hot: yes
365 59 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 84992 hot: yes
367 60 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 86016 hot: yes
370 61 % b 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (2) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
[...]
request: DeoptimizeMultipleOSRTest::triggerOSR osr_bci: 89 comment: tiered count: 118784 hot: yes
457 93 % b 4 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes)
Installing osr method (4) DeoptimizeMultipleOSRTest.triggerOSR(ZJ)V @ 89
460 92 % 2 DeoptimizeMultipleOSRTest::triggerOSR @ 89 (114 bytes) made not entrant
- backported by
-
JDK-8062534 Multiple OSR compilations issued for same bci
-
- Resolved
-
-
JDK-8065436 Multiple OSR compilations issued for same bci
-
- Resolved
-
-
JDK-8070876 Multiple OSR compilations issued for same bci
-
- Resolved
-
-
JDK-8083469 Multiple OSR compilations issued for same bci
-
- Resolved
-
- relates to
-
JDK-8061817 Whitebox.deoptimizeMethod() does not deoptimize all OSR versions of method
-
- Resolved
-