RFR (M): 8129558: Coalesce dead objects during removal of self-forwarded pointers
thomas.schatzl at oracle.com
Thu Jun 25 20:58:56 UTC 2015
thanks for the review.
On Thu, 2015-06-25 at 11:51 -0400, Tom Benson wrote:
> Hi Thomas,
> A couple of minor comments and questions:
> It looks like "_last_forwared_object_end" is misspelled throughout.
> The RemoveSelfForwardPtrObjClosure constructor was changed to set _g1 to
> G1CollectedHeap::heap() and _cm to _g1->concurrent_mark() rather being
> given them by RemoveSelfForwardPtrHRClosure. This seems a little odd,
> since RemoveSelfForwardPtrHRClosure is given the values by
> G1ParRemoveSelfForwardPtrsTask::work . Of course they'll be the same,
> but perhaps they should either be consistently inherited or not. Am I
> missing something there?
I will make them consistent.
> I think this comment is stale, possibly having been cut/pasted from the
> old version of do_object. Now, the code is processing a range which may
> have contained multiple objects:
> 69 // The object has been either evacuated or is dead. Fill it with a
> 70 // dummy object.
> In doHeapRegion, I'm a little surprised that both the old and new
> versions of the code do the _g1h->check_bitmaps() call before doing the
> updates, rather than afterward. Should it be afterward, or should
> there be another verification?
It does not matter as long it is after the
note_self_forwarding_removal_start() as it may update the ntams, and
ntams is considered in the checking.
I will provide a new webrev with your and Tony's changes soon.
More information about the hotspot-gc-dev