[commit: nofib] wip/D5470: Disable timer-based context switches (5c66e18)

git at git.haskell.org git at git.haskell.org
Sun Dec 30 18:18:21 UTC 2018


Repository : ssh://git@git.haskell.org/nofib

On branch  : wip/D5470
Link       : http://ghc.haskell.org/trac/ghc/changeset/5c66e188b50c62178f24d940cdac1c361378da56/nofib

>---------------------------------------------------------------

commit 5c66e188b50c62178f24d940cdac1c361378da56
Author: Sebastian Graf <sebastian.graf at kit.edu>
Date:   Sun Dec 30 19:17:59 2018 +0100

    Disable timer-based context switches
    
    Summary:
    In the past, we repeatedly had problems with non-deterministic allocations due to stack squeezing during context switches (#4450, #8611).
    This patch adds `+RTS -V0 -RTS` as extra `RUNTEST_OPTS` for every single-threaded benchmark.
    
    Is this the right place to add the flags? Should we also do this for all the other benchmarks?
    
    Reviewers: simonmar, osa1, nomeata, O26 nofib
    
    GHC Trac Issues: #8611
    
    Differential Revision: https://phabricator.haskell.org/D5470


>---------------------------------------------------------------

5c66e188b50c62178f24d940cdac1c361378da56
 mk/opts.mk | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/mk/opts.mk b/mk/opts.mk
index 80fb957..1f93d07 100644
--- a/mk/opts.mk
+++ b/mk/opts.mk
@@ -18,6 +18,9 @@ RUNTEST_OPTS       = $(SRC_RUNTEST_OPTS) $(WAY$(_way)_RUNTEST_OPTS) \
 ifneq "$(way)" "mp"
 # if testing GUM don't generate a -S style log file; it may well differ 
 SRC_RUNTEST_OPTS += -ghc-timing
+# Deactivate context switches to guarantee deterministic allocation
+# measurements. See Trac #8611.
+SRC_RUNTEST_OPTS += +RTS -V0 -RTS
 endif
 # SRC_RUNTEST_OPTS += +RTS -H10m -K10m -RTS
 



More information about the ghc-commits mailing list