RFR (7xS): 8177707: Specialize G1RemSet::refine_card for concurrent/during safepoint refinement

Erik Helin erik.helin at oracle.com
Thu Jun 1 11:59:58 UTC 2017


On 05/31/2017 10:17 AM, Thomas Schatzl wrote:
> Hi Erik,
>
> On Tue, 2017-05-30 at 11:43 +0200, Erik Helin wrote:
>> On 05/09/2017 01:31 AM, Kim Barrett wrote:
>>>
>>>>
>>>> On May 5, 2017, at 7:52 AM, Thomas Schatzl <thomas.schatzl at oracle
>>>> .com> wrote:
>>>>
>>>> New webrevs:
>>>> http://cr.openjdk.java.net/~tschatzl/8177707/webrev.0_to_1/
>>>> (diff)
>>>> http://cr.openjdk.java.net/~tschatzl/8177707/webrev.1/ (full)
>>>>
>>>> Thanks,
>>>>   Thomas
>>> Looks good.
>> Looks good to me as well! I've tried to really to go through the
>> patch with a looking glass, and AFAICS all the code have been
>> duplicated correctly.
>
>  thanks.
>
> Unfortunately, with these reviews taking their time a change in the
> jdk10 repo required an update. In
> particular G1RootRegionScanClosure::apply_to_weak_ref_discovered_field(
> ) had to be replaced by
> G1RootRegionScanClosure::reference_iteration_mode() as introduced
> lately.
>
> The full patch:
>
> --- old/src/share/vm/gc/g1/g1OopClosures.hpp	2017-05-16
> 09:57:27.140974921 +0200
> +++ new/src/share/vm/gc/g1/g1OopClosures.hpp	2017-05-16
> 09:57:27.035971738 +0200
> @@ -181,7 +181,8 @@
>      _worker_i(worker_i) {
>    }
>
> -  bool apply_to_weak_ref_discovered_field() { return true; }
> +  // This closure needs special handling for InstanceRefKlass.
> +  virtual ReferenceIterationMode reference_iteration_mode() { return
> DO_DISCOVERED_AND_DISCOVERY; }
>
>    template <class T> void do_oop_nv(T* p);
>    virtual void do_oop(narrowOop* p) { do_oop_nv(p); }

Looks good! Now push it before something else changes :)
Erik

> Thanks,
>   Thomas
>



More information about the hotspot-gc-dev mailing list