[11]RFR: 8203030: Zero s390 31 bit size_t type conflicts in shared code

Chris Phillips ChrisPhi at LGonQn.Org
Wed Jun 6 21:15:17 UTC 2018


Hi Per,

On 06/06/18 04:47 PM, Per Liden wrote:
> Hi Chris,
> 
> On 06/06/2018 09:36 PM, Chris Phillips wrote:
>> Hi,
>>
>> On 06/06/18 02:23 PM, Per Liden wrote:
>>> On 2018-06-06 18:29, Andrew Haley wrote:
>>>> On 06/06/2018 04:47 PM, Chris Phillips wrote:
>>>>> Please review this set of changes to shared code
>>>>> related to S390 (31bit) Zero self-build type mis-match failures.
>>>>>
>>>>> Bug:    https://bugs.openjdk.java.net/browse/JDK-8203030
>>>>> webrev: http://cr.openjdk.java.net/~chrisphi/JDK-8203030/webrev.0
>>>>
>>>> Can you explain this a little more?  What is the type of size_t on
>>>> s390x?  What is the type of uintptr_t?  What are the errors?
>>>
>>> I would like to understand this too.
>>>
>>> cheers,
>>> Per
>>>
>>>
>> Quoting from the original bug  review request:
>> http://mail.openjdk.java.net/pipermail/hotspot-dev/2014-June/014254.html
>> "This
>> is a problem when one parameter is of size_t type and the second of
>> uintx type and the platform has size_t defined as eg. unsigned long as
>> on s390 (32-bit)."
> 
> Please clarify what the sizes of uintx (i.e. uintptr_t) and size_t are
> on s390?
See Dan's explanation.
> 
> I fail to see how any of this matters to _entries here? What am I missing?
> 

By changing the type, to its actual usage, we avoid the
necessity of patching in src/hotspot/share/gc/g1/g1StringDedupTable.cpp
around line 617, since its consistent usage and local I patched at the
definition.

- _table->_entries, percent_of(_table->_entries, _table->_size),
_entry_cache->size(), _entries_added, _entries_removed);
+ _table->_entries, percent_of( (size_t)(_table->_entries),
_table->_size), _entry_cache->size(), _entries_added, _entries_removed);

percent_of will complain about types otherwise.


> src/hotspot/share/gc/g1/g1StringDedupTable.hpp
> @@ -120,11 +120,11 @@
>    // Cache for reuse and fast alloc/free of table entries.
>    static G1StringDedupEntryCache* _entry_cache;
> 
>    G1StringDedupEntry**            _buckets;
>    size_t                          _size;
> -  uintx                           _entries;
> +  size_t                          _entries;
>    uintx                           _shrink_threshold;
>    uintx                           _grow_threshold;
>    bool                            _rehash_needed;
> 
> cheers,
> Per
> 
>>
>> Hope that helps,
>> Chris
>>
>> (I'll answer further if needed but the info is in the bugs and
>> review thread mostly)
>> See:
>> https://bugs.openjdk.java.net/browse/JDK-8203030
>> and:
>> http://mail.openjdk.java.net/pipermail/hotspot-dev/2014-June/014254.html
>> https://bugs.openjdk.java.net/browse/JDK-8046938
>> https://bugs.openjdk.java.net/browse/JDK-8074459
>> For more info.
>>
> 
> 


More information about the hotspot-dev mailing list