RFR: Eliminating string dedup dependency on the second bitmap

Roman Kennke rkennke at redhat.com
Fri Oct 27 15:59:29 UTC 2017


Am 27.10.2017 um 17:53 schrieb Zhengyu Gu:
> By pre-evacuating String dedup table, and using read/write barriers to 
> keep dedup table consistent, we can eliminate the dependency on 
> completed bitmap during piggyback UR phase.
>
> Webrev: 
> http://cr.openjdk.java.net/~zgu/shenandoah/strdedup_prev_evac/webrev.00/index.html
>
> Test:
>   hotspot_gc_shenandoah (fastdebug + release)
>
> Thanks,
>
> -Zhengyu

    typeArrayOop obj() {
- return _obj;
+ return typeArrayOop(oopDesc::bs()->read_barrier(_obj));
    }
  
    typeArrayOop* obj_addr() {
      return &_obj;
    }
  
    void set_obj(typeArrayOop obj) {
- _obj = obj;
+ _obj = typeArrayOop(oopDesc::bs()->write_barrier(obj));
    }


You're not reading/writing anything *to* the object. Therefore it looks wrong to do those barriers there.

+class ShenandoahEvacuateUpdateRefsClosure: the sounds like it may clash 
with something that already exists. Can you check that? Romn



More information about the shenandoah-dev mailing list