#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 <ezy...@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 <ezy...@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 _______________________________________________ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs