From 74d6305ac70f59e6ef2a905c9e9fe86c21b5e18e Mon Sep 17 00:00:00 2001 From: Vlad Brezae Date: Thu, 13 Oct 2016 16:53:02 +0300 Subject: [PATCH 1/2] [sgen] Enable concurrent gc by default on desktop Linux (except android), MacOS and Windows. --- configure.ac | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/configure.ac b/configure.ac index 9a10f6d4917d..2f7dc1467e48 100644 --- a/configure.ac +++ b/configure.ac @@ -111,6 +111,7 @@ case "$host" in libgc_threads=win32 with_sigaltstack=no with_tls=pthread + with_sgen_default_concurrent=yes LN_S=cp # This forces libgc to use the DllMain based thread registration code on win32 libgc_configure_args="$libgc_configure_args --enable-win32-dllmain=yes" @@ -126,6 +127,7 @@ case "$host" in libgc_threads=pthreads with_sigaltstack=no use_sigposix=yes + with_sgen_default_concurrent=yes ;; *-*-kfreebsd*-gnu) CPPFLAGS="$CPPFLAGS -DGC_FREEBSD_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP -DTHREAD_LOCAL_ALLOC -pthread" @@ -136,6 +138,7 @@ case "$host" in need_link_unlink=yes with_sigaltstack=no use_sigposix=yes + with_sgen_default_concurrent=yes ;; *-*-*freebsd*) if test "x$PTHREAD_CFLAGS" = "x"; then @@ -159,6 +162,7 @@ case "$host" in libgc_threads=pthreads use_sigposix=yes has_dtrace=yes + with_sgen_default_concurrent=yes ;; *-*-*openbsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE -DGC_OPENBSD_THREADS -DPLATFORM_BSD -D_REENTRANT -DUSE_MMAP" @@ -173,6 +177,7 @@ case "$host" in libgc_threads=pthreads with_sigaltstack=no use_sigposix=yes + with_sgen_default_concurrent=yes ;; *-*-linux-android*) platform_android=yes @@ -236,6 +241,7 @@ case "$host" in disable_munmap=yes ;; esac + with_sgen_default_concurrent=yes ;; *-*-nacl*) CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE -D_REENTRANT -DUSE_MMAP" @@ -308,8 +314,10 @@ case "$host" in CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC $BROKEN_DARWIN_FLAGS" CPPFLAGS_FOR_EGLIB="$CPPFLAGS_FOR_EGLIB $BROKEN_DARWIN_CPPFLAGS" CFLAGS_FOR_EGLIB="$CFLAGS_FOR_EGLIB $BROKEN_DARWIN_FLAGS" + with_sgen_default_concurrent=yes ;; x*64-*-darwin*) + with_sgen_default_concurrent=yes ;; arm*-darwin*) has_dtrace=no From 2b08b7c451c9becd8559f039d364d45ded68a25f Mon Sep 17 00:00:00 2001 From: Vlad Brezae Date: Thu, 13 Oct 2016 17:06:59 +0300 Subject: [PATCH 2/2] [tests] Select sgen major explicitly in tests On configurations where we were only testing serial (using the default collector), we now explicitly test concurrent to put emphasis on it. --- mono/tests/Makefile.am | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/mono/tests/Makefile.am b/mono/tests/Makefile.am index 36e5c9a5ef01..18d79197e740 100644 --- a/mono/tests/Makefile.am +++ b/mono/tests/Makefile.am @@ -1136,31 +1136,31 @@ SGEN_REGULAR_TESTS= \ endif sgen-regular-tests: $(SGEN_REGULAR_TESTS) - $(MAKE) sgen-regular-tests-plain + $(MAKE) sgen-regular-tests-ms $(MAKE) sgen-regular-tests-ms-conc $(MAKE) sgen-regular-tests-ms-conc-split $(MAKE) sgen-regular-tests-ms-split - $(MAKE) sgen-regular-tests-ms-split-95 - $(MAKE) sgen-regular-tests-plain-clear-at-gc + $(MAKE) sgen-regular-tests-ms-conc-split-95 + $(MAKE) sgen-regular-tests-ms-clear-at-gc $(MAKE) sgen-regular-tests-ms-conc-clear-at-gc - $(MAKE) sgen-regular-tests-ms-split-clear-at-gc + $(MAKE) sgen-regular-tests-ms-conc-split-clear-at-gc -sgen-regular-tests-plain: $(SGEN_REGULAR_TESTS) test-runner.exe - MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) +sgen-regular-tests-ms: $(SGEN_REGULAR_TESTS) test-runner.exe + MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="major=marksweep" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) sgen-regular-tests-ms-conc: $(SGEN_REGULAR_TESTS) test-runner.exe MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="major=marksweep-conc" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) sgen-regular-tests-ms-conc-split: $(SGEN_REGULAR_TESTS) test-runner.exe MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="major=marksweep-conc,minor=split" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) sgen-regular-tests-ms-split: $(SGEN_REGULAR_TESTS) test-runner.exe - MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="minor=split" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) -sgen-regular-tests-ms-split-95: $(SGEN_REGULAR_TESTS) test-runner.exe - MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="minor=split,alloc-ratio=95" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) -sgen-regular-tests-plain-clear-at-gc: $(SGEN_REGULAR_TESTS) test-runner.exe - MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="clear-at-gc" MONO_GC_PARAMS="" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) + MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="major=marksweep,minor=split" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) +sgen-regular-tests-ms-conc-split-95: $(SGEN_REGULAR_TESTS) test-runner.exe + MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="major=marksweep-conc,minor=split,alloc-ratio=95" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) +sgen-regular-tests-ms-clear-at-gc: $(SGEN_REGULAR_TESTS) test-runner.exe + MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="clear-at-gc" MONO_GC_PARAMS="major=marksweep" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) sgen-regular-tests-ms-conc-clear-at-gc: $(SGEN_REGULAR_TESTS) test-runner.exe MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="clear-at-gc" MONO_GC_PARAMS="major=marksweep-conc" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) -sgen-regular-tests-ms-split-clear-at-gc: $(SGEN_REGULAR_TESTS) test-runner.exe - MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="clear-at-gc" MONO_GC_PARAMS="minor=split" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) +sgen-regular-tests-ms-conc-split-clear-at-gc: $(SGEN_REGULAR_TESTS) test-runner.exe + MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="clear-at-gc" MONO_GC_PARAMS="major=marksweep-conc,minor=split" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --timeout 900 $(SGEN_REGULAR_TESTS) SGEN_TOGGLEREF_TESTS= \ sgen-toggleref.exe