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

Aleksey Shipilev aleksey.shipilev at oracle.com
Mon Mar 3 03:11:05 PST 2014

I think that should be the way to go. However, that requires choosing
the less of two evils: restore the original implicit CICC=2 with +Tiered.

Because if you keep the "+Tiered should use explicit CICC=2" today, then
you effectively block yourself from merging the compiler threads for C1
and C2, because then "+Tiered CICC=2" will suddenly change the meaning,
and users are already exposed.


On 03/03/2014 02:42 PM, Albert wrote:
> Also, there is noting that conceptually prevent having a shared
> compilation queue between C1 and C2,
> which would make -XX:CICompilerCount=1 make work also for
> TieredCompilation.
> Best,
> Albert
> On 03/03/2014 11:38 AM, Albert wrote:
>> Hi Aleksey,
>> that is not what the description of the flag says:
>>   product(intx, CICompilerCount, CI_COMPILER_COUNT,
>>           "Number of compiler threads to run")
>> Best,
>> Albert
>> On 03/03/2014 11:36 AM, Aleksey Shipilev wrote:
>>> On 03/03/2014 02:28 PM, Albert wrote:
>>>> Silently using 2 instead of 1 compiler thread when tiered is enabled
>>>> and -XX:CICompilerCount=1 was the default behavior before
>>>> JDK-8034775. I worked on JDK-8034775 and back than it occurred to me
>>>> that it is strange that the JVM silently 'overrules' an explicit
>>>> command given by the user (namely that he/she wants to use only 1
>>>> compiler thread).
>>> I don't find it strange if you follow the notion of two compilers in
>>> TieredCompilation. CICompilerCount=1 means "one thread per compiler",
>>> which given two compilers means two threads. If you really want a single
>>> thread in the compiler thread pool, then you should disable one of the
>>> compilers.
>>> -Aleksey.

More information about the hotspot-compiler-dev mailing list