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

Thomas Schatzl thomas.schatzl at oracle.com
Wed May 31 08:17:07 UTC 2017


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); }

Thanks,
  Thomas




More information about the hotspot-gc-dev mailing list