RFR(M): 8166970: Adapt mutex padding according to DEFAULT_CACHE_LINE_SIZE

Coleen Phillimore coleen.phillimore at oracle.com
Fri Sep 30 18:35:40 UTC 2016


It looks okay to me.  I don't have a strong preference either way, since 
MonitorBase has only nonstatic data members, and enums.

Maybe Dan has an opinion?   I can sponsor it for you.

Thanks,
Coleen


On 9/30/16 12:28 PM, Thomas Stüfe wrote:
> Hi Martin,
>
> you do not have to do the subclassing just to find out the size of all
> members preceding _name. Just use offsetof():
>
> CACHE_LINE_PADDING = DEFAULT_CACHE_LINE_SIZE - offsetof(_name)
>
> ...Kind Regards, Thomas
>
>
> On Fri, Sep 30, 2016 at 5:48 PM, Doerr, Martin <martin.doerr at sap.com> wrote:
>
>> Hi,
>>
>> the current implementation of Monitor padding (mutex.cpp) assumes that
>> cache lines are 64 Bytes. There's a platform dependent define
>> "DEFAULT_CACHE_LINE_SIZE" available which can be used. Purpose of padding
>> is to avoid false sharing.
>>
>> My proposed change is here:
>> http://cr.openjdk.java.net/~mdoerr/8166970_mutex_padding/webrev.00/
>>
>> Please review. If will also need a sponsor.
>>
>> Thanks and best regards,
>> Martin
>>
>>



More information about the hotspot-runtime-dev mailing list