--- a/hotspot/src/share/vm/gc/shared/concurrentGCThread.cpp Tue Feb 09 12:19:05 2016 +0100
+++ b/hotspot/src/share/vm/gc/shared/concurrentGCThread.cpp Wed Feb 10 12:32:46 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2016, 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
@@ -60,7 +60,7 @@
void ConcurrentGCThread::wait_for_universe_init() {
MutexLockerEx x(CGC_lock, Mutex::_no_safepoint_check_flag);
while (!is_init_completed() && !_should_terminate) {
- CGC_lock->wait(Mutex::_no_safepoint_check_flag, 200);
+ CGC_lock->wait(Mutex::_no_safepoint_check_flag, 1);
}
}
--- a/hotspot/src/share/vm/gc/shared/concurrentGCThread.hpp Tue Feb 09 12:19:05 2016 +0100
+++ b/hotspot/src/share/vm/gc/shared/concurrentGCThread.hpp Wed Feb 10 12:32:46 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2016, 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
@@ -32,7 +32,7 @@
friend class VMStructs;
protected:
- bool _should_terminate;
+ bool volatile _should_terminate;
bool _has_terminated;
// Create and start the thread (setting it's priority high.)
--- a/hotspot/src/share/vm/runtime/globals.hpp Tue Feb 09 12:19:05 2016 +0100
+++ b/hotspot/src/share/vm/runtime/globals.hpp Wed Feb 10 12:32:46 2016 +0000
@@ -2012,11 +2012,15 @@
range(min_intx, 100) \
\
product(uintx, InitiatingHeapOccupancyPercent, 45, \
- "Percentage of the (entire) heap occupancy to start a " \
- "concurrent GC cycle. It is used by GCs that trigger a " \
- "concurrent GC cycle based on the occupancy of the entire heap, " \
- "not just one of the generations (e.g., G1). A value of 0 " \
- "denotes 'do constant GC cycles'.") \
+ "The percent occupancy (IHOP) of the current old generation " \
+ "capacity above which a concurrent mark cycle will be initiated " \
+ "Its value may change over time if adaptive IHOP is enabled, " \
+ "otherwise the value remains constant. " \
+ "In the latter case a value of 0 will result as frequent as " \
+ "possible concurrent marking cycles. A value of 100 disables " \
+ "concurrent marking. " \
+ "Fragmentation waste in the old generation is not considered " \
+ "free space in this calculation. (G1 collector only)") \
range(0, 100) \
\
manageable(intx, CMSTriggerInterval, -1, \
--- a/hotspot/src/share/vm/runtime/init.cpp Tue Feb 09 12:19:05 2016 +0100
+++ b/hotspot/src/share/vm/runtime/init.cpp Wed Feb 10 12:32:46 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, 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
@@ -181,8 +181,7 @@
}
}
-
-static bool _init_completed = false;
+static volatile bool _init_completed = false;
bool is_init_completed() {
return _init_completed;