Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8280152

AArch64: Reuse runtime call trampolines

    XMLWordPrintable

Details

    • b11
    • aarch64

    Description

      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}

      Attachments

        Issue Links

          Activity

            People

              eastigeevich Evgeny Astigeevich
              eastigeevich Evgeny Astigeevich
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: