RFR: Plab fallback to minsize
Kelvin Nilsen
kdnilsen at openjdk.org
Fri Jan 6 21:46:32 UTC 2023
On Fri, 6 Jan 2023 19:45:14 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
> If there is not sufficient memory within a region to allocate the desired size of a PLAB, try to allocate a smaller PLAB that is still larger than the minimum PLAB size. This allows more efficient packing of PLABs into available old-gen heap regions.
>
> This patch has been exercised by an internal CI regression testing pipeline and has not introduced any regressions.
>
> Modest reductions in evacuation efforts are seen on benchmarks that do heavy promotion. This is presumably because there are fewer promotion failures, thus less need to repeatedly copy "old" objects within young-gen spaces. Of note, but not entirely explained, is the observation that some evacuation effort has shifted from mutator threads to GC worker threads.
>
> Some regression in jhiccup pause times were observed. This will be explored further after additional patches are integrated.
You make a good observation about the redundant checking between the caller and callee functions here. I agree that it would be good to eventually tighten up the API specs so that we don't need this redundancy. In the meanwhile, I note that allocate_aligned() is generally in-lined into the caller's context. This allows the compiler to optimize away at least some of the redundant checks.
-------------
PR: https://git.openjdk.org/shenandoah/pull/195
More information about the shenandoah-dev
mailing list