From a0d608d63ded475e1ade90b3f73a38c6655fb4fe Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 22 Sep 2014 12:33:55 +0200 Subject: open_issues/boehm_gc: Re-run on the new laplace.SCHWINGE, and lots of system updates. --- open_issues/boehm_gc.mdwn | 43 +++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 24 deletions(-) (limited to 'open_issues/boehm_gc.mdwn') diff --git a/open_issues/boehm_gc.mdwn b/open_issues/boehm_gc.mdwn index 2913eea8..09aff765 100644 --- a/open_issues/boehm_gc.mdwn +++ b/open_issues/boehm_gc.mdwn @@ -33,9 +33,9 @@ git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..upstr --> -Last reviewed up to the 5f492b98dd131bdd6c67eb56c31024420c1e7dab (2012-06-08) -sources, and for `libatomic_ops` to the -6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15) sources. +Last reviewed up to Git commit 5f492b98dd131bdd6c67eb56c31024420c1e7dab +(2012-06-08), and for `libatomic_ops` to Git commit +6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15). * `configure.ac` @@ -283,10 +283,10 @@ sources, and for `libatomic_ops` to the # Build -Here's a log of a binutils build run; this is from the -5f492b98dd131bdd6c67eb56c31024420c1e7dab (2012-06-08) sources, and for -`libatomic_ops` for the 6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15) -sources, run on kepler.SCHWINGE and coulomb.SCHWINGE. +Here's a log of a boehm-gc build run; this is from Git commit +5f492b98dd131bdd6c67eb56c31024420c1e7dab (2012-06-08), and for `libatomic_ops` +Git commit 6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15), run on +kepler.SCHWINGE and laplace.SCHWINGE. $ export LC_ALL=C $ (cd ../master/ && ln -sfn ../libatomic_ops/master libatomic_ops) @@ -299,20 +299,18 @@ sources, run on kepler.SCHWINGE and coulomb.SCHWINGE. Different hosts may default to different shells and compiler versions; thus harmonized. Using bash instead of dash as otherwise libtool explodes. -This takes up around X MiB, and needs roughly X min on kepler.SCHWINGE and -X min on coulomb.SCHWINGE. +This takes up around TODO GiB, and runs for [[TODO min|performance#measure]] on +kepler.SCHWINGE and [[TODO min|performance#measure]] on laplace.SCHWINGE. ## Analysis - $ ssh kepler.SCHWINGE 'cd tmp/source/boehm-gc/ && cat master.build/log_build* | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/linux/log_build - $ ssh coulomb.SCHWINGE 'cd tmp/boehm-gc/ && cat master.build/log_build* | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/hurd/log_build - $ diff -wu <(sed -f toolchain/logs/boehm-gc/linux/log_build.sed < toolchain/logs/boehm-gc/linux/log_build) <(sed -f toolchain/logs/boehm-gc/hurd/log_build.sed < toolchain/logs/boehm-gc/hurd/log_build) > toolchain/logs/boehm-gc/log_build.diff + $ toolchain/logs/process boehm-gc build * only GNU/Linux: `configure: WARNING: "Explicit GC_INIT() calls may be required."` @@ -326,32 +324,29 @@ X min on coulomb.SCHWINGE. $ make install 2>&1 | tee log_install [...] -This takes up around X MiB, and needs roughly X min on kepler.SCHWINGE and X -min on coulomb.SCHWINGE. +This takes up around TODO MiB, and runs for [[TODO min|performance#measure]] on +kepler.SCHWINGE and [[TODO min|performance#measure]] on laplace.SCHWINGE. ## Analysis - $ ssh kepler.SCHWINGE 'cd tmp/source/boehm-gc/ && cat master.build/log_install | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/linux/log_install - $ ssh coulomb.SCHWINGE 'cd tmp/boehm-gc/ && cat master.build/log_install | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/hurd/log_install - $ diff -wu toolchain/logs/boehm-gc/linux/log_install toolchain/logs/boehm-gc/hurd/log_install > toolchain/logs/boehm-gc/log_install.diff + $ toolchain/logs/process boehm-gc install # Testsuite - $ make -k check + $ make -k check 2>&1 | tee log_test [...] - $ (cd libatomic_ops/ && make -k check) + $ (cd libatomic_ops/ && make -k check) 2>&1 | tee log_test_ [...] -This needs roughly X min on kepler.SCHWINGE and X min on coulomb.SCHWINGE. +This runs for [[TODO min|performance#measure]] on kepler.SCHWINGE and [[TODO +min|performance#measure]] on laplace.SCHWINGE. ## Analysis - $ ssh kepler.SCHWINGE 'cd tmp/source/boehm-gc/ && cat master.build/log_check* | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/linux/log_check - $ ssh coulomb.SCHWINGE 'cd tmp/boehm-gc/ && cat master.build/log_check* | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/hurd/log_check - $ diff -wu <(sed -f toolchain/logs/boehm-gc/linux/log_check.sed < toolchain/logs/boehm-gc/linux/log_check) <(sed -f toolchain/logs/boehm-gc/hurd/log_check.sed < toolchain/logs/boehm-gc/hurd/log_check) > toolchain/logs/boehm-gc/log_check.diff + $ toolchain/logs/process boehm-gc test There are different configurations possible, but in general, the testsuite restults of GNU/Linux and GNU/Hurd look very similar. -- cgit v1.2.3 From 48bfaa670242a1d51fa263d677091d1fa7c2aa2c Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 23 Sep 2014 10:36:33 +0200 Subject: open_issues/boehm_gc: ad2be4bcad9c1de18feef7f8d7ebb98d680f064f (2014-09-20) plus [[!message-id "87ioke3iun.fsf@kepler.schwinge.homeip.net"]], ba6c3170412ef7f751ff63e2b656296265dcff93 (2014-06-13) --- open_issues/boehm_gc.mdwn | 116 +++++++++++++++++++++++++++++++++++++++++++--- toolchain/logs | 2 +- 2 files changed, 110 insertions(+), 8 deletions(-) (limited to 'open_issues/boehm_gc.mdwn') diff --git a/open_issues/boehm_gc.mdwn b/open_issues/boehm_gc.mdwn index 09aff765..bba0bc31 100644 --- a/open_issues/boehm_gc.mdwn +++ b/open_issues/boehm_gc.mdwn @@ -27,15 +27,15 @@ committed upstream should very like also be made there. -Last reviewed up to Git commit 5f492b98dd131bdd6c67eb56c31024420c1e7dab -(2012-06-08), and for `libatomic_ops` to Git commit -6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15). +Last reviewed up to Git commit ad2be4bcad9c1de18feef7f8d7ebb98d680f064f +(2014-09-20), and for `libatomic_ops` to Git commit +ba6c3170412ef7f751ff63e2b656296265dcff93 (2014-06-13). * `configure.ac` @@ -280,12 +280,111 @@ Last reviewed up to Git commit 5f492b98dd131bdd6c67eb56c31024420c1e7dab * Check `include/private/thread_local_alloc.h` re `USE_COMPILER_TLS`/`USE_PTHREAD_SPECIFIC`. + * TODO: + + * `diff --git ./include/private/gcconfig.h ./include/private/gcconfig.h` + + {+#if defined(LINUX) || defined(FREEBSD) || defined(SOLARIS) || defined(IRIX5) \+} + {+ || ((defined(USE_MMAP) || defined(USE_MUNMAP)) && !defined(USE_WINALLOC))+} + {+# define MMAP_SUPPORTED+} + {+#endif+} + + * `diff --git ./include/private/gcconfig.h ./include/private/gcconfig.h` + + #if !defined(CAN_HANDLE_FORK) && !defined(NO_HANDLE_FORK) \ + && [-((defined(GC_PTHREADS)-]{+!defined(HAVE_NO_FORK) \+} + && [-!defined(HURD)-]{+((defined(GC_PTHREADS)+} && !defined(NACL) \ + &&[-!defined(PLATFORM_ANDROID) &&-] !defined(GC_WIN32_PTHREADS)[-\-] && !defined(USE_WINALLOC)) \ + || (defined(DARWIN) && defined(MPROTECT_VDB)) || defined(HANDLE_FORK)) + /* Attempts (where supported and requested) to make GC_malloc work in */ + /* a child process fork'ed from a multi-threaded parent. */ + # define CAN_HANDLE_FORK + #endif + + {+#if defined(CAN_HANDLE_FORK) && !defined(CAN_CALL_ATFORK) \+} + {+ && !defined(HURD) && !defined(PLATFORM_ANDROID)+} + {+ /* Have working pthread_atfork(). */+} + {+# define CAN_CALL_ATFORK+} + {+#endif+} + + * `diff --git ./include/private/gcconfig.h ./include/private/gcconfig.h` + + {+#if (defined(FREEBSD) || (defined(DARWIN) && !defined(_POSIX_C_SOURCE)) \+} + {+ || (defined(SOLARIS) && (!defined(_XOPEN_SOURCE) \+} + {+ || defined(__EXTENSIONS__))) \+} + {+ || defined(LINUX)) && !defined(HAVE_DLADDR)+} + {+# define HAVE_DLADDR+} + {+#endif+} + + * `diff --git ./os_dep.c ./os_dep.c` + + @@ -3038,9 +3005,11 @@ GC_API GC_push_other_roots_proc GC_CALL GC_get_push_other_roots(void) + /* Also old MSWIN32 ACCESS_VIOLATION filter */ + # if !defined(MSWIN32) && !defined(MSWINCE) + STATIC SIG_HNDLR_PTR GC_old_bus_handler = 0; + {+# if defined(FREEBSD) || defined(HURD) || defined(HPUX)+} + STATIC GC_bool GC_old_bus_handler_used_si = FALSE; + {+# endif+} + STATIC GC_bool GC_old_segv_handler_used_si = FALSE; + + * `diff --git ./os_dep.c ./os_dep.c` + + @@ -3192,20 +3169,22 @@ GC_API GC_push_other_roots_proc GC_CALL GC_get_push_other_roots(void) + # else + GC_bool used_si; + + {+# if defined(FREEBSD) || defined(HURD) || defined(HPUX)+} + if (sig == [-SIGSEGV) {-] + [- old_handler = GC_old_segv_handler;-] + [- used_si = GC_old_segv_handler_used_si;-] + [- } else-]{+SIGBUS)+} { + old_handler = GC_old_bus_handler; + used_si = GC_old_bus_handler_used_si; + {+} else+} + {+# endif+} + {+ /* else */ {+} + {+ old_handler = GC_old_segv_handler;+} + {+ used_si = GC_old_segv_handler_used_si;+} + } + # endif + + * `diff --git ./os_dep.c ./os_dep.c` + + # if defined(HPUX) || defined(LINUX) || defined(HURD) \ + || (defined(FREEBSD) && defined(SUNOS5SIGS)) + sigaction(SIGBUS, &act, &oldact); + if [-(oldact.sa_flags-]{+((oldact.sa_flags+} & SA_SIGINFO) {+!= 0)+} { + GC_old_bus_handler = oldact.sa_sigaction; + {+# if !defined(LINUX)+} + GC_old_bus_handler_used_si = TRUE; + {+# endif+} + } else { + GC_old_bus_handler = (SIG_HNDLR_PTR)oldact.sa_handler; + {+# if !defined(LINUX)+} + GC_old_bus_handler_used_si = FALSE; + {+# endif+} + } + if (GC_old_bus_handler == (SIG_HNDLR_PTR)SIG_IGN) { + [-if (GC_print_stats)-] + [- GC_err_printf("Previously-]{+WARN("Previously+} ignored bus [-error!?\n");-]{+error!?\n", 0);+} + {+# if !defined(LINUX)+} + GC_old_bus_handler = (SIG_HNDLR_PTR)SIG_DFL; + {+# else+} + {+ /* GC_old_bus_handler is not used by GC_write_fault_handler. */+} + {+# endif+} + } {+else+} if (GC_old_bus_handler != (SIG_HNDLR_PTR)SIG_DFL) { + [-if (GC_print_stats == VERBOSE)-] + [- GC_log_printf("Replaced-]{+GC_VERBOSE_LOG_PRINTF("Replaced+} other SIGBUS handler\n"); + } + # endif /* HPUX || LINUX || HURD || (FREEBSD && SUNOS5SIGS) */ + # Build Here's a log of a boehm-gc build run; this is from Git commit -5f492b98dd131bdd6c67eb56c31024420c1e7dab (2012-06-08), and for `libatomic_ops` -Git commit 6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15), run on +ad2be4bcad9c1de18feef7f8d7ebb98d680f064f (2014-09-20) plus [[!message-id +"87ioke3iun.fsf@kepler.schwinge.homeip.net"]], and for `libatomic_ops` to Git +commit ba6c3170412ef7f751ff63e2b656296265dcff93 (2014-06-13), run on kepler.SCHWINGE and laplace.SCHWINGE. $ export LC_ALL=C @@ -308,6 +407,7 @@ kepler.SCHWINGE and [[TODO min|performance#measure]] on laplace.SCHWINGE. --> + ## Analysis $ toolchain/logs/process boehm-gc build @@ -369,6 +469,8 @@ restults of GNU/Linux and GNU/Hurd look very similar. * + * [[!wikipedia Boehm_garbage_collector]] + ## IRC, OFTC, #debian-hurd, 2012-02-05 diff --git a/toolchain/logs b/toolchain/logs index a4eb9952..4c6dcdd1 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit a4eb9952a31c503cb27d6d9c37a57b5b8ec5fc62 +Subproject commit 4c6dcdd107f632da81b619d1cab6cba6b8e22922 -- cgit v1.2.3 From f40d8cc838d69217b57f979d93bf78e3a79e934d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 23 Sep 2014 10:48:57 +0200 Subject: open_issues/boehm_gc: GCC 4.9. --- open_issues/boehm_gc.mdwn | 2 +- toolchain/logs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'open_issues/boehm_gc.mdwn') diff --git a/open_issues/boehm_gc.mdwn b/open_issues/boehm_gc.mdwn index bba0bc31..c66423c3 100644 --- a/open_issues/boehm_gc.mdwn +++ b/open_issues/boehm_gc.mdwn @@ -390,7 +390,7 @@ kepler.SCHWINGE and laplace.SCHWINGE. $ export LC_ALL=C $ (cd ../master/ && ln -sfn ../libatomic_ops/master libatomic_ops) $ (cd ../master/ && autoreconf -vfi) - $ ../master/configure --prefix="$PWD".install SHELL=/bin/bash CC=gcc-4.6 CXX=g++-4.6 --enable-cplusplus --enable-gc-debug --enable-gc-assertions --enable-assertions 2>&1 | tee log_build + $ ../master/configure --prefix="$PWD".install SHELL=/bin/bash CC=gcc-4.9 CXX=g++-4.9 --enable-cplusplus --enable-gc-debug --enable-gc-assertions --enable-assertions 2>&1 | tee log_build [...] $ make 2>&1 | tee log_build_ [...] diff --git a/toolchain/logs b/toolchain/logs index 4c6dcdd1..04839cc7 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit 4c6dcdd107f632da81b619d1cab6cba6b8e22922 +Subproject commit 04839cc75bc1a75cdd8b155275d00e2a296432b6 -- cgit v1.2.3 From 098dd44b0ac7202eca5285309322931fd101467a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 21 Jan 2015 20:13:52 +0100 Subject: open_issues/boehm_gc: bf62552626acc7ad8babdc350a6365cb97ec8776 (2015-01-07), 09887cae2790e29ff535cc56f7bd0c4459ef4e2b (2015-01-09) --- open_issues/boehm_gc.mdwn | 24 +++++++----------------- toolchain/logs | 2 +- 2 files changed, 8 insertions(+), 18 deletions(-) (limited to 'open_issues/boehm_gc.mdwn') diff --git a/open_issues/boehm_gc.mdwn b/open_issues/boehm_gc.mdwn index c66423c3..535bed61 100644 --- a/open_issues/boehm_gc.mdwn +++ b/open_issues/boehm_gc.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2010, 2012, 2013, 2014 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2010, 2012, 2013, 2014, 2015 Free Software +Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -33,9 +33,9 @@ git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefi --> -Last reviewed up to Git commit ad2be4bcad9c1de18feef7f8d7ebb98d680f064f -(2014-09-20), and for `libatomic_ops` to Git commit -ba6c3170412ef7f751ff63e2b656296265dcff93 (2014-06-13). +Last reviewed up to Git commit bf62552626acc7ad8babdc350a6365cb97ec8776 +(2015-01-07), and for `libatomic_ops` to Git commit +09887cae2790e29ff535cc56f7bd0c4459ef4e2b (2015-01-09). * `configure.ac` @@ -382,9 +382,8 @@ ba6c3170412ef7f751ff63e2b656296265dcff93 (2014-06-13). # Build Here's a log of a boehm-gc build run; this is from Git commit -ad2be4bcad9c1de18feef7f8d7ebb98d680f064f (2014-09-20) plus [[!message-id -"87ioke3iun.fsf@kepler.schwinge.homeip.net"]], and for `libatomic_ops` to Git -commit ba6c3170412ef7f751ff63e2b656296265dcff93 (2014-06-13), run on +bf62552626acc7ad8babdc350a6365cb97ec8776 (2015-01-07), and for `libatomic_ops` +Git commit 09887cae2790e29ff535cc56f7bd0c4459ef4e2b (2015-01-09), run on kepler.SCHWINGE and laplace.SCHWINGE. $ export LC_ALL=C @@ -398,9 +397,6 @@ kepler.SCHWINGE and laplace.SCHWINGE. Different hosts may default to different shells and compiler versions; thus harmonized. Using bash instead of dash as otherwise libtool explodes. -This takes up around TODO GiB, and runs for [[TODO min|performance#measure]] on -kepler.SCHWINGE and [[TODO min|performance#measure]] on laplace.SCHWINGE. -