Commit e2d614e4 authored by Sebastian Graf's avatar Sebastian Graf Committed by Sebastian Graf

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
parent c985746f
Pipeline #777 passed with stage
in 4 minutes and 35 seconds
......@@ -17,7 +17,16 @@ 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
SRC_RUNTEST_OPTS += -ghc-timing
# Deactivate context switches to guarantee deterministic allocation
# measurements. See Trac #8611.
# We might want this to also happen in the "mp" way. I left it here,
# assuming that "mp" (probably for multi-processor system) entails
# nondeterministic measurements anyway, but I don't really know enough
# about this to make substantiated claims.
SRC_RUNTEST_OPTS += +RTS -V0 -RTS
endif
# SRC_RUNTEST_OPTS += +RTS -H10m -K10m -RTS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment