RFR(S) 8206467: Refactor G1ParallelCleaningTask into shared
Zhengyu Gu
zgu at redhat.com
Tue Aug 21 20:16:18 UTC 2018
Thanks for reviewing, Kim!
I will fix styles/indents and file RFE accordingly.
-Zhengyu
On 08/21/2018 04:01 PM, Kim Barrett wrote:
>> On Jul 6, 2018, at 12:56 PM, Zhengyu Gu <zgu at redhat.com> wrote:
>>
>> Hi,
>>
>> Shenandoah has a similar version that was derived from G1ParallelCleaningTask, with additional time tracking of each cleaning task.
>>
>> Due to code movement and renaming, the changeset appears to be large, but it is really not. Other than the renaming, followings are the actual diffs vs. current G1ParallelCleaningTask:
>>
>> - G1StringDedupUnlinkOrOopsDoClosure is passed as a parameter.
>>
>> - Counters (_string_processed, _string_removed, and etc.) in StringAndSymbolCleaningTask are volatile now, cause they are updated using atomic operations.
>>
>> - Added ParallelCleaningTimes and ParallelCleaningTaskTimer classes for tracking times.
>>
>> - ParallelCleaningTask::work() added time tracking code.
>>
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8206467
>> Webrev: http://cr.openjdk.java.net/~zgu/8206467/webrev.00/
>>
>>
>> Test:
>> hotspot_gc on Linux 64 (fastdebug and release)
>>
>>
>> Thanks,
>>
>> -Zhengyu
>
> A few minor issues (mostly formatting), but otherwise looks good. I
> don't need a new webrev.
>
> ------------------------------------------------------------------------------
> src/hotspot/share/gc/shared/parallelCleaning.hpp
> 51 StringAndSymbolCleaningTask(BoolObjectClosure* is_alive, StringDedupUnlinkOrOopsDoClosure* dedup_closure,
> 52 bool process_strings, bool process_symbols, bool process_string_dedup);
>
> Fix indentation of parameter list.
>
> ------------------------------------------------------------------------------
> src/hotspot/share/gc/shared/parallelCleaning.hpp
> 57 size_t strings_processed() const { return (size_t)_strings_processed; }
> 58 size_t strings_removed() const { return (size_t)_strings_removed; }
> 59
> 60 size_t symbols_processed() const { return (size_t)_symbols_processed; }
> 61 size_t symbols_removed() const { return (size_t)_symbols_removed; }
>
> Pre-existing: The counter members should be of type size_t, and remove
> the casts here. Oh, but that would run into problems because the
> possibly_parallel_unlink functions take int*. Bleh. Don't try to fix
> any of this as part of this change; please file an RFE.
>
> ------------------------------------------------------------------------------
> src/hotspot/share/gc/shared/parallelCleaning.cpp
> 34 StringAndSymbolCleaningTask::StringAndSymbolCleaningTask(BoolObjectClosure* is_alive,
>
> While I appreciate the newly introduced line breaks in the parameter
> list, the chosen indentation of the additional lines is atypical for
> HotSpot and makes the transition between parameters and initializer
> list hard to spot.
>
> ------------------------------------------------------------------------------
> src/hotspot/share/gc/shared/parallelCleaning.cpp
> 45 _initial_string_table_size = (int) StringTable::the_table()->table_size();
> 46 _initial_symbol_table_size = SymbolTable::the_table()->table_size();
>
> Pre-existing: These initializations ought to be in the initializer
> list.
>
> ------------------------------------------------------------------------------
> src/hotspot/share/gc/shared/parallelCleaning.cpp
> 120 void CodeCacheUnloadingTask::add_to_postponed_list(CompiledMethod* nm) {
> ...
> 125 } while (Atomic::cmpxchg(nm, &_postponed_list, old) != old);
>
> Mostly got re-indented to match normal HotSpot style, but this one
> line didn't for some reason.
>
> ------------------------------------------------------------------------------
>
More information about the hotspot-gc-dev
mailing list