RFR: bootstrap might exit early in debug JVM
Doug Simon
doug.simon at oracle.com
Thu Mar 5 16:11:40 UTC 2015
You are welcome to try.
> On Mar 5, 2015, at 4:15 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
>
> No problem. Are you pushing it or should I do it?
>
>> On Mar 5, 2015, at 1:32 AM, Doug Simon <doug.simon at oracle.com> wrote:
>>
>> Looks good to me. However, getting it integrated may take a while given the current gate instability.
>>
>>> On Mar 5, 2015, at 12:53 AM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
>>>
>>> Sometimes a debug JVM is too slow to schedule compilations in time during a bootstrap and the result is an early exit:
>>>
>>> Bootstrapping Graal in 1000 ms (compiled 0 methods)
>>>
>>> Here is a fix that waits until there are some methods in the queue the first time:
>>>
>>> diff --git a/src/share/vm/graal/graalCompiler.cpp b/src/share/vm/graal/graalCompiler.cpp
>>> --- a/src/share/vm/graal/graalCompiler.cpp
>>> +++ b/src/share/vm/graal/graalCompiler.cpp
>>> @@ -85,12 +85,15 @@
>>> }
>>>
>>> int qsize;
>>> - jlong sleep_time = 1000;
>>> + bool first_round = true;
>>> int z = 0;
>>> do {
>>> - os::sleep(THREAD, sleep_time, true);
>>> - sleep_time = 100;
>>> - qsize = CompileBroker::queue_size(CompLevel_full_optimization);
>>> + // Loop until there is something in the queue.
>>> + do {
>>> + os::sleep(THREAD, 100, true);
>>> + qsize = CompileBroker::queue_size(CompLevel_full_optimization);
>>> + } while (first_round && qsize == 0);
>>> + first_round = false;
>>> if (PrintBootstrap) {
>>> while (z < (_methodsCompiled / 100)) {
>>> ++z;
>>>
>>
>
More information about the graal-dev
mailing list