RFR: JDK-8219245: Shenandoah: Resolve oops in SATB filter

Aleksey Shipilev shade at redhat.com
Mon Feb 18 17:17:34 UTC 2019


On 2/18/19 6:13 PM, Roman Kennke wrote:
> When updating reference is piggy-backed on marking phase, we need to
> resolve oops that we get in SATB buffers before checking if they are
> marked, because from-space oops never get marked. This generates
> unnecessary traffic in SATB.
> 
> Fix is to add template to requires_marking() that optionally resolves
> the object, and use that when we may see forwarded objects.
> 
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8219245
> Webrev:
> http://cr.openjdk.java.net/~rkennke/JDK-8219245/webrev.00/

Um. I think true/false are swapped here:

  68   if (_heap->has_forwarded_objects()) {
  69     apply_filter(ShenandoahSATBMarkQueueFilterFn<false>(_heap), queue);
  70   } else {
  71     apply_filter(ShenandoahSATBMarkQueueFilterFn<true>(_heap), queue);
  72   }

...if there are forwarded objects, you want to resolve.

-Aleksey



More information about the shenandoah-dev mailing list