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

Chris Phillips ChrisPhi at LGonQn.Org
Thu Jun 14 15:01:24 UTC 2018


Hi
Any further comments or changes?
On 06/06/18 05:56 PM, Chris Phillips wrote:
> Hi Per,
> 
> On 06/06/18 05:48 PM, Per Liden wrote:
>> Hi Chris,
>>
>> On 06/06/2018 11:15 PM, Chris Phillips wrote:
>>> 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.
>>
>> Ok, so why don't you just cast it in the call to percent_of? Your
>> current patch has ripple effects that you fail to take into account. For
>> example, _entries is still printed using UINTX_FORMAT and compared
>> against other uintx variables. You're now mixing types in an unsound way.
> 
> Hmm missed that, so will do the cast instead as you suggest.
> (Fixing at the defn is what was suggested the last time around so I
> tried to do that where it was consistent, obviously this is not.
> Thanks.
> 
>> cheers,
>> Per
>>
>>>
>>>
>>>> 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.
>>>>>
>>>>
>>>>
>>
>>
> Cheers!
> Chris
> 
> 
> 

Finally through testing and submit run again after Per's requested
change, here's the knew webrev:
   http://cr.openjdk.java.net/~chrisphi/JDK-8203030/webrev.2
attached is the passing run fron the submit queue.

Please review...

Chris


More information about the hotspot-dev mailing list