<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>It wouldn't hurt to file a bug.  If the same method keeps getting
      compiled over and over then it would be good to find out why. 
      Some flags that might help: -XX:+PrintCompilation
      -XX:+LogCompilation and also maybe -XX:+TraceDeoptimization.  It
      could be OSR if DispatchThread.run()+788 is a branch, or just a
      regular compile if it is a method call.</p>
    <p>dl</p>
    <div class="moz-cite-prefix">On 11/14/25 12:28 AM, Wojciech KUDLA
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:DU5P191MB2416900E3361C69E02FDF519E0CAA@DU5P191MB2416.EURP191.PROD.OUTLOOK.COM">
      
      <meta name="Generator" content="Microsoft Word 15 (filtered medium)">
      <style>@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Aptos;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;
        mso-fareast-language:EN-US;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#467886;
        text-decoration:underline;}span.EmailStyle20
        {mso-style-type:personal-compose;
        font-family:"Aptos",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}div.WordSection1
        {page:WordSection1;}</style>
      <div class="WordSection1">
        <p class="MsoNormal">Hi,<br>
          <br>
          <o:p></o:p></p>
        <p class="MsoNormal">(Somehow this message didn’t make it
          through to hotspot-compiler-dev, so trying here)<o:p></o:p></p>
        <p class="MsoNormal"><br>
          We’ve observed a strange performance issue within our
          latency-sensitive application when running on jdk21 (tested
          with 21.0.3 and 21.0.8).<br>
          The impacted threads are pinned to their respective isolated
          cores so not expected to experience any disruptions with the
          exception of a regular hrtick but that executes in user
          context and is always a sub-microsecond thing.<br>
          First, we noticed that these threads started showing voluntary
          context switching. Since we avoid any non-vdso syscalls this
          was a strong indicator of some unintended locking going on and
          so we decided to capture user- and kernel-space stack traces
          for one such thread with a bit of eBPF.<br>
          It looks like we go into this death loop of OSRs (the only
          type of compilation activity known to me to halt execution on
          the impacted thread) and this happens tens of times per
          second.<br>
          Here’s the stack traces:<br>
          <br>
          <span style="font-family:"Courier New"">ustack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            __lll_unlock_wake+26<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompileBroker::compile_method(methodHandle const&, int,
            int, methodHandle const&, int,
            CompileTask::CompileReason, JavaThread*)+85<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::compile(methodHandle const&, int,
            CompLevel, JavaThread*)+456<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::event(methodHandle const&,
            methodHandle const&, int, int, CompLevel,
            CompiledMethod*, JavaThread*)+553<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow_inner(JavaThread*,
            unsigned char*)+331<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow(JavaThread*,
            unsigned char*)+27<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            Interpreter+15968<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">        void
com.hsbc.efx.actor.dispatcher.SingleThreadDispatcher$DispatchThread.run()+788<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">kstack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_trace_enter+686<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_trace_enter+686<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            do_syscall_64+326<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            entry_SYSCALL_64_after_hwframe+102<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">ustack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       __lll_unlock_wake+26<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompileBroker::compile_method(methodHandle const&, int,
            int, methodHandle const&, int,
            CompileTask::CompileReason, JavaThread*)+85<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::compile(methodHandle const&, int,
            CompLevel, JavaThread*)+456<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::event(methodHandle const&,
            methodHandle const&, int, int, CompLevel,
            CompiledMethod*, JavaThread*)+553<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow_inner(JavaThread*,
            unsigned char*)+331<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow(JavaThread*,
            unsigned char*)+27<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            Interpreter+15968<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">        void
com.hsbc.efx.actor.dispatcher.SingleThreadDispatcher$DispatchThread.run()+788<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">kstack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_slow_exit_work+179<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_slow_exit_work+179<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            do_syscall_64+365<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            entry_SYSCALL_64_after_hwframe+102<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">ustack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            __lll_unlock_wake+26<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::compile(methodHandle const&, int,
            CompLevel, JavaThread*)+456<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::event(methodHandle const&,
            methodHandle const&, int, int, CompLevel,
            CompiledMethod*, JavaThread*)+553<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow_inner(JavaThread*,
            unsigned char*)+331<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow(JavaThread*,
            unsigned char*)+27<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            Interpreter+15968<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">        void
com.hsbc.efx.actor.dispatcher.SingleThreadDispatcher$DispatchThread.run()+788<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">kstack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_trace_enter+686<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_trace_enter+686<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            do_syscall_64+326<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            entry_SYSCALL_64_after_hwframe+102<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">ustack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            __lll_unlock_wake+26<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::compile(methodHandle const&, int,
            CompLevel, JavaThread*)+456<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::event(methodHandle const&,
            methodHandle const&, int, int, CompLevel,
            CompiledMethod*, JavaThread*)+553<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow_inner(JavaThread*,
            unsigned char*)+331<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow(JavaThread*,
            unsigned char*)+27<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            Interpreter+15968<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">        void
com.hsbc.efx.actor.dispatcher.SingleThreadDispatcher$DispatchThread.run()+788<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">kstack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_slow_exit_work+179<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_slow_exit_work+179<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            do_syscall_64+365<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            entry_SYSCALL_64_after_hwframe+102<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">ustack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            __lll_lock_wait+29<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            DirectivesStack::getMatchingDirective(methodHandle
            const&, AbstractCompiler*)+50<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompileBroker::compile_method(methodHandle const&, int,
            int, methodHandle const&, int,
            CompileTask::CompileReason, JavaThread*)+85<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::compile(methodHandle const&, int,
            CompLevel, JavaThread*)+456<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::event(methodHandle const&,
            methodHandle const&, int, int, CompLevel,
            CompiledMethod*, JavaThread*)+553<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow_inner(JavaThread*,
            unsigned char*)+331<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow(JavaThread*,
            unsigned char*)+27<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            Interpreter+15968<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">        void
com.hsbc.efx.actor.dispatcher.SingleThreadDispatcher$DispatchThread.run()+788<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">kstack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_trace_enter+686<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_trace_enter+686<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            do_syscall_64+326<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            entry_SYSCALL_64_after_hwframe+102<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">ustack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            __lll_lock_wait+29<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            DirectivesStack::getMatchingDirective(methodHandle
            const&, AbstractCompiler*)+50<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompileBroker::compile_method(methodHandle const&, int,
            int, methodHandle const&, int,
            CompileTask::CompileReason, JavaThread*)+85<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::compile(methodHandle const&, int,
            CompLevel, JavaThread*)+456<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            CompilationPolicy::event(methodHandle const&,
            methodHandle const&, int, int, CompLevel,
            CompiledMethod*, JavaThread*)+553<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow_inner(JavaThread*,
            unsigned char*)+331<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            InterpreterRuntime::frequency_counter_overflow(JavaThread*,
            unsigned char*)+27<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            Interpreter+15968<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">        void
com.hsbc.efx.actor.dispatcher.SingleThreadDispatcher$DispatchThread.run()+788<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">kstack:<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_slow_exit_work+179<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            syscall_slow_exit_work+179<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            do_syscall_64+365<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier New"">       
            entry_SYSCALL_64_after_hwframe+102<o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">This usually starts happening a few minutes
          after we start the application, probably long enough to reach
          compilation thresholds. It can last for few to tens of minutes
          after which it might fix itself and all this activity
          disappears.<br>
          This does not happen on any jdk17 version that we used. My gut
          feeling is some sort of a live lock somewhere in the profiler?
          We have limited means of reproducing it due to environment
          constraints but if you’d like us to run with some extra flags
          or on a fast debug build, we could arrange that.<br>
          Also, I’m OpenJDK author with access to the bug tracker if you
          think we should create and issue for this.<br>
          <br>
          Thanks<o:p></o:p></p>
        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span style="font-size:9.0pt;color:#BF0000;mso-fareast-language:EN-GB">Wojciech
              KUDLA</span></b><span style="mso-fareast-language:EN-GB"><o:p></o:p></span></p>
        <p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><span style="color:#3F3F3F;mso-fareast-language:EN-GB">eFX eRisk
            Infrastructure </span><span style="mso-fareast-language:EN-GB"><br>
            <b><span style="color:#3F3F3F">HSBC Bank plc</span></b><br>
            <span style="color:#3F3F3F">8 Canada Square, London E14 5HQ</span><br>
            <span style="color:#BF0000">Telephone:            </span><span style="color:#3F3F3F">+44 (0)203 359 3827</span><br>
            <span style="color:#BF0000">Mobile:                  </span><span style="color:#3F3F3F">+44 7895 833 903</span><br>
            <span style="color:#BF0000">E-mail:                    </span><span style="color:black">
              <a href="mailto:wojciech.kudla@hsbc.com" target="_blank" moz-do-not-send="true"><span style="color:blue">wojciech.kudla@hsbc.com</span></a></span><o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <br>
      <p style="font-family:Calibri;font-size:10pt;color:#000000;margin:5pt;" align="Center">
        PUBLIC<br>
      </p>
      <hr>-SAVE PAPER - THINK BEFORE YOU PRINT!<br>
      <br>
      This E-mail is confidential. <br>
      <br>
      It may also be legally privileged. If you are not the addressee
      you may not copy,<br>
      forward, disclose or use any part of it. If you have received this
      message in error,<br>
      please delete it and all copies from your system and notify the
      sender immediately by<br>
      return E-mail.<br>
      <br>
      Internet communications cannot be guaranteed to be timely secure,
      error or virus-free.<br>
      The sender does not accept liability for any errors or omissions.<br>
    </blockquote>
  </body>
</html>