The data is from DaCapo benchmark xalan.
There are duplicated trampolines in C2 NMethod Stub Code sections.
For example, java.util.zip.ZipUtils::SH, where three trampolines to 0x0000ffff89446040 were created:
[Stub Code]
0x0000ffff90fa1640: ldr x8, 0x0000ffff90fa1648 ; {no_reloc}
0x0000ffff90fa1644: br x8
0x0000ffff90fa1648: .inst 0x89446040 ; undefined
0x0000ffff90fa164c: udf #65535
0x0000ffff90fa1650: ldr x8, 0x0000ffff90fa1658 ; {trampoline_stub}
0x0000ffff90fa1654: br x8
0x0000ffff90fa1658: .inst 0x89446040 ; undefined
0x0000ffff90fa165c: udf #65535
0x0000ffff90fa1660: ldr x8, 0x0000ffff90fa1668 ; {trampoline_stub}
0x0000ffff90fa1664: br x8
0x0000ffff90fa1668: .inst 0x89446040 ; undefined
0x0000ffff90fa166c: udf #65535
Their relocations are:
relocInfo@0x0000ffff90fa150e [type=6(runtime_call) addr=0x0000ffff90fa15bc offset=28] | [destination=0x0000ffff89446040]
@0x0000ffff90fa1510: 601c
relocInfo@0x0000ffff90fa1510 [type=6(runtime_call) addr=0x0000ffff90fa15d8 offset=28] | [destination=0x0000ffff89446040]
@0x0000ffff90fa1512: 6018
relocInfo@0x0000ffff90fa1512 [type=6(runtime_call) addr=0x0000ffff90fa15f0 offset=24] | [destination=0x0000ffff89446040]
@0x0000ffff90fa1514: f0608010
relocInfo@0x0000ffff90fa1520 [type=13(trampoline_stub) addr=0x0000ffff90fa1640 offset=0 data=-124] | [trampoline owner=0x0000ffff90fa15bc]
@0x0000ffff90fa1522: f801ff68d010
relocInfo@0x0000ffff90fa1526 [type=13(trampoline_stub) addr=0x0000ffff90fa1650 offset=16 data=-152] | [trampoline owner=0x0000ffff90fa15d8]
@0x0000ffff90fa1528: f801ff50d010
relocInfo@0x0000ffff90fa152c [type=13(trampoline_stub) addr=0x0000ffff90fa1660 offset=16 data=-176] | [trampoline owner=0x0000ffff90fa15f0]
@0x0000ffff90fa152e: 6010
CodeCache:
CodeHeap 'non-profiled nmethods': size=118592Kb used=860Kb max_used=860Kb free=117731Kb
bounds [0x0000ffff90fa1000, 0x0000ffff91211000, 0x0000ffff98371000]
CodeHeap 'profiled nmethods': size=118588Kb used=3946Kb max_used=3946Kb free=114641Kb
bounds [0x0000ffff89bd2000, 0x0000ffff89fb2000, 0x0000ffff90fa1000]
CodeHeap 'non-nmethods': size=8580Kb used=5067Kb max_used=5244Kb free=3512Kb
bounds [0x0000ffff89371000, 0x0000ffff898b1000, 0x0000ffff89bd2000]
Corresponding code:
0x0000ffff90fa15bc: bl 0x0000ffff90fa1640 ; ImmutableOopMap {[8]=Oop }
;*baload {reexecute=0 rethrow=0 return_oop=0}
; - java.util.zip.ZipUtils::SH@2 (line 203)
; {runtime_call UncommonTrapBlob}
;; uncommon trap returned which should never happen
0x0000ffff90fa15d8: bl 0x0000ffff90fa1650 ; ImmutableOopMap {[0]=Oop }
;*baload {reexecute=0 rethrow=0 return_oop=0}
; - java.util.zip.ZipUtils::SH@11 (line 203)
; {runtime_call UncommonTrapBlob}
;; uncommon trap returned which should never happen
0x0000ffff90fa15f0: bl 0x0000ffff90fa1660 ; ImmutableOopMap {}
;*baload {reexecute=0 rethrow=0 return_oop=0}
; - java.util.zip.ZipUtils::SH@2 (line 203)
; {runtime_call UncommonTrapBlob}
There are duplicated trampolines in C2 NMethod Stub Code sections.
For example, java.util.zip.ZipUtils::SH, where three trampolines to 0x0000ffff89446040 were created:
[Stub Code]
0x0000ffff90fa1640: ldr x8, 0x0000ffff90fa1648 ; {no_reloc}
0x0000ffff90fa1644: br x8
0x0000ffff90fa1648: .inst 0x89446040 ; undefined
0x0000ffff90fa164c: udf #65535
0x0000ffff90fa1650: ldr x8, 0x0000ffff90fa1658 ; {trampoline_stub}
0x0000ffff90fa1654: br x8
0x0000ffff90fa1658: .inst 0x89446040 ; undefined
0x0000ffff90fa165c: udf #65535
0x0000ffff90fa1660: ldr x8, 0x0000ffff90fa1668 ; {trampoline_stub}
0x0000ffff90fa1664: br x8
0x0000ffff90fa1668: .inst 0x89446040 ; undefined
0x0000ffff90fa166c: udf #65535
Their relocations are:
relocInfo@0x0000ffff90fa150e [type=6(runtime_call) addr=0x0000ffff90fa15bc offset=28] | [destination=0x0000ffff89446040]
@0x0000ffff90fa1510: 601c
relocInfo@0x0000ffff90fa1510 [type=6(runtime_call) addr=0x0000ffff90fa15d8 offset=28] | [destination=0x0000ffff89446040]
@0x0000ffff90fa1512: 6018
relocInfo@0x0000ffff90fa1512 [type=6(runtime_call) addr=0x0000ffff90fa15f0 offset=24] | [destination=0x0000ffff89446040]
@0x0000ffff90fa1514: f0608010
relocInfo@0x0000ffff90fa1520 [type=13(trampoline_stub) addr=0x0000ffff90fa1640 offset=0 data=-124] | [trampoline owner=0x0000ffff90fa15bc]
@0x0000ffff90fa1522: f801ff68d010
relocInfo@0x0000ffff90fa1526 [type=13(trampoline_stub) addr=0x0000ffff90fa1650 offset=16 data=-152] | [trampoline owner=0x0000ffff90fa15d8]
@0x0000ffff90fa1528: f801ff50d010
relocInfo@0x0000ffff90fa152c [type=13(trampoline_stub) addr=0x0000ffff90fa1660 offset=16 data=-176] | [trampoline owner=0x0000ffff90fa15f0]
@0x0000ffff90fa152e: 6010
CodeCache:
CodeHeap 'non-profiled nmethods': size=118592Kb used=860Kb max_used=860Kb free=117731Kb
bounds [0x0000ffff90fa1000, 0x0000ffff91211000, 0x0000ffff98371000]
CodeHeap 'profiled nmethods': size=118588Kb used=3946Kb max_used=3946Kb free=114641Kb
bounds [0x0000ffff89bd2000, 0x0000ffff89fb2000, 0x0000ffff90fa1000]
CodeHeap 'non-nmethods': size=8580Kb used=5067Kb max_used=5244Kb free=3512Kb
bounds [0x0000ffff89371000, 0x0000ffff898b1000, 0x0000ffff89bd2000]
Corresponding code:
0x0000ffff90fa15bc: bl 0x0000ffff90fa1640 ; ImmutableOopMap {[8]=Oop }
;*baload {reexecute=0 rethrow=0 return_oop=0}
; - java.util.zip.ZipUtils::SH@2 (line 203)
; {runtime_call UncommonTrapBlob}
;; uncommon trap returned which should never happen
0x0000ffff90fa15d8: bl 0x0000ffff90fa1650 ; ImmutableOopMap {[0]=Oop }
;*baload {reexecute=0 rethrow=0 return_oop=0}
; - java.util.zip.ZipUtils::SH@11 (line 203)
; {runtime_call UncommonTrapBlob}
;; uncommon trap returned which should never happen
0x0000ffff90fa15f0: bl 0x0000ffff90fa1660 ; ImmutableOopMap {}
;*baload {reexecute=0 rethrow=0 return_oop=0}
; - java.util.zip.ZipUtils::SH@2 (line 203)
; {runtime_call UncommonTrapBlob}
- relates to
-
JDK-8292632 compiler/sharedstubs/SharedTrampolineTest.java fails with "Error: VM option 'PrintRelocations' is develop and is available only in debug version of VM."
- Resolved
-
JDK-8297763 Fix missing stub code expansion before align() in shared trampolines
- Resolved
-
JDK-8318681 AArch64: C1 tests for JDK-8280152
- Open
-
JDK-8320081 [JVMCI] reuse aarch64 call trampolines
- Open
(1 links to)