RFR (7xS): 8071280, 8162928, 8177707, 8177044, 8178148, 8175554, 8178151: Remembered set update/scan improvements
Kim Barrett
kim.barrett at oracle.com
Thu Apr 20 00:06:18 UTC 2017
- Previous message (by thread): RFR (7xS): 8071280, 8162928, 8177707, 8177044, 8178148, 8175554, 8178151: Remembered set update/scan improvements
- Next message (by thread): RFR (7xS): 8071280, 8162928, 8177707, 8177044, 8178148, 8175554, 8178151: Remembered set update/scan improvements
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
> On Apr 11, 2017, at 7:30 AM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:
> 8071280: Specialize HeapRegion::oops_on_card_seq_iterate_careful() for
> use during concurrent refinement and updating the rset
>
> CR: https://bugs.openjdk.java.net/browse/JDK-8071280
> Webrev: http://cr.openjdk.java.net/~tschatzl/8071280/webrev
>
> As the title indicates, this change allows specializations of
> HeapRegion::oops_on_card_seq_iterate_careful() according to current GC
> phase (concurrent or during gc) to allow to remove some checks.
> This is mostly a preparatory change for the next ones.
Only this changeset. I’ll be sending out comments on others later, separate messages for each.
------------------------------------------------------------------------------
src/share/vm/gc/g1/heapRegion.inline.hpp
149 assert(ClassUnloadingWithConcurrentMark,
Is this assertion really correct? There is a similar assertion in
block_size, but it is protected by a call to block_is_obj. I'm not
seeing similar protection for this one. Maybe I'm missing someting?
------------------------------------------------------------------------------
src/share/vm/gc/g1/g1RemSet.cpp
728 }
Close brace is now mis-indented.
------------------------------------------------------------------------------
src/share/vm/gc/g1/heapRegion.hpp
329 template <class Closure, bool is_gc_active>
330 inline bool do_oops_on_card_in_humongous(MemRegion mr,
and
682 template <class Closure, bool is_gc_active>
683 inline bool oops_on_card_seq_iterate_careful(MemRegion mr, Closure* cl);
It would be better to have the is_gc_active template parameter first.
That would allow the Closure parameter to be deduced in calls, e.g.
instead of
card_processed = r->oops_on_card_seq_iterate_careful<G1UpdateRSOrPushRefOopClosure, true>(dirty_region, &update_rs_oop_cl);
one would use
card_processed = r->oops_on_card_seq_iterate_careful<true>(dirty_region, &update_rs_oop_cl);
with Closure being deduced from the type of the argument in the call.
------------------------------------------------------------------------------
- Previous message (by thread): RFR (7xS): 8071280, 8162928, 8177707, 8177044, 8178148, 8175554, 8178151: Remembered set update/scan improvements
- Next message (by thread): RFR (7xS): 8071280, 8162928, 8177707, 8177044, 8178148, 8175554, 8178151: Remembered set update/scan improvements
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the hotspot-gc-dev
mailing list