[9] RFR(S): 8042431: compiler/7200264/TestIntVect.java fails with: Test Failed: AddVI 0 < 4

Albert albert.noll at oracle.com
Thu May 8 09:07:35 UTC 2014


Thanks for the review, Vladimir.
Do I need a second one?

Best,
Albert

On 05/08/2014 11:00 AM, Vladimir Kozlov wrote:
> Excellent.
>
> Thanks,
> Vladimir
>
> On 5/7/14 10:34 PM, Albert wrote:
>> Hi Vladimir,
>>
>> that sounds like a good suggestion to me. Here is the updated webrev:
>> http://cr.openjdk.java.net/~anoll/8042431/webrev.03/
>>
>> Thanks for looking at this again.
>>
>> Best,
>> Albert
>>
>> On 05/07/2014 07:08 PM, Vladimir Kozlov wrote:
>>> I just saw Severin's comment.
>>>
>>> The check we have already verifies that minimum <= CI_COMPILER_COUNT 
>>> when CICompilerCount is not specified on command
>>> line. But to have explicit assert is better, I think:
>>>
>>>   int min_number_of_compiler_threads = 
>>> get_min_number_of_compiler_threads();
>>>   // The default CICompilerCount's value is CI_COMPILER_COUNT.
>>>   assert(min_number_of_compiler_threads <= CI_COMPILER_COUNT, 
>>> "minimum should be less or equal default number");
>>>   // Check the minimum number of compiler threads.
>>>   status &=verify_min_value(CICompilerCount, 
>>> min_number_of_compiler_threads, "CICompilerCount");
>>>
>>> Thanks,
>>> Vladimir
>>>
>>> On 5/7/14 9:04 AM, Vladimir Kozlov wrote:
>>>> Good.
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> On 5/7/14 8:08 AM, Albert wrote:
>>>>> Hi Vladimir,
>>>>>
>>>>> thanks for looking at this. I followed your suggestions and 
>>>>> adapted the webrev accordingly.
>>>>> Here is the new version:
>>>>> http://cr.openjdk.java.net/~anoll/8042431/webrev.02/
>>>>>
>>>>> Best,
>>>>> Albert
>>>>>
>>>>> On 05/06/2014 08:07 PM, Vladimir Kozlov wrote:
>>>>>> The default for C2 non-tiered should be 2, not 1.
>>>>>>
>>>>>> We are mixing 2 things: minimum value and default value. The 
>>>>>> default is CI_COMPILER_COUNT.
>>>>>>
>>>>>> Next statement is wrong for ZERO VM:
>>>>>> "A value of 2 works for any platform/configuration."
>>>>>>
>>>>>> I don't think we should change globals.hpp, leave it as it is.
>>>>>>
>>>>>> We only need to fix the minimum check. The bug is that we used 
>>>>>> default CI_COMPILER_COUNT as minimum value which is
>>>>>> wrong.
>>>>>>
>>>>>> The fix should be:
>>>>>>
>>>>>> +   // Check the minimum number of compiler threads
>>>>>> +   status &=verify_min_value(CICompilerCount, 
>>>>>> get_min_number_of_compiler_threads(), "CICompilerCount");
>>>>>>
>>>>>> Note, don't reset the default setting.
>>>>>>
>>>>>> You can reduce size of new method more:
>>>>>>
>>>>>> + int Arguments::get_min_number_of_compiler_threads() {
>>>>>> + #if !defined(COMPILER1) && !defined(COMPILER2) && !defined(SHARK)
>>>>>> +   return 0;   // case 1: no compilers (Zero VM)
>>>>>> + #else
>>>>>> +   if (!TieredCompilation || (TieredStopAtLevel < 
>>>>>> CompLevel_full_optimization)) {
>>>>>> +     return 1; // case 2 or case 3
>>>>>> +   }
>>>>>> +   return 2;   // case 4 (tiered).
>>>>>> + #endif
>>>>>> + }
>>>>>>
>>>>>> Thanks,
>>>>>> Vladimir
>>>>>>
>>>>>> On 5/6/14 6:33 AM, Albert wrote:
>>>>>>> Hi Niclas,
>>>>>>>
>>>>>>> thanks for your suggestions. Your version is much nicer. Here is 
>>>>>>> the
>>>>>>> updated webrev:
>>>>>>> http://cr.openjdk.java.net/~anoll/8042431/webrev.01/
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Albert
>>>>>>>
>>>>>>> On 05/06/2014 03:25 PM, Niclas Adlertz wrote:
>>>>>>>> Hi, see my previous answer. If would suggest to change the nested
>>>>>>>> if-else cases to:
>>>>>>>>
>>>>>>>> // case 1
>>>>>>>> if (no_compiler) {
>>>>>>>>   return 0;
>>>>>>>> }
>>>>>>>>
>>>>>>>> // case 2 or 3
>>>>>>>> if (!TieredCompilation || TieredStopAtLevel <
>>>>>>>> CompLevel_full_optimization) {
>>>>>>>>   return 1;
>>>>>>>> }
>>>>>>>>
>>>>>>>> // case 4 (default case, works on all platforms)
>>>>>>>> return 2
>>>>>>>>
>>>>>>>> Kind Regards,
>>>>>>>> Niclas Adlertz
>>>>>>>>
>>>>>>>> On 05/06/2014 03:21 PM, Albert wrote:
>>>>>>>>> Hi Niclas,
>>>>>>>>>
>>>>>>>>> thanks for looking at this. Please see comment inline.
>>>>>>>>> On 05/06/2014 03:04 PM, Niclas Adlertz wrote:
>>>>>>>>>> Hi Albert,
>>>>>>>>>>
>>>>>>>>>> Inside src/share/vm/runtime/arguments.cpp:
>>>>>>>>>> +   // We should not come here. However, we also do not fail 
>>>>>>>>>> the VM,
>>>>>>>>>> since this is a not-critical error.
>>>>>>>>>> +   assert (false, "Missed configuration to set the minimum 
>>>>>>>>>> number of
>>>>>>>>>> compiler threads.");
>>>>>>>>>> +   // Return 2, since this works with all configurations on all
>>>>>>>>>> platforms.
>>>>>>>>>> +   return 2;
>>>>>>>>>>
>>>>>>>>>> That is dead code, and we can remove it.
>>>>>>>>>> If none of the cases 1, 2 or 3 are true, we will always enter 
>>>>>>>>>> case 4.
>>>>>>>>> That code is there to make sure (in case someone makes changes 
>>>>>>>>> to that
>>>>>>>>> function)
>>>>>>>>> that the default return value is 2, since this works for all 
>>>>>>>>> platforms.
>>>>>>>>>
>>>>>>>>> Do you think that leaving a comment is good enough (or not 
>>>>>>>>> even that)?
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Kind Regards,
>>>>>>>>>> Niclas Adlertz
>>>>>>>>>>
>>>>>>>>>> On 05/06/2014 02:43 PM, Albert wrote:
>>>>>>>>>>> Hi all,
>>>>>>>>>>>
>>>>>>>>>>> could I get reviews for this patch?
>>>>>>>>>>>
>>>>>>>>>>> Bug:
>>>>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8042431
>>>>>>>>>>>
>>>>>>>>>>> Problem:
>>>>>>>>>>> The minimum number of compiler threads is set incorrectly.
>>>>>>>>>>>
>>>>>>>>>>> Solution:
>>>>>>>>>>> Define a new function 'get_min_number_of_compiler_threads()' 
>>>>>>>>>>> that
>>>>>>>>>>> determines the minimum number of compiler threads for a 
>>>>>>>>>>> particular
>>>>>>>>>>> platform/configuration.
>>>>>>>>>>>
>>>>>>>>>>> Testing:
>>>>>>>>>>> Failing test case; zero; -XX:-TieredCompilation 
>>>>>>>>>>> -XX:CICompilerCount=1
>>>>>>>>>>>
>>>>>>>>>>> Webrev:
>>>>>>>>>>> http://cr.openjdk.java.net/~anoll/8042431/webrev.00/
>>>>>>>>>>>
>>>>>>>>>>> Many thanks in advance,
>>>>>>>>>>> Albert
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>
>>



More information about the hotspot-compiler-dev mailing list