#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):

 Replying to [comment:22 simonmar]:
 > Replying to [comment:20 ezyang]:
 > > Fascinatingly enough, this doesn't help all that much, since
 instruction alignments adds in nops to fill in the space savings.
 >
 > But we don't actually align the heap-check failure branch, so I'm
 confused.  Can you post the asm code you're seeing?

 I misspoke; actually, we're page-aligning the data section, and the
 savings aren't enough to get us to the previous page. It's technically a
 benefit, but only if the increase in size means you can't fit the entire
 code block in the instruction cache...

 {{{
 - 12 .text         001e239c  0804a770  0804a770  00002770  2**4
 + 12 .text         001e23bc  0804a770  0804a770  00002770  2**4
                    CONTENTS, ALLOC, LOAD, READONLY, CODE
 }}}

 > I had in mind making it a transitive property - a function would get the
 alloc flag if it is guaranteed to allocate within a bounded time, so then
 any callers don't need a yield check.

 Hm, I guess this is good for the little blocks we generate which only have
 one exit point, and not so good if there are multiple exit points (since
 all of them would need the Alloc flag set to work.)

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/367#comment:23>
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

Reply via email to