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

AMD64 specJBB performance is 30% slower than it should be

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 5.0
    • 5.0
    • hotspot
    • None
    • b39
    • x86
    • generic

      The performance of running specJBB on the 64 bit Windows or Linux AMD64
      VM is not at the level that it should be. It is approx 30% less
      that it should be.

      After looking into this issue, I discovered that we are failing to
      compile some critical methods resulting in this loss of performance.

      We are failing to compile the following method with the error "local
      schedule failed".

           java.util.concurrent.AtomicLong.compareAndSet

      The compiler was trying to inline unsafe.compareAndSwapLong() at the
      time of the failed compilation.

      The performance regression is caused by the fact that we are interpreting
      this method which is used quite heavily in specJBB.

      The failure to compile has been tracked down to the hotspot file
      src/share/vm/opto/library_call.cpp in the routine inline_unsafe_CAS.

      The IR that is generated is invalid. Steve Goldman has suggested a
      workaround where we move the following code line to after the first
      2 insert_mem_bar calls.

      Node *mem = memory(alias_idx);

      I have tested this fix and it does solve the problem.

            bobv Bob Vandette (Inactive)
            bobv Bob Vandette (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: