[GHC] #7606: Stride scheduling for Haskell threads with priorities
GHC
cvs-ghc at haskell.org
Thu Jan 24 09:37:13 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 simonmar):
Great progress!
If we used actual time rather than scheduler quanta, wouldn't that fix the
heap-check case too? Calling `gettimeofday` is very cheap these days,
cheap enough that we can call it every time we emit an event in the event
log, so I'm sure it won't be a problem to call it in the scheduler.
My guess is that with `threads003` we're just pushing the size up enough
that the GC has to touch another cache line per TSO. If that's the case,
then I'm not ''too'' worried, since this is a microbenchmark and won't
affect real world performance much. But we should verify that that's
what's going on. It can't be that we're allocating another stack chunk,
because that would show up in the allocations.
Check whether the amount of memory copied by the GC goes up in proportion
to the amount you added to the TSO struct. If it is a lot more, then
something else is going on. Also try some measurements with `perf`?
Once this is squashed (or accounted for), we can move on to checking that
priorities work right, and looking at the primops and the user API.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7606#comment:20>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list