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

compiler/jsr292/ContinuousCallSiteTargetChange.java times out on SPARC

    Details

    • Subcomponent:
    • Resolved In Build:
      b15
    • CPU:
      sparc

      Backports

        Description

        compiler/jsr292/ContinuousCallSiteTargetChange.java occasionally times out on SPARC.

        Analysis:

        The timeouts occur when the system is under load. Then the list of dependent nmethods of the dynamic
        call site of the PingPongTest gets as long as 1500 nmethods. The list is iterated in
        DependencyContext::mark_dependent_nmethods() every time the call site target is changed. And this
        takes longer and longer as the list grows. Note that dependents are removed only when they are made
        zombie, but this doesn't happen here.

        The list of dependent nmethods is virtually empty if the system is idle, because then the target is
        changed faster than the method holding the call site gets compiled. When the jit finishes a
        compilation it discards the new nmethod, because the call site target was changed already.

        See attachment howto_reproduce_and_demo_of_potential_fix.txt

        See RFC thread http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2020-March/037349.html

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  rrich Richard Reingruber
                  Reporter:
                  thartmann Tobias Hartmann
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  7 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: