#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