#1589: Process creation and communication doesn't scale linearly
-------------------------------+--------------------------------------------
Reporter: guest | Owner: simonmar
Type: bug | Status: new
Priority: normal | Milestone: 6.8 branch
Component: Runtime System | Version: 6.7
Severity: minor | Resolution:
Keywords: | Difficulty: Moderate (1 day)
Os: Multiple | Testcase:
Architecture: Multiple |
-------------------------------+--------------------------------------------
Changes (by simonmar):
* owner: => simonmar
* difficulty: Unknown => Moderate (1 day)
* os: Windows => Multiple
* architecture: x86 => Multiple
Comment:
The problem is GC: try it with `-H500m`.
In fact there are two problems: both MVars and TSOs are kept in the
remembered set of the old generation instead of having a proper write
barrier, which means that all MVars and TSOs will be visited in every
minor GC.
I've fixed the problem for MVars:
{{{
Thu Oct 11 14:55:05 BST 2007 Simon Marlow <[EMAIL PROTECTED]>
* Add a proper write barrier for MVars
}}}
Now the HEAD is about 30% faster on that example with 100000 threads and
the default heap settings. We might consider merging that patch into
6.8.2.
Threads are somewhat more tricky... I've made some progress towards a fix,
but it isn't complete yet.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1589#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs