# HG changeset patch # User coleenp # Date 1277740985 14400 # Node ID c5f1ea9e15e8adf02acd3f289ea70e8f081b3a59 # Parent 1a11430e0326560f7747328a8981ab7a285263e9# Parent 5a297ea605c73286cabb8a978befce762062400a Merge diff -r 5a297ea605c7 -r c5f1ea9e15e8 src/os/solaris/vm/osThread_solaris.hpp --- a/src/os/solaris/vm/osThread_solaris.hpp Sat Jun 26 00:19:55 2010 -0700 +++ b/src/os/solaris/vm/osThread_solaris.hpp Mon Jun 28 12:03:05 2010 -0400 @@ -123,7 +123,7 @@ int set_interrupt_callback (Sync_Interrupt_Callback * cb); void remove_interrupt_callback(Sync_Interrupt_Callback * cb); - void OSThread::do_interrupt_callbacks_at_interrupt(InterruptArguments *args); + void do_interrupt_callbacks_at_interrupt(InterruptArguments *args); // *************************************************************** // java.lang.Thread.interrupt state. diff -r 5a297ea605c7 -r c5f1ea9e15e8 src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp --- a/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Sat Jun 26 00:19:55 2010 -0700 +++ b/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Mon Jun 28 12:03:05 2010 -0400 @@ -861,7 +861,7 @@ cmpxchg_long_func_t* os::atomic_cmpxchg_long_func = os::atomic_cmpxchg_long_bootstrap; add_func_t* os::atomic_add_func = os::atomic_add_bootstrap; -extern "C" _solaris_raw_setup_fpu(address ptr); +extern "C" void _solaris_raw_setup_fpu(address ptr); void os::setup_fpu() { address fpu_cntrl = StubRoutines::addr_fpu_cntrl_wrd_std(); _solaris_raw_setup_fpu(fpu_cntrl); diff -r 5a297ea605c7 -r c5f1ea9e15e8 src/share/vm/memory/genCollectedHeap.cpp --- a/src/share/vm/memory/genCollectedHeap.cpp Sat Jun 26 00:19:55 2010 -0700 +++ b/src/share/vm/memory/genCollectedHeap.cpp Mon Jun 28 12:03:05 2010 -0400 @@ -179,9 +179,14 @@ } n_covered_regions += _gen_specs[i]->n_covered_regions(); } - assert(total_reserved % pageSize == 0, "Gen size"); + assert(total_reserved % pageSize == 0, + err_msg("Gen size; total_reserved=" SIZE_FORMAT ", pageSize=" + SIZE_FORMAT, total_reserved, pageSize)); total_reserved += perm_gen_spec->max_size(); - assert(total_reserved % pageSize == 0, "Perm Gen size"); + assert(total_reserved % pageSize == 0, + err_msg("Perm size; total_reserved=" SIZE_FORMAT ", pageSize=" + SIZE_FORMAT ", perm gen max=" SIZE_FORMAT, total_reserved, + pageSize, perm_gen_spec->max_size())); if (total_reserved < perm_gen_spec->max_size()) { vm_exit_during_initialization(overflow_msg); diff -r 5a297ea605c7 -r c5f1ea9e15e8 src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Sat Jun 26 00:19:55 2010 -0700 +++ b/src/share/vm/runtime/arguments.cpp Mon Jun 28 12:03:05 2010 -0400 @@ -1692,20 +1692,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(), @@ -1714,6 +1715,8 @@ } no_shared_spaces(); } + } else if (UseLargePages && (UseSharedSpaces || DumpSharedSpaces)) { + FLAG_SET_DEFAULT(UseLargePages, false); } status = status && check_gc_consistency();