Request for review: 6976350 G1: deal with fragmentation while copying objects during GC

Jon Masamitsu jon.masamitsu at
Fri Feb 1 22:58:53 UTC 2013

line 4386

Please add the brackets for the outer for loop.  I'm not used to seeing it
without the brackets even though they are not strictly needed.

line 1821 same comment about brackets for for-statement.

line 1869

You always retire alloc_buf1.  Did you consider retiring the buffer that 
has the
less words_remaining?

line 1762

Can you make _alloc_buffers two dimensional?  Then you wouldn't need the
buf_idx() method.

GCAllocPriority is an enum but you use them as integers in the for loops.
Can you make the for loop index variable an enum GCAllocPriority?


On 1/28/2013 12:21 PM, Tao Mao wrote:
> 6976350 G1: deal with fragmentation while copying objects during GC
> webrev:
> changeset:
> Basically, we want to reuse more of par-allocation buffers instead of 
> retiring it immediately when it encounters an object larger than its 
> remaining part.
> (1) instead of previously using one allocation buffer per GC purpose, 
> we use N(=2) buffers per GC purpose and modify the corresponding code. 
> The changeset would easily scale up to whatever N (though Tony 
> Printezis suggests 2, or 3 may be good enough)
> *(2) Two places of cleanup: allocate_during_gc_slow() is removed due 
> to its never being called.
>                                               access modifier (public) 
> before trim_queue() is redundant.

More information about the hotspot-gc-dev mailing list