RFR (XL): 8202845: Refactor reference processing for improved parallelism

Kim Barrett kim.barrett at oracle.com
Wed Jun 13 20:08:27 UTC 2018


> On Jun 13, 2018, at 5:18 AM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:
> 
> Hi Kim,
> 
> On Tue, 2018-06-12 at 17:18 -0400, Kim Barrett wrote:
>>> On Jun 12, 2018, at 3:39 PM, Kim Barrett <kim.barrett at oracle.com>
>>> wrote:
>>> 
>>>> On Jun 12, 2018, at 2:19 PM, Thomas Schatzl
>>>> <thomas.schatzl at oracle.com> wrote:http://cr.openjdk.java.net/~tsc
>>>> hatzl/8202845/webrev.1_to_2 (diff)
>>>> http://cr.openjdk.java.net/~tschatzl/8202845/webrev.2 (full)
>>> 
>>> Looks good.
>> 
>> One more thing I just noticed.
>> 
>> src/hotspot/share/gc/shared/referenceProcessor.cpp
>> 865   log_reflist("Phase2 Soft after", _discoveredSoftRefs,
>> _max_num_queues);
>> 866   log_reflist("Phase2 Weak after", _discoveredWeakRefs,
>> _max_num_queues);
>> 
>> at the end of process_soft_weak_final_refs.  At this stage, I think
>> there must be no soft or weak references.  Better to assert that than
>> log empty sets.
>> 
>> Similarly at the end of process_phantom_refs.
>> 
>> And the same is true for process_final_keep_alive.
>> 
> 
>  fixed in
> 
> http://cr.openjdk.java.net/~tschatzl/8202845/webrev.2_to_3 (diff)
> and
> http://cr.openjdk.java.net/~tschatzl/8202845/webrev.3 (full)
> 
> Currently running hs-tier1-3, but I do not expect issues.
> 
> Thanks!
> 
> Thomas

Looks good, except verify_total_count_zero should be debug-only rather than !PRODUCT.
In an “optimized" build it does nothing except waste time (calls total_count but does nothing
with the result because assert is suppressed).




More information about the hotspot-gc-dev mailing list