[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