Mercurial > hg > graal-compiler
diff src/share/vm/runtime/arguments.cpp @ 1626:1a11430e0326
6888573: class data sharing does not always disable large pages
Reviewed-by: phh
author | jcoomes |
---|---|
date | Thu, 24 Jun 2010 15:38:42 -0700 |
parents | e9ff18c4ace7 |
children | c5f1ea9e15e8 |
line wrap: on
line diff
--- a/src/share/vm/runtime/arguments.cpp Tue Jun 22 10:03:12 2010 -0400 +++ b/src/share/vm/runtime/arguments.cpp Thu Jun 24 15:38:42 2010 -0700 @@ -1697,20 +1697,21 @@ status = status && verify_percentage(GCHeapFreeLimit, "GCHeapFreeLimit"); - // Check user specified sharing option conflict with Parallel GC - bool cannot_share = ((UseConcMarkSweepGC || CMSIncrementalMode) || UseG1GC || UseParNewGC || - UseParallelGC || UseParallelOldGC || - SOLARIS_ONLY(UseISM) NOT_SOLARIS(UseLargePages)); - + // Check whether user-specified sharing option conflicts with GC or page size. + // Both sharing and large pages are enabled by default on some platforms; + // large pages override sharing only if explicitly set on the command line. + const bool cannot_share = UseConcMarkSweepGC || CMSIncrementalMode || + UseG1GC || UseParNewGC || UseParallelGC || UseParallelOldGC || + UseLargePages && FLAG_IS_CMDLINE(UseLargePages); if (cannot_share) { // Either force sharing on by forcing the other options off, or // force sharing off. if (DumpSharedSpaces || ForceSharedSpaces) { jio_fprintf(defaultStream::error_stream(), - "Reverting to Serial GC because of %s\n", - ForceSharedSpaces ? " -Xshare:on" : "-Xshare:dump"); + "Using Serial GC and default page size because of %s\n", + ForceSharedSpaces ? "-Xshare:on" : "-Xshare:dump"); force_serial_gc(); - FLAG_SET_DEFAULT(SOLARIS_ONLY(UseISM) NOT_SOLARIS(UseLargePages), false); + FLAG_SET_DEFAULT(UseLargePages, false); } else { if (UseSharedSpaces && Verbose) { jio_fprintf(defaultStream::error_stream(), @@ -1719,6 +1720,8 @@ } no_shared_spaces(); } + } else if (UseLargePages && (UseSharedSpaces || DumpSharedSpaces)) { + FLAG_SET_DEFAULT(UseLargePages, false); } status = status && check_gc_consistency();