Disable timer-based context switches
ClosedPublic

Authored by sgraf on Dec 21 2018, 7:58 AM.

Details

Summary

In the past, we repeatedly had problems with non-deterministic allocations due to stack squeezing during context switches (Trac #4450, Trac #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?

Diff Detail

Repository
rNOFIB nofib
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
sgraf created this revision.Dec 21 2018, 7:58 AM
Owners added a reviewer: Restricted Owners Package.Dec 21 2018, 7:58 AM
osa1 added a comment.Dec 25 2018, 7:25 AM

Should we also do this for all the other benchmarks?

What do you mean by other benchmarks? Do you mean perf tests in GHC?

sgraf added a comment.Dec 25 2018, 7:31 AM

What do you mean by other benchmarks? Do you mean perf tests in GHC?

Sorry, I was a little unclear. I was referring to multi-threaded benchmarks within nofib. Currently, the patch doesn't apply to the "mp" way (I suspect that's for multi processor system).

sgraf added a comment.Dec 29 2018, 1:20 PM

Any objections to merging this? This could possibly manifest in a small drop in performance in perf.haskell.org, but then again, the build seems broken anyway...

If we ever find the need to do this for the "mp" way, we can just move the three lines a out of the if.

This revision was not accepted when it landed; it landed in state Needs Review.Dec 30 2018, 12:18 PM
This revision was automatically updated to reflect the committed changes.