RFR(XS) 8011391: C1: assert(code_offset() - offset == NativeInstruction::nop_instruction_size) failed: only one instruction can go in a delay slot
Niclas Adlertz
niclas.adlertz at oracle.com
Wed Dec 18 06:34:15 PST 2013
Thanks David.
Kind Regards,
Niclas Adlertz
On 2013-12-17 19:32, David Chase wrote:
> Yuck. I approve of reducing yuck, I approve of this patch.
>
> On 2013-12-17, at 11:14 AM, Niclas Adlertz <niclas.adlertz at oracle.com> wrote:
>
>> Hi all,
>>
>> The flag "VerifyOopMaps" is a non-product C1 only flag and does some but not all of the verification that the "VerifyOops" flag does. But "VerifyOopMaps" can cause problems. Since "VerifyOopMaps" temporarily turns on the "VerifyOops" flag during a part of the compilation of a C1 method, it becomes a problem when multiple compiler threads are working at the same time, causing VerifyOopMaps to be turned on and off at random during a single compilation. This is what happens during this crash.
>>
>> My suggested fix is to remove the "VerifyOopMaps" flag and instead use the "VerifyOops" flag for Oop maps verification.
>>
>> Another fix could be to internally set the "VerifyOopMaps" flag to false if we run tiered and/or are using more than one compiler thread. A third way could be to terminate the VM (and telling why) when having the "VerifyOopMaps" flag enabled in tiered and/or when using multiple compiler threads.
>>
>> Kind Regards,
>> Niclas Adlertz
>>
>> BUG: https://bugs.openjdk.java.net/browse/JDK-8011391
>> WEBREV: http://cr.openjdk.java.net/~adlertz/JDK-8011391/webrev00/
More information about the hotspot-compiler-dev
mailing list