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

C1: multiple compilation bailouts due to CodeBuffer overflow on nashorn/octane

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Unresolved
    • P4
    • tbd
    • 9, 10
    • hotspot

    Description

      There are multiple compilation bailouts in C1 when running octane/nashorn.
      For example, Box2D has

      NMethodSizeLimit is what guides the compiler.

      My observations during quick experiments with changing the limit (512k, Box2D on linux-amd64):
         * default value:
            - 1st iteration: 9-10s
            - <1s: ~9-10th iteration:
            - <100ms: ~100-110th iteration

         * increase to 2M:
           - bailouts are completely eliminated;
           - warmup slows down:
              - 1st: 10-11s; <1s: 15-20th iteration; <100ms: 110-120th iteration

         * decrease to 128K:
           - 4x more bailouts
           - at the beginning, slightly improves warmup, but introduces plateau on a higher level (~130-150ms till ~130-140th iter):
              - 1st: ~9s; <1s: 7-8th; <100ms: 140th

      It seems heavy compilations can stuck compiling and considerably reduce code generation throughput on levels 1/2/3, which negatively impacts application warmup. On the other hand, using interpreter more (due to more bailouts) gives slight improvements during first dozen iterations, it considerably worsen performance until C2 kicks in.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              vlivanov Vladimir Ivanov
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: