ARM: Fix incremental GC

Andrew Haley aph at redhat.com
Mon Feb 20 04:08:53 PST 2012


It was reported that ARM crashes with -Xincgc.  It turns out that
incremental mode is incompatible with the use of the shared Eden
space, and we weren't checking for that.

OK for trunk and 1.11 branch?

While I was debugging this I noticed that thread-local allocation is
turned off.  I don't know why this is: it ought to bring a substantial
improvement.  I think there may be several flags in the ARM port that
could easily be tweaked to provide substantial performance benefits.
However, before the defaults are changed we'd have to do some testing.

Andrew.


2012-02-20  Andrew Haley  <aph at redhat.com>

	* arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp (Helper_new):
	Don't use shared Eden in incremental mode.

diff -r a5c946d5f4bc -r 82c6fb23eed5 arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp
--- a/arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp	Tue Jan 31 12:36:36 2012 +0000
+++ b/arm_port/hotspot/src/cpu/zero/vm/asm_helper.cpp	Mon Feb 20 12:02:21 2012 +0000
@@ -141,7 +141,7 @@
 	if (UseTLAB) {
 	  result = (oop) thread->tlab().allocate(obj_size);
 	}
-	if (result == NULL) {
+	if (result == NULL && !CMSIncrementalMode) {
 	  need_zero = true;
 	  // Try allocate in shared eden
     retry:





More information about the distro-pkg-dev mailing list