RFR(S): 8233193: Incorrect bailout from possibly_add_compiler_threads

Doerr, Martin martin.doerr at sap.com
Mon Nov 18 10:42:50 UTC 2019


Hi David,

thanks for the review.


> That's fine but you also replaced TRAPS with "Thread* THREAD" which is
> pointless given:
> 
> #define TRAPS  Thread* THREAD

I know that it's technically pointless. But I think it's confusing to use TRAPS if we don't expect any exceptions.
We just want to pass a Thread pointer.


> May I suggest a comment then:
> 
>   844 void CompileBroker::init_compiler_sweeper_threads() {
>         // Ensure any exceptions lead to vm_exit_during_initialization
>   845   EXCEPTION_MARK;

Added. I also added:

@@ -647,6 +647,7 @@
   // totalTime performance counter is always created as it is required
   // by the implementation of java.lang.management.CompilationMBean.
   {
+    // Ensure OOM leads to vm_exit_during_initialization.
     EXCEPTION_MARK;
     _perf_total_compilation =
                  PerfDataManager::create_counter(JAVA_CI, "totalTime",



Best regards,
Martin



> -----Original Message-----
> From: David Holmes <david.holmes at oracle.com>
> Sent: Montag, 18. November 2019 04:46
> To: Doerr, Martin <martin.doerr at sap.com>; 'hotspot-compiler-
> dev at openjdk.java.net' <hotspot-compiler-dev at openjdk.java.net>
> Cc: David Holmes <David.Holmes at oracle.com>
> Subject: Re: RFR(S): 8233193: Incorrect bailout from
> possibly_add_compiler_threads
> 
> Hi Martin,
> 
> On 15/11/2019 2:18 am, Doerr, Martin wrote:
> > Hi,
> >
> > I'd like to cleanup exception handling in CompileBroker a little bit.
> >
> > Here's my proposal:
> >
> > - Use THREAD instead of CHECK where no exceptions get thrown.
> 
> That's fine but you also replaced TRAPS with "Thread* THREAD" which is
> pointless given:
> 
> #define TRAPS  Thread* THREAD
> 
> > - Remove unused preload_classes.
> 
> Ok
> 
> > - make_thread: Rename thread to new_thread to avoid confusion with
> > THREAD (the current compiler thread).
> 
> Ok
> 
> > - possibly_add_compiler_threads: Remove usage of EXCEPTION_MARK +
> CHECK
> > because this functions is not supposed to kill the VM on exceptions. Add
> > assertion to caller.
> 
> Ok
> 
> > Webrev:
> >
> > http://cr.openjdk.java.net/~mdoerr/8233193_CompileBroker/webrev.00/
> >
> > @David:
> >
> > You didn't like usage of the CHECK macro in the initialization
> > functions, but I think they are ok.
> >
> > Not very nice to read, but the behavior looks ok to me.
> >
> > At least, I didn't find a better replacement for them. Maybe you have a
> > proposal?
> 
> May I suggest a comment then:
> 
>   844 void CompileBroker::init_compiler_sweeper_threads() {
>         // Ensure any exceptions lead to vm_exit_during_initialization
>   845   EXCEPTION_MARK;
> 
> Thanks,
> David
> -----
> 
> > Best regards,
> >
> > Martin
> >


More information about the hotspot-compiler-dev mailing list