< prev index next >
src/share/vm/runtime/arguments.cpp
Print this page
*** 65,82 ****
// Note: This is a special bug reporting site for the JVM
#define DEFAULT_VENDOR_URL_BUG "http://bugreport.java.com/bugreport/crash.jsp"
#define DEFAULT_JAVA_LAUNCHER "generic"
#define UNSUPPORTED_GC_OPTION(gc) \
! do { \
if (gc) { \
if (FLAG_IS_CMDLINE(gc)) { \
! warning(#gc " is not supported in this VM. Using Serial GC."); \
} \
FLAG_SET_DEFAULT(gc, false); \
} \
! } while(0)
char* Arguments::_jvm_flags_file = NULL;
char** Arguments::_jvm_flags_array = NULL;
int Arguments::_num_jvm_flags = 0;
char** Arguments::_jvm_args_array = NULL;
--- 65,82 ----
// Note: This is a special bug reporting site for the JVM
#define DEFAULT_VENDOR_URL_BUG "http://bugreport.java.com/bugreport/crash.jsp"
#define DEFAULT_JAVA_LAUNCHER "generic"
#define UNSUPPORTED_GC_OPTION(gc) \
! do { \
if (gc) { \
if (FLAG_IS_CMDLINE(gc)) { \
! warning("-XX:+" #gc " not supported in this VM"); \
} \
FLAG_SET_DEFAULT(gc, false); \
} \
! } while(0)
char* Arguments::_jvm_flags_file = NULL;
char** Arguments::_jvm_flags_array = NULL;
int Arguments::_num_jvm_flags = 0;
char** Arguments::_jvm_args_array = NULL;
*** 1832,1861 ****
(size_t)os::vm_allocation_granularity(),
os::max_page_size(),
CollectorPolicy::compute_heap_alignment());
}
void Arguments::select_gc_ergonomically() {
if (os::is_server_class_machine()) {
if (should_auto_select_low_pause_collector()) {
! FLAG_SET_ERGO(bool, UseConcMarkSweepGC, true);
} else {
#if defined(JAVASE_EMBEDDED)
! FLAG_SET_ERGO(bool, UseParallelGC, true);
#else
! FLAG_SET_ERGO(bool, UseG1GC, true);
#endif
}
} else {
! FLAG_SET_ERGO(bool, UseSerialGC, true);
}
}
void Arguments::select_gc() {
if (!gc_selected()) {
select_gc_ergonomically();
! guarantee(gc_selected(), "No GC selected");
}
}
void Arguments::set_ergonomics_flags() {
select_gc();
--- 1832,1880 ----
(size_t)os::vm_allocation_granularity(),
os::max_page_size(),
CollectorPolicy::compute_heap_alignment());
}
+ bool Arguments::gc_selected() {
+ #if INCLUDE_ALL_GCS
+ return UseSerialGC || UseParallelGC || UseParallelOldGC || UseConcMarkSweepGC || UseG1GC;
+ #else
+ return UseSerialGC;
+ #endif // INCLUDE_ALL_GCS
+ }
+
void Arguments::select_gc_ergonomically() {
+ #if INCLUDE_ALL_GCS
if (os::is_server_class_machine()) {
if (should_auto_select_low_pause_collector()) {
! FLAG_SET_ERGO_IF_DEFAULT(bool, UseConcMarkSweepGC, true);
} else {
#if defined(JAVASE_EMBEDDED)
! FLAG_SET_ERGO_IF_DEFAULT(bool, UseParallelGC, true);
#else
! FLAG_SET_ERGO_IF_DEFAULT(bool, UseG1GC, true);
#endif
}
} else {
! FLAG_SET_ERGO_IF_DEFAULT(bool, UseSerialGC, true);
}
+ #else
+ UNSUPPORTED_GC_OPTION(UseG1GC);
+ UNSUPPORTED_GC_OPTION(UseParallelGC);
+ UNSUPPORTED_GC_OPTION(UseParallelOldGC);
+ UNSUPPORTED_GC_OPTION(UseConcMarkSweepGC);
+ UNSUPPORTED_GC_OPTION(UseParNewGC);
+ FLAG_SET_ERGO_IF_DEFAULT(bool, UseSerialGC, true);
+ #endif // INCLUDE_ALL_GCS
}
void Arguments::select_gc() {
if (!gc_selected()) {
select_gc_ergonomically();
! if (!gc_selected()) {
! vm_exit_during_initialization("Garbage collector not selected (default collector explicitly disabled)", NULL);
! }
}
}
void Arguments::set_ergonomics_flags() {
select_gc();
*** 1976,1995 ****
log_trace(gc)("MarkStackSize: %uk MarkStackSizeMax: %uk", (unsigned int) (MarkStackSize / K), (uint) (MarkStackSizeMax / K));
log_trace(gc)("ConcGCThreads: %u", ConcGCThreads);
}
- #if !INCLUDE_ALL_GCS
- #ifdef ASSERT
- static bool verify_serial_gc_flags() {
- return (UseSerialGC &&
- !(UseParNewGC || (UseConcMarkSweepGC) || UseG1GC ||
- UseParallelGC || UseParallelOldGC));
- }
- #endif // ASSERT
- #endif // INCLUDE_ALL_GCS
-
void Arguments::set_gc_specific_flags() {
#if INCLUDE_ALL_GCS
// Set per-collector flags
if (UseParallelGC || UseParallelOldGC) {
set_parallel_gc_flags();
--- 1995,2004 ----
*** 2007,2018 ****
}
if (MinHeapFreeRatio == 100) {
// Keeping the heap 100% free is hard ;-) so limit it to 99%.
FLAG_SET_ERGO(uintx, MinHeapFreeRatio, 99);
}
- #else // INCLUDE_ALL_GCS
- assert(verify_serial_gc_flags(), "SerialGC unset");
#endif // INCLUDE_ALL_GCS
}
julong Arguments::limit_by_allocatable_memory(julong limit) {
julong max_allocatable;
--- 2016,2025 ----
*** 3784,3804 ****
}
#endif
}
}
- #if !INCLUDE_ALL_GCS
- static void force_serial_gc() {
- FLAG_SET_DEFAULT(UseSerialGC, true);
- UNSUPPORTED_GC_OPTION(UseG1GC);
- UNSUPPORTED_GC_OPTION(UseParallelGC);
- UNSUPPORTED_GC_OPTION(UseParallelOldGC);
- UNSUPPORTED_GC_OPTION(UseConcMarkSweepGC);
- UNSUPPORTED_GC_OPTION(UseParNewGC);
- }
- #endif // INCLUDE_ALL_GCS
-
// Sharing support
// Construct the path to the archive
static char* get_shared_archive_path() {
char *shared_archive_path;
if (SharedArchiveFile == NULL) {
--- 3791,3800 ----
*** 4189,4201 ****
}
// Set object alignment values.
set_object_alignment();
- #if !INCLUDE_ALL_GCS
- force_serial_gc();
- #endif // INCLUDE_ALL_GCS
#if !INCLUDE_CDS
if (DumpSharedSpaces || RequireSharedSpaces) {
jio_fprintf(defaultStream::error_stream(),
"Shared spaces are not supported in this VM\n");
return JNI_ERR;
--- 4185,4194 ----
< prev index next >