#650: Improve interaction between mutable arrays and GC
-----------------------------------------+----------------------------------
Reporter: simonmar | Owner:
Type: bug | Status: new
Priority: normal | Milestone: _|_
Component: Runtime System | Version: 6.4.1
Resolution: | Keywords:
Difficulty: Moderate (less than a day) | Os: Unknown/Multiple
Testcase: | Architecture: Unknown/Multiple
Failure: Runtime performance bug |
-----------------------------------------+----------------------------------
Comment (by morrow):
One other possible method to deal with this is to make old-generation
pages containing mutable array data read-only via mprotect (or
equivalent). Any later write will then cause a SIGSEGV, which is caught by
an installed signal handler which then unprotects that page and marks it
as dirty (however this needs to be done). A benefit of this is that any
future writes to that page need no write barrier. Some limitations of this
are that this reserves the SIGSEGV handler for the RTS, and this can only
provide PAGE_SIZE granularity (which for large arrays is nevertheless a
large improvement). What are people's thoughts on this? Is this (or some
variation on this) an option given GHC's RTS?
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/650#comment:16>
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