RFR: Make partial GC concurrent
Christine Flood
cflood at redhat.com
Mon Oct 9 17:40:11 UTC 2017
Couple of quick high level questions to be sure I understand....
If we have a partial collection in the middle of concurrent marking, we
ignore pointers into the collection set (from regions) and we treat all
pointers into the to-regions as live? Or do we do something more clever?
It seems like this can leave garbage on the table.
What happens if we cancel a conc partial gc? Do we have to do a complete
update-refs phase?
I'm worried that there's a window where these flags are inconsistent. Are
we sure that nothing bad can happen?
+ void ShenandoahHeap::set_concurrent_partial_in_progress(bool
in_progress) {+ _concurrent_partial_in_progress = in_progress;+
JavaThread::satb_mark_queue_set().set_active_all_threads(in_progress,
!in_progress);+
set_evacuation_in_progress_at_safepoint(in_progress);+ }+
Christine
On Mon, Oct 9, 2017 at 12:36 PM, Aleksey Shipilev <shade at redhat.com> wrote:
> On 10/09/2017 06:07 PM, Roman Kennke wrote:
> > Differential webrev:
> > http://cr.openjdk.java.net/~rkennke/concpartial/webrev.03.diff/
> > <http://cr.openjdk.java.net/%7Erkennke/concpartial/webrev.03.diff/>
> > Full webrev:
> > http://cr.openjdk.java.net/~rkennke/concpartial/webrev.03/
> > <http://cr.openjdk.java.net/%7Erkennke/concpartial/webrev.03/>
> >
> > Good now?
>
> Good now.
>
> Thanks,
> -Aleksey
>
>
>
More information about the shenandoah-dev
mailing list