RFR (S): 8026478: -XX:+VerifyAdapterSharing is broken
Christian Thalinger
christian.thalinger at oracle.com
Wed Oct 16 10:43:30 PDT 2013
It would be nice to have a comment on this guy:
+ bool _contains_all_checks;
No need for another webrev if you decide to add the comment.
Looks good.
On Oct 15, 2013, at 11:02 PM, Albert Noll <albert.noll at oracle.com> wrote:
> Forgot to adjust the comment. This version should be fine.
>
> http://cr.openjdk.java.net/~anoll/8026478/webrev.02/
>
> Albert
>
> On 15.10.2013 21:03, Vladimir Kozlov wrote:
>> Albert,
>>
>> contains_all_stubs name is incorrect. It should be contains_all_checks. Adapter code does not have stubs in it.
>>
>> I think the next check should be:
>>
>> bool contains_all_checks = (StubRoutines::code2() != NULL) || !VerifyAdapterCalls;
>>
>> because code does not change when VerifyAdapterCalls is false.
>> Then you don't need to check VerifyAdapterCalls in next condition:
>>
>> + if ((VerifyAdapterCalls || VerifyAdapterSharing) && !entry->contains_all_checks()) {
>>
>> And we need to regenerate adapter regardless VerifyAdapterSharing because, as you said, VerifyAdapterCalls potentially reports a false error if check for code2 is not generated.
>>
>> So the condition should be simple "if (!entry->contains_all_checks())".
>>
>> Could you leave next lines unchanged (use 2 lines for arguments)?:
>> ! buffer.insts()->initialize_shared_locs((relocInfo*)buffer_locs,
>>
>> sizeof(buffer_locs)/sizeof(relocInfo));
>> MacroAssembler _masm(&buffer);
>>
>> Cleanup is fine.
>>
>> Thanks,
>> Vladimir
>>
>> On 10/15/13 4:14 AM, Albert Noll wrote:
>>> Hi,
>>>
>>> could I have reviews for this small patch?
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8026478
>>> webrev: http://cr.openjdk.java.net/~anoll/8026478/webrev.00/
>>> <http://cr.openjdk.java.net/%7Eanoll/8026478/webrev.00/>
>>>
>>> Problem: This flag is broken. The reason is that adapters
>>> (gen_i2c_adapter()) that are generated during VM startup do not include
>>> the range for StubRoutines::code2() if -XX:+VerifyAdapterCalls is
>>> specified. StubRoutines::code2() is only allocated later during startup;
>>> consequently, code2() is NULL. As a result, the size of the generated
>>> adapter as well as the code itself does not mactch.
>>>
>>> Solution: Defer check (VerifyAdapterSharing) until VM is initialzied.
>>> Note that this patch also fixes potential issues with
>>> -XX:+VerifyAdapterCalls, which is a dignostic flag. The patch also
>>> removes some unused field of VerifyAdapterSharing.
>>>
>>>
>>> Many thanks in advance,
>>> Albert
>>> **
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20131016/f8193129/attachment-0001.html
More information about the hotspot-compiler-dev
mailing list