RFR (S): 8067339: PLAB reallocation might result in failure to allocate object in that recently allocated PLAB

Mikael Gerdin mikael.gerdin at oracle.com
Fri Aug 14 08:42:59 UTC 2015


Hi Thomas,

On 2015-08-14 10:29, Thomas Schatzl wrote:
> Hi all,
>
>    can I have reviews for the following small fix: if G1 reallocates a
> PLAB for an object of size X, it allocates a new PLAB of size Y.
>
> PLABs are required to contain enough space for the object plus some
> alignment reserve; so if X >= Y - alignment-reserve, G1 failed to
> allocate this object it just allocated the PLAB for into that PLAB,
> resulting in an evacuation failure although there is actually enough
> space.
>
> As far as I know this has been a rare occurrence until now because
> current PLAB sizing tended to maximize PLAB sizes, and it is rare to
> have such large objects, but with future changes that actually try to
> size the PLABs so that the expected waste is kept, I noticed a few cases
> of that issue occurring. So this needs to be fixed.
>
> The fix is to consider the required alignment reserve in the PLAB
> allocation request.
>
> This is a day one G1 bug.
>
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8067339
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8067339/webrev/

Looks good to me.

> Testing:
> JPRT, vm.gc testlist, lots of testing.

Lots of testing sounds excellent :)

/Mikael

>
> Thanks,
>    Thomas
>
>



More information about the hotspot-gc-dev mailing list