RFR (S) 8235765: Use of the long type should be avoided in shared code

Lois Foltan lois.foltan at oracle.com
Wed Aug 12 17:20:48 UTC 2020


On 8/12/2020 1:00 PM, Coleen Phillimore wrote:
>
>
> On 8/12/20 12:19 PM, Lois Foltan wrote:
>> On 8/12/2020 11:21 AM, Coleen Phillimore wrote:
>>> Summary: Changed some long declarations to uint64_t/int64_t or 
>>> unsigned int, depending on context.
>>>
>>> There are still 'long' declarations left in the code, but they 
>>> should be changed by developers when working in that code and not as 
>>> a blanket change.  I didn't change a couple of longs in 
>>> jfr/leakprofiler, for example.  These are the ones I changed though 
>>> with some explanation of why:
>>>
>>> src/hotspot/share/memory/filemap.hpp
>>>
>>> This can be negative so changed to int64_t.
>>>
>>> src/hotspot/share/runtime/mutex.cpp
>>>
>>> The PlatformMutex code takes jlong, which is signed, so that's why I 
>>> changed these to int64_t.
>>>
>>> runtime/interfaceSupport.inline.hpp
>>>
>>> These counters are actually intervals so I changed them to unsigned 
>>> int.
>>>
>>> src/hotspot/share/compiler/compileBroker.hpp
>>>
>>> _peak_compilation_time is signed because it is compared with jlong 
>>> which is signed.
>>> Same with total_compilation_time - elapsedTimer.milliseconds() 
>>> returns jlong.
>>>
>>> Tested with tier1-3.  Tier1 on linux-x64-debug, windows-x64-debug, 
>>> macosx-x64-debug, linux-aarch64-debug. Also built on: 
>>> linux-arm32,linux-ppc64le-debug,linux-s390x-debug,linux-x64-zero.
>>>
>>> open webrev at 
>>> http://cr.openjdk.java.net/~coleenp/2020/8235765.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8235765
>>>
>>> Thanks,
>>> Coleen
>>
>> Hi Coleen,
>>
>> Looks good.
>>
>> - runtime/sweeper.hpp
>>   This is the only file that I wondered why you changed long to 
>> int64_t for _total_nof_methods_reclaimed and 
>> _total_nof_c2_methods_reclaimed.  Note that the method 
>> NMethodSweeper::total_nof_methods_reclaimed returns an int. Could 
>> both of these fields be changed to int instead?
>
> Hi Lois, Thank you for looking at this.  Unfortunately, this was an 
> outdated webrev, can you hit reload?  I changed these fields to be 
> uint64_t because they're never signed.  It's likely that the number of 
> methods is never greater than an int, but since it was long to begin 
> with, I kept 64 bit until someone decides an 'int' is better. Since 
> number_of_codecache_sweeps is uint64_t, which seems like a lot too, 
> there could be that many nmethods reclaimed.  I retested with windows 
> just now to be sure.
>
> Thanks,
> Coleen

Yes, that looks better.  Thanks!
Lois

>
>
>>
>> Thanks,
>> Lois
>



More information about the hotspot-dev mailing list