RFR(M): 6407976: GC worker number should be unsigned
Evgeniya Stepanova
evgeniya.stepanova at oracle.com
Mon Apr 20 13:27:23 UTC 2015
The webrev for the diff could be found at
http://cr.openjdk.java.net/~eistepan/6407976/webrev.01.diff/
But changes are visible only in patch files, since there are only
white-spaces
changes.
Thanks,
Jane
On 17.04.2015 16:53, Evgeniya Stepanova wrote:
> Hi,
>
> Please look at the new webrev:
> http://cr.openjdk.java.net/~eistepan/6407976/webrev.01
>
> Thank you!
> Jane
> On 15.04.2015 11:31, Evgeniya Stepanova wrote:
>> Hi Igor, Stefan, Jesper
>>
>> Thank you very much for the reviews!
>> On 15.04.2015 10:57, Stefan Karlsson wrote:
>>> On 2015-04-14 21:51, Jesper Wilhelmsson wrote:
>>>> Stefan Karlsson skrev den 14/4/15 14:05:
>>>>>
>>>>>
>>>>> On 2015-04-09 14:30, Evgeniya Stepanova wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Please review fix for JDK-6407976.
>>>>>> In some source files GC worker threads numbers are being stored as
>>>>>> signed values and same values in other classes are being stored
>>>>>> as unsigned
>>>>>> values. Fix changed GC worker thread number to be uint.
>>>>>>
>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-6407976
>>>>>> webrev: http://cr.openjdk.java.net/~eistepan/6407976/webrev.00/
>>>>>
>>>>> http://cr.openjdk.java.net/~eistepan/6407976/webrev.00/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp.patch
>>>>>
>>>>>
>>>>> void G1CollectedHeap::reset_taskqueue_stats() {
>>>>> - const int n = workers()->total_workers();
>>>>> - for (int i = 0; i < n; ++i) {
>>>>> + const uint n = workers()->total_workers();
>>>>> + for (int i = 0; i < (int) n; ++i) {
>>>>> task_queue(i)->stats.reset();
>>>>> }
>>>>> }
>>>>>
>>>>> Why do you have this (int) cast here? Didn't you change the
>>>>> task_queue function
>>>>> with:
>>>>> - RefToScanQueue *task_queue(int i) const;
>>>>> + RefToScanQueue *task_queue(uint i) const;
>>>>>
>>>>
>>>> That (int) does not exist in the diffs or frame view of the webrev,
>>>> only in the patch. In the rest of the webrev 'i' in the loop is uint.
>>>>
>>>> Jane, please make sure your webrev contains the latest version of
>>>> your change. For some reason old versions of some files seems to be
>>>> mixed with new ones in this webrev.
>>>
>>> I wonder if this is yet another case of this bug:
>>> https://bugs.openjdk.java.net/browse/CODETOOLS-7901115 - webrev -r
>>> generates broken patch files
>>>
>> That's really strange. I'll double check patches next time to prevent
>> this happened again
>>>>
>>>>>
>>>>> http://cr.openjdk.java.net/~eistepan/6407976/webrev.00/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp.patch
>>>>>
>>>>>
>>>>> You should keep the parameter alignments:
>>>>>
>>>>> -int AdaptiveSizePolicy::calc_active_workers(uintx total_workers,
>>>>> +uint AdaptiveSizePolicy::calc_active_workers(uintx total_workers,
>>>>> uintx active_workers,
>>>>> uintx
>>>>> application_workers) {
>>>>>
>>>>> -int AdaptiveSizePolicy::calc_active_conc_workers(uintx
>>>>> total_workers,
>>>>> +uint AdaptiveSizePolicy::calc_active_conc_workers(uintx
>>>>> total_workers,
>>>>> uintx
>>>>> active_workers,
>>>>> uintx
>>>>> application_workers) {
>>>>>
>>>>>
>>>>> This goes for the other files as well.
>> Thank you, will fix
>>
>>>>>
>>>>> http://cr.openjdk.java.net/~eistepan/6407976/webrev.00/src/share/vm/runtime/vm_version.cpp.udiff.html
>>>>>
>>>>>
>>>>> As Igor mentioned, it would be good to only use uint:
>>>>>
>>>>> -int Abstract_VM_Version::_parallel_worker_threads = 0;
>>>>> +unsigned int Abstract_VM_Version::_parallel_worker_threads = 0;
>>>>
>>>> Looking at the rest of vm_version.cpp we can see that unsigned int
>>>> is consistently used throughout the file. I don't know why, but
>>>> maybe there is a reason. We should probably check with runtime
>>>> before introducing uint. In any case I don't think this change
>>>> should introduce uint in just a single place. If we want this file
>>>> to use uint that should be changed throughout the file in a
>>>> separate change.
>>>
>>> OK. Let's use unsigned int then.
>>
>> I also think it should be done with the separate rfr for all
>> sources. So I'll keep it "as is" for now.
>>
>> Thanks once again,
>> Jane
>>>
>>> Thanks,
>>> StefanK
>>>
>>>>
>>>> Thanks,
>>>> /Jesper
>>>>
>>>>>
>>>>> Thanks,
>>>>> StefanK
>>>>>
>>>>>>
>>>>>> tested by running all hotspot tests on all platforms
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> Jane
>>>>>>
>>>>>
>>>
>>
>> --
>> /Evgeniya Stepanova/
>
> --
> /Evgeniya Stepanova/
--
/Evgeniya Stepanova/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20150420/6a88e595/attachment.htm>
More information about the hotspot-gc-dev
mailing list