[GHC] #7606: Stride scheduling for Haskell threads with priorities
GHC
cvs-ghc at haskell.org
Tue Jan 22 06:34:57 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):
> Currently, if there's a very long run queue, a minor GC won't have to
traverse a lot of it because it will be in the old generation, but here
the GC has to look at every element of the priority queue. We should make
a benchmark with a long run queue and see if that's an issue.
Based on some investigation, this appears to be probably one of the
primary causes of slowdown. I checked to see if this was an issue by
checking how often markCapability calls occurred versus actual evacuations
performed on TSO objects. Although the number of markCapability calls is
the same in both cases, TSO objects get evacuated a lot more frequently in
the new world.
One of the things that I'm not really clear about is how to tell if I can
skip evacuating an object. This GC part of the code is pretty opaque to
me, and while I feel like there should be something like a log(n) solution
I'm not seeing an implementation path.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7606#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list