[m-rev.] diff: Disable parallel marking on Windows again.

Peter Wang novalazy at gmail.com
Mon Oct 12 17:30:30 AEDT 2015


Despite the recent Boehm GC upgrade I can reproduce hangs with a simple
test:

    1. build samples/e.m in hlc.par.gc (any simple program)
    2. run it 1000 times

The number of marker threads is controlled by the GC_MARKERS environment
variable.  I managed to get through the test at GC_MARKERS=1 and
GC_MARKERS=2.  At GC_MARKERS=3 one of the instances would inevitably hang.
This was in a 4-CPU VM running Windows 10.

Upgrading Boehm GC to the latest development version did not help.

configure.ac:
	Disable parallel marking on Windows again.
---
 configure.ac | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 8b1a719..445a848 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3120,9 +3120,10 @@ case "$host" in
                 ;;
             *)
                 CFLAGS_FOR_THREADS="$WIN32_GC_THREADLIB"
-                ENABLE_BOEHM_THREAD_LOCAL_ALLOC="-DTHREAD_LOCAL_ALLOC"
-                ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
                 BOEHM_CFLAGS_FOR_THREADS="-DGC_THREADS $WIN32_GC_THREADLIB"
+                ENABLE_BOEHM_THREAD_LOCAL_ALLOC="-DTHREAD_LOCAL_ALLOC"
+                # Parallel marking on Windows seems unreliable.
+                # ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
                 ;;
         esac
         # avoid_sbrk?
@@ -3155,7 +3156,8 @@ case "$host" in
                     THREAD_LIBS=
                 fi
                 ENABLE_BOEHM_THREAD_LOCAL_ALLOC="-DTHREAD_LOCAL_ALLOC"
-                ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
+                # Parallel marking on Windows seems unreliable.
+                # ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
                 ;;
         esac
         ;;
@@ -3165,7 +3167,8 @@ case "$host" in
         BOEHM_CFLAGS_FOR_THREADS="-DGC_THREADS $WIN32_GC_THREADLIB"
         THREAD_LIBS="-lpthread"
         ENABLE_BOEHM_THREAD_LOCAL_ALLOC="-DTHREAD_LOCAL_ALLOC"
-        ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
+        # Parallel marking on Windows seems unreliable.
+        # ENABLE_BOEHM_PARALLEL_MARK="-DPARALLEL_MARK"
         ;;
 
     *apple*darwin*)
-- 
2.1.2




More information about the reviews mailing list