[GHC] #7606: Stride scheduling for Haskell threads with priorities
GHC
cvs-ghc at haskell.org
Tue Feb 5 11:15:35 CET 2013
#7606: Stride scheduling for Haskell threads with priorities
---------------------------------+------------------------------------------
Reporter: ezyang | Owner: ezyang
Type: feature request | Status: new
Priority: normal | Milestone: 7.8.1
Component: Runtime System | Version: 7.7
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by ezyang):
Yep, I think any new benchmarks will probably be pretty important, maybe
even more so than the actually stride scheduling :)
> Have you thought about keeping the red-black tree nodes in the heap?
That's what I would do. Heap allocation is much faster than malloc, and
reclamation is free. You would get some advantages for free, such as when
parts of the tree are in the old generation they won't get touched during
a minor GC.
I’ve tried it, jerry-rigging StgMutArrPtrs. I concluded we’ll need to make
a custom closure (ugh!) or make some improvements to how GHC garbage
collects mutable objects (actually, I was planning on filing a bug, here
we go #7662). In the case of mutable arrays, there are some funny
characteristics: the write barriers are relatively cheap but they all get
scanned because mutable arrays are permanently on the mutable list, so we
don’t end up getting any benefits. (There aren’t any other existing
mutable objects which can be jerry-rigged here.) Adding things to the
mutable list may end up being expensive in the long run.
The current malloc'd red-black implementation is pretty efficient; we
maintain a free list and allocate them in blocks. I haven't implemented
reclamation yet but even if we leak all of the free nodes it will only
consume space up to the high watermark of number of simultaneous threads.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7606#comment:29>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list