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

[AOT] missing implementation of far virtual calls from nmethod to aot methods

    XMLWordPrintable

    Details

    • Subcomponent:
    • CPU:
      generic
    • OS:
      generic

      Description

      Due to missing implementation of far virtual calls from nmethod to aot methods we have huge number of IC misses because of next code in generate_i2c2i_adapters():

          // Method might have been compiled since the call site was patched to
          // interpreted if that is the case treat it as a miss so we can get
          // the call site corrected.
          __ cmpptr(Address(rbx, in_bytes(Method::code_offset())), (int32_t)NULL_WORD);
          __ jcc(Assembler::equal, skip_fixup);
          __ jump(RuntimeAddress(SharedRuntime::get_ic_miss_stub()));


      These cause big performance regression with AOT when aot libraries are loaded far from codecache (usually happens on solaris-x86):

      Tiered C1/C2 (compiling jvmci: 207 classes):
      8.924
      9.019
      8.697
      8.495
      8.991
      Tiered AOT (compiling jvmci: 207 classes):
      43.170
      49.613
      48.459
      42.117
      49.339

        Attachments

          Activity

            People

            Assignee:
            kvn Vladimir Kozlov
            Reporter:
            kvn Vladimir Kozlov
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: