6824570: ParNew: Fix memory leak introduced in 6819891

Allocate worker-local overflow stacks, introduced in 6819891, along with ParNewGeneration, rather than with the per-scavenge ParScanThreadState.

Reviewed-by: jmasa
This commit is contained in:
Y. Srinivas Ramakrishna 2009-04-02 15:57:41 -07:00
parent 137a679446
commit ce3f3161da
4 changed files with 48 additions and 17 deletions

View file

@ -971,7 +971,7 @@ void Arguments::set_parnew_gc_flags() {
} else {
no_shared_spaces();
// By default YoungPLABSize and OldPLABSize are set to 4096 and 1024 correspondinly,
// By default YoungPLABSize and OldPLABSize are set to 4096 and 1024 respectively,
// these settings are default for Parallel Scavenger. For ParNew+Tenured configuration
// we set them to 1024 and 1024.
// See CR 6362902.
@ -987,6 +987,16 @@ void Arguments::set_parnew_gc_flags() {
if (AlwaysTenure) {
FLAG_SET_CMDLINE(intx, MaxTenuringThreshold, 0);
}
// When using compressed oops, we use local overflow stacks,
// rather than using a global overflow list chained through
// the klass word of the object's pre-image.
if (UseCompressedOops && !ParGCUseLocalOverflow) {
if (!FLAG_IS_DEFAULT(ParGCUseLocalOverflow)) {
warning("Forcing +ParGCUseLocalOverflow: needed if using compressed references");
}
FLAG_SET_DEFAULT(ParGCUseLocalOverflow, true);
}
assert(ParGCUseLocalOverflow || !UseCompressedOops, "Error");
}
}