RFR(S): 8061256: com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java timed out

Albert Noll albert.noll at oracle.com
Thu Nov 13 15:36:35 UTC 2014


Hi Nils,

On 11/13/2014 03:58 PM, Albert Noll wrote:
> Hi Nils,
>
> CompileQueue::lock() always returns MethodCompileQueue_lock ( see 
> init_compiler_sweeper_threads() ). It seems that your changes don't 
> change existing behavior, or am I missing something? Note that we have 
> 2 compilation queues, but only 1 lock.
>
It seems that I missed the most important parts of you change indeed. Is 
it right that

Mode evaluation_mode() const { return _no_safepoint; }

makes the VM operation not execute at a safepoint? I have a question 
nevertheless. Why did you choose to return '_no_safepoint'  and not 
'_concurrent'?

Best,
Albert

> On 11/13/2014 03:11 PM, Nils Eliasson wrote:
>> Hi,
>>
>> Please review this small change.
>>
>> 1) Fixing a deadlock in diagnostic command dcmd print_compile_queues 
>> - between the CompileQueue_lock and safepointing. The 
>> CompileQueue_lock requires that we are not at a safepoint when taking 
>> it. Otherwise a java-thread that already holds the lock will block 
>> when trying to get another lock. In this specific case the compiler 
>> threads are Java threads, they take the CompileQueue_lock frequently 
>> and some time takes the CompileTaskAlloc_lock after that.
>>
>> Fixing this by making the diagnostic command not request a safepoint,
>>
>> 2) Refactoring away the lock() accessor in CompileQueue and stating 
>> the lock explicitly. This removes an element of surprise and makes it 
>> easier understanding the code.
> What element of surprise are you talking about? Personally, I prefer 
> the current design, i.e., getting the lock by calling a function 
> instead of referencing a global variable directly. If we ever decide 
> to go for a 2 compile queue locks (I think that makes sense since we 
> have two compilation queues), we would have to introduce the functions 
> again.
>
> Best,
> Albert
>
>
>> webrev: http://cr.openjdk.java.net/~neliasso/8061256/webrev.02/
>> bug: https://bugs.openjdk.java.net/browse/JDK-8061256
>>
>> Thanks,
>> Nils Eliasson
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20141113/3b5aaf63/attachment.html>


More information about the hotspot-compiler-dev mailing list