Scheduling bug with forkOS + MVar
I have noticed a weird scheduling behavior when performing some experiments with the fasta benchmark [1] from The Computer Language
Benchmarks Game. When I switch forkIO
by forkOS
the scheduler stops to assign work for some capabilities, and they stay idle for the whole execution of the program.
ThreadScope view using forkIO: https://s31.postimg.org/r3mclspe3/fork_IO_N8_ghc8.png
ThreadScope view using forkOS: https://s31.postimg.org/p9n265fff/fork_OS_N8_ghc8.png
I was able to reproduce this behavior in both GHC 7.10.2 and GHC 8.0.2. I was also able to reproduce it on two different machines running Ubuntu Server 14.04.3 LTS (kernel 3.19.0-25):
-
2x10-core Intel Xeon E5-2660 v2 processors (Ivy Bridge), 2.20 GHz, with 256GB of DDR 1600MHz
-
4-core Intel i7-3770 (IvyBridge) with 8 GB of DDR 1600MHz
Source code + .eventlog files: https://dl.dropboxusercontent.com/u/5798150/fasta-bug.zip
[1] http://benchmarksgame.alioth.debian.org/u64q/program.php?test=fasta&lang=ghc&id=7
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Runtime System |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | simonmar |
Operating system | |
Architecture |