RFR(S/M): 8150646: Add support for blocking compiles through whitebox API
Vladimir Kozlov
vladimir.kozlov at oracle.com
Sat Mar 12 00:29:52 UTC 2016
Looks good.
Thanks,
Vladimir
On 3/11/16 5:49 AM, Nils Eliasson wrote:
> Hi,
>
> I got a failure during testing and had to fix that. The additional
> change is very small.
>
> Problem:
> Running embedded server profiles with -XX:+AggressiveOpts can cause
> compilations to trigger (many Integers in the cache...) before the
> compile broker is initialized.
>
> What this code at the start of compile_method doesn't tell you - is that
> the NULL check guards from compile requests before the compilation_init
> is called.
>
> // lock, make sure that the compilation
> 1052 // isn't prohibited in a straightforward way.
> 1053 AbstractCompiler *comp = CompileBroker::compiler(comp_level);
> 1054 if (comp == NULL || !comp->can_compile_method(method) ||
> 1055 compilation_is_prohibited(method, osr_bci, comp_level)) {
> 1056 return NULL;
> 1057 }
>
> The compile_method wrapper we introduced used
> "CompileBroker::compiler(comp_level)" but didn't guard for NULL.
>
> Solution:
> There was already a check on CompileBroker::_initalized in the code - a
> bit late though - so it was never executed. I hoisted it from
> compile_method_base to the beginning of compile_method and check the
> check comp==NULL check to an assert.
>
> All new changes in CompileBroker.cpp:
> Webrev: http://cr.openjdk.java.net/~neliasso/8150646/webrev.07
>
> Regards,
> Nils Eliasson
>
>
> On 2016-02-25 16:01, Nils Eliasson wrote:
>> Hi,
>>
>> Please review this change that adds support for blocking compiles in
>> the whitebox API. This enables simpler less time consuming tests.
>>
>> Motivation:
>> * -XX:-BackgroundCompilation is a global flag and can be time consuming
>> * Blocking compiles removes the need for waiting on the compile queue
>> to complete
>> * Compiles put in the queue may be evicted if the queue grows to big -
>> causing indeterminism in the test
>> * Less VM-flags allows for more tests in the same VM
>>
>> Testing:
>> Posting a separate RFR for test fix that uses this change. They will
>> be pushed at the same time.
>>
>> RFE: https://bugs.openjdk.java.net/browse/JDK-8150646
>> JDK rev: http://cr.openjdk.java.net/~neliasso/8150646/webrev_jdk.01/
>> Hotspot rev: http://cr.openjdk.java.net/~neliasso/8150646/webrev.02/
>>
>> Best regards,
>> Nils Eliasson
>
More information about the hotspot-compiler-dev
mailing list