RFR(S) 8007270: Make IsMethodCompilable test work with tiered

Nils Eliasson nils.eliasson at oracle.com
Wed Feb 12 01:46:04 PST 2014


I rewrote the code. It should be much cleared now.

http://cr.openjdk.java.net/~neliasso/8007270/webrev.04/

Thanks,
//N


On 2014-02-11 23:10, Vladimir Kozlov wrote:
> Sorry, I missed that. That code is very messy. I think you should 
> decrement 'i' instead and change comment:
>
> +        long cutoff = PER_METHOD_RECOMPILATION_CUTOFF;
> +        // deoptimize 'PerMethodRecompilationCutoff' times
> +        for (long i = 0L; (i < cutoff) && 
> isCompilable(COMP_LEVEL_FULL_OPTIMIZATION); ++i) {
> +          int level = compileAndDeoptimize();
> +          if (level < COMP_LEVEL_FULL_OPTIMIZATION) {
> +            // Add one iteration if compiled with a lower tier
> +            --i;
>            }
>          }
>
> Thanks,
> Vladimir
>
> On 2/11/14 1:34 PM, Nils Eliasson wrote:
>> cutoff may increase if the method was compiled for a lower level and we
>> want another attempt for full opt, the second check is to limit the
>> amount of attempts.
>>
>> //N
>>
>> On 2014-02-11 20:06, Vladimir Kozlov wrote:
>>> (i <c) should be always true since (i < cutoff):
>>>
>>> +        for (long i = 0L; (i < cutoff) &&
>>> +              (i < PER_METHOD_RECOMPILATION_CUTOFF*2) &&
>>>
>>> Thanks,
>>> Vladimir
>>>
>>> On 2/11/14 5:15 AM, Nils Eliasson wrote:
>>>> Hi,
>>>>
>>>> Thanks for your contribution Igor.
>>>>
>>>> After some additional testing I noticed some inconsistencies and
>>>> filed https://bugs.openjdk.java.net/browse/JDK-8034188
>>>>
>>>> This test now runs faster, and targets c2-compiles only, in server
>>>> and with tiered.
>>>>
>>>> Webrev: http://cr.openjdk.java.net/~neliasso/8007270/webrev.02/
>>>>
>>>> Thanks,
>>>> //Nils
>>>>
>>>>
>>>> On 2014-01-29 11:11, Igor Ignatyev wrote:
>>>>> Hi Nils,
>>>>>
>>>>> you can skip running on client by yourself, see attached diff.
>>>>> Igor
>>>>>
>>>>> On 01/28/2014 07:02 PM, Nils Eliasson wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> I need a review for this change.
>>>>>>
>>>>>> http://cr.openjdk.java.net/~neliasso/8007270/webrev.01/
>>>>>>
>>>>>> This test was disabled since it didn't work very well with tiered 
>>>>>> (or
>>>>>> client). It tests the PerMethodRecompilationCutoff that was 
>>>>>> introduced
>>>>>> to disable c2-compilations of a method when it has been deoptimized
>>>>>> too
>>>>>> many times.  The bug report suggested we should disable c1
>>>>>> compilations
>>>>>> as well but I don't think that was the intent of the cutoff feature.
>>>>>>
>>>>>> I have changed the following in the test
>>>>>> * skip test when running client only (not supported by jtreg at the
>>>>>> moment)
>>>>>> * check what compilation level was used when compiling so that it 
>>>>>> can
>>>>>> keep track of the number of c2 compiles (and deopts) correctly in
>>>>>> tiered
>>>>>> mode
>>>>>> * compile and deopt up to the cutoff limit only once
>>>>>> * added PerMethodRecompilationCutoff=4 flag to commandline to reduce
>>>>>> wasted time in test (default 400)
>>>>>>
>>>>>> Now the test works and the running time has been reduced to seconds
>>>>>> instead of minutes.
>>>>>>
>>>>>> Kind regards,
>>>>>> Nils Eliasson
>>>>>>
>>>>>>
>>>>
>>



More information about the hotspot-compiler-dev mailing list