RFR(XL): 8224675: Late GC barrier insertion for ZGC

Per Liden per.liden at oracle.com
Thu May 23 19:32:42 UTC 2019


Hi Nils,

On 2019-05-23 16:25, Nils Eliasson wrote:
[...]
> The wart that was fixup_partial_loads in zHeap has also been made 
> redundant.

We should also be able to remove the function, task and closure for this:

  327 class ZFixupPartialLoadsClosure : public ZRootsIteratorClosure {
  328 public:
  329   virtual void do_oop(oop* p) {
  330     ZBarrier::mark_barrier_on_root_oop_field(p);
  331   }
  332
  333   virtual void do_oop(narrowOop* p) {
  334     ShouldNotReachHere();
  335   }
  336 };
  337
  338 class ZFixupPartialLoadsTask : public ZTask {
  339 private:
  340   ZThreadRootsIterator _thread_roots;
  341
  342 public:
  343   ZFixupPartialLoadsTask() :
  344       ZTask("ZFixupPartialLoadsTask"),
  345       _thread_roots() {}
  346
  347   virtual void work() {
  348     ZFixupPartialLoadsClosure cl;
  349     _thread_roots.oops_do(&cl);
  350   }
  351 };
  352
  353 void ZHeap::fixup_partial_loads() {
  354   ZFixupPartialLoadsTask task;
  355   _workers.run_parallel(&task);
  356 }

cheers,
Per

> Testing:
> 
> Hotspot tier 1-6, CTW, jcstress, micros, runthese, kitchensink, and then 
> some. All with -XX:+ZVerifyViews.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8224675
> 
> Webrev: http://cr.openjdk.java.net/~neliasso/8224675/webrev.01/
> 
> 
> Please review,
> 
> Regards,
> 
> Nils
> 


More information about the hotspot-compiler-dev mailing list