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

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

    Details

    • Type: Enhancement
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: 9, 10
    • Fix Version/s: tbd
    • Component/s: hotspot
    • Labels:

      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

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

                Dates

                • Created:
                  Updated: