Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8045200 | 8u25 | Thomas Schatzl | P5 | Resolved | Fixed | b01 |
JDK-8032235 | 8u20 | Thomas Schatzl | P5 | Resolved | Fixed | b01 |
JDK-8053205 | emb-8u26 | Thomas Schatzl | P5 | Resolved | Fixed | b17 |
The do_gen_barrier template parameter is set to false in all closures that are used in G1.
Further, the code added by this template parameter in G1ParCopyClosure::do_oop_work is conceptually flawed anyway: it calls ParScanClosure::par_do_barrier(), which does not work in G1.
In particular, it uses OopsInGenClosure::gen_boundary() which cannot be used in G1.
Also remove the G1ParScanAndMarkClosure typedef which is the only one that sets this do_gen_barrier template parameter to true, but is otherwise unreferenced.
I also think OopsInHeapRegionClosure should inherit from ExtendedOopClosure, not OopsInGenClosure, as G1 does not have such a simple view on generations as other collectors (i.e. a simple address boundary).
This would also decrease memory footprint of closures, possibly increasing locality of access of other members that are actually accessed in the oop closures.
Further, the code added by this template parameter in G1ParCopyClosure::do_oop_work is conceptually flawed anyway: it calls ParScanClosure::par_do_barrier(), which does not work in G1.
In particular, it uses OopsInGenClosure::gen_boundary() which cannot be used in G1.
Also remove the G1ParScanAndMarkClosure typedef which is the only one that sets this do_gen_barrier template parameter to true, but is otherwise unreferenced.
I also think OopsInHeapRegionClosure should inherit from ExtendedOopClosure, not OopsInGenClosure, as G1 does not have such a simple view on generations as other collectors (i.e. a simple address boundary).
This would also decrease memory footprint of closures, possibly increasing locality of access of other members that are actually accessed in the oop closures.
- backported by
-
JDK-8032235 Remove do_gen_barrier template parameter in G1ParCopyClosure
-
- Resolved
-
-
JDK-8045200 Remove do_gen_barrier template parameter in G1ParCopyClosure
-
- Resolved
-
-
JDK-8053205 Remove do_gen_barrier template parameter in G1ParCopyClosure
-
- Resolved
-