RFR: Reclaimed humongous regions should count towards immediate garbage

Zhengyu Gu zgu at redhat.com
Tue Aug 22 19:19:28 UTC 2017


  338     if (region->is_humongous_start()) {
  339       assert(region->has_live() == 
heap->is_marked_complete(oop(region->bottom() + 
BrooksPointer::word_size())),
  340              "Humongous liveness and marks should agree");
  341       if (!region->has_live()) {
  342         heap->reclaim_humongous_region_at(region);
  343         immediate_regions++;
  344         immediate_garbage += region->garbage();
  345       }
  346     }

#343: humongous can have more than one regions, should add all of them here?

-Zhengyu

On 08/22/2017 02:58 PM, Aleksey Shipilev wrote:
> With cycle shortcutting, it matters that we get this right. Humongous objects reclaimed before cset
> construction should be counted as immediate garbage, so that we shortcut more cycles, otherwise we
> do some cycles for almost nothing. For example, in some SPECjvm tests, the immediate garbage in
> humongous regions is responsible for >5% of total garbage, tripping the shortcutting threshold with
> this fix.
> 
> Webrev:
>   http://cr.openjdk.java.net/~shade/shenandoah/immediate-humongous/webrev.01/
> 
> Testing: hotspot_gc_shenandoah, some benchmarks
> 
> Thanks,
> -Aleksey
> 


More information about the shenandoah-dev mailing list