[GHC] #367: Infinite loops can hang Concurrent Haskell
GHC
cvs-ghc at haskell.org
Wed Sep 26 23:28:38 CEST 2012
#367: Infinite loops can hang Concurrent Haskell
------------------------------------------+---------------------------------
Reporter: simonpj | Owner: ezyang
Type: bug | Status: new
Priority: lowest | Milestone: _|_
Component: Compiler | Version: 6.4.1
Resolution: None | Keywords: scheduler allocation
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: Incorrect result at runtime | Difficulty: Unknown
Testcase: | Blockedby:
Blocking: | Related:
------------------------------------------+---------------------------------
Comment(by ezyang@…):
commit d3128bfc286002862e916296629a22f1ce987e4e
{{{
Author: Edward Z. Yang <ezyang at mit.edu>
Date: Mon Sep 17 18:28:49 2012 +0200
Partially fix #367 by adding HpLim checks to entry with -fno-omit-
yields.
The current fix is relatively dumb as far as where to add HpLim
checks: it will always perform a check unless we know that we're
returning from a closure or we are doing a non let-no-escape case
analysis. The performance impact on the nofib suite looks like this:
Min +5.7% -0.0% -6.5% -6.4% -50.0%
Max +6.3% +5.8% +5.0% +5.5% +0.8%
Geometric Mean +6.2% +0.1% +0.5% +0.5% -0.8%
Overall, the executable bloat is the biggest problem, so we keep the
old
omit-yields optimization on by default. Remember that if you need an
interruptibility guarantee, you need to recompile all of your
libraries
with -fno-omit-yields.
A better fix would involve only inserting the yields necessary to
break
loops; this is left as future work.
Signed-off-by: Edward Z. Yang <ezyang at mit.edu>
compiler/codeGen/StgCmmExpr.hs | 4 +--
compiler/codeGen/StgCmmHeap.hs | 57
++++++++++++++++++++++++++--------------
compiler/main/DynFlags.hs | 4 +++
docs/users_guide/using.xml | 18 ++++++++++++
4 files changed, 60 insertions(+), 23 deletions(-)
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/367#comment:34>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list