[9] RFR(XXS): 8036091: compiler/membars/DekkerTest.java fails with -XX:CICompilerCount=1

Christian Thalinger christian.thalinger at oracle.com
Tue Mar 4 12:58:19 PST 2014


!   const int num_min_compiler_threads = (TieredCompilation && (TieredStopAtLevel >= 4)) ? 2 : 1;

Use CompLevel_full_optimization instead of 4.

Otherwise this looks good.

On Mar 3, 2014, at 11:29 PM, Albert <albert.noll at oracle.com> wrote:

> Hi Vladimir,
> 
> thanks for your review. I did your proposed changes.
> 
> Here is the new webrev:
> http://cr.openjdk.java.net/~anoll/8036091/webrev.01/
> 
> Best,
> Albert
> 
> On 03/03/2014 09:31 PM, Vladimir Kozlov wrote:
>> Albert,
>> 
>> You need to add -XX:-TieredCompilation to test's commands. I forgot it when I added the test. Removing -XX:CICompilerCount=1 is wrong because sequence of C2 compilations will affect the reproduction of the problem. CICompilerCount=1 serializes compilations and makes compilation sequence more deterministic. Even with -Xbatch tests which execute several threads the compilation is not deterministic because compilation requests from different java threads will be served by different compiler threads.
>> 
>> CICompilerCount, by definition and by the code we used in Tiered, is total number of compilers threads, C1+C2. You can't interpret it differently for =1 case.
>> 
>> Albert, make sure to allow CICompilerCount=1 with Tiered compilation when only C1 is used (TieredStopAtLevel < 4).
>> 
>> Thanks,
>> Vladimir
>> 
>> On 3/3/14 4:49 AM, Aleksey Shipilev wrote:
>>> Thanks Albert!
>>> 
>>> -Aleksey.
>>> 
>>> P.S. Serves me right for not paying attention to the original issue
>>> thinking it only covers the negative values.
>>> 
>>> On 03/03/2014 04:47 PM, Albert wrote:
>>>> Hi Aleksey,
>>>> 
>>>> Vladimir K. reviewed JDK-8034775, let's see what he thinks. If we decide
>>>> to go for the clean
>>>> solution, I could make it work.
>>>> 
>>>> Best,
>>>> Albert
>>>> 
>>>> On 03/03/2014 01:42 PM, Aleksey Shipilev wrote:
>>>>> On 03/03/2014 04:25 PM, Albert wrote:
>>>>>> For me the only clean solution that *enforces* and *retains* the
>>>>>> meaning of the flag is to enable a compiler thread to grab tasks from
>>>>>> both queues (or have a shared queue). Maybe someone can tell why it
>>>>>> is implemented as it is?
>>>>> I agree, this seems to be only good solution for
>>>>> not-that-familiar-with-HS-tiered-arch guy like me.
>>>>> 
>>>>> -Aleksey.
>>>> 
>>> 
> 



More information about the hotspot-compiler-dev mailing list