From 4c367806e465660d81dd5d9ac469a51873e2fe87 Mon Sep 17 00:00:00 2001 From: kvn Date: Tue, 8 Feb 2011 16:12:16 -0800 Subject: [PATCH] 7014874: Incorrect COOPs modes on solaris-{sparcv9,amd64} with ParallelGC Summary: Align old gen size down to keep specified heap size. Reviewed-by: ysr --- .../parallelScavenge/parallelScavengeHeap.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp b/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp index 5eebf2437..98a9c9573 100644 --- a/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp +++ b/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -112,9 +112,12 @@ jint ParallelScavengeHeap::initialize() { yg_cur_size = MAX2(yg_cur_size, yg_min_size); og_min_size = align_size_up(og_min_size, og_align); - og_max_size = align_size_up(og_max_size, og_align); + // Align old gen size down to preserve specified heap size. + assert(og_align == yg_align, "sanity"); + og_max_size = align_size_down(og_max_size, og_align); + og_max_size = MAX2(og_max_size, og_min_size); size_t og_cur_size = - align_size_up(_collector_policy->old_gen_size(), og_align); + align_size_down(_collector_policy->old_gen_size(), og_align); og_cur_size = MAX2(og_cur_size, og_min_size); pg_min_size = align_size_up(pg_min_size, pg_align); -- GitLab