RFR: 8217576: C1 atomic access handlers use incorrect decorators

David Holmes david.holmes at oracle.com
Tue Mar 12 01:09:55 UTC 2019


On 12/03/2019 4:37 am, Kim Barrett wrote:
>> On Mar 11, 2019, at 3:22 AM, David Holmes <david.holmes at oracle.com> wrote:
>>
>> Hi Kim,
>>
>> On 10/03/2019 7:47 am, Kim Barrett wrote:
>>> Please review this fix of decorator defaulting in C1 atomic access
>>> generators.  As noted in the bug, C1 presently ignores the decorators
>>> and only generates fully barriered operations, so the incorrect
>>> decorators haven't been affecting code generation.
>>
>> So by fixing this and potentially using weaker memory ordering we could infact expose hitherto hidden bugs. :) Okay.
> 
> It's weirder than that.  The old code produces a decorator set that is
> either empty in the MO_ field, or contains two set bits in that
> field. Neither of those is valid, so who knows what would happen with
> later changes elsewhere.  My guess: either an assertion failure (good)
> or quietly ignoring an intentional request for a weaker barrier (not
> so good, might lead to some real head-scratching debugging).

That sounds like we have missing assertions if exactly one-bit must 
always be set in the decorator!

Though putting in a stronger MO than necessary would never be a 
functional bug. I'd be more concerned if the empty field led to an 
unexpected relaxed MO - that could be a real head-scratcher.

David
-----

>> The fix itself looks good.
> 
> Thanks.
> 
>> Thanks,
>> David
>> -----
>>
>>> CR:
>>> https://bugs.openjdk.java.net/browse/JDK-8217576
>>> Webrev:
>>> http://cr.openjdk.java.net/~kbarrett/8217576/open.00/
>>> Testing:
>>> mach5 tier1.
> 
> 


More information about the hotspot-dev mailing list