[GHC] #7606: Stride scheduling for Haskell threads with priorities
GHC
cvs-ghc at haskell.org
Thu Jan 24 05:23: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):
OK, I've fixed all of the performance problems, except for the TSO one.
{{{
--------------------------------------------------------------------------------
Program Size Allocs Runtime Elapsed TotalMem
--------------------------------------------------------------------------------
callback001 +0.0% +0.0% -0.6% +0.0% +0.0%
callback002 +0.0% +0.0% +0.2% +0.0% +0.0%
chan +0.0% +0.0% +0.2% +0.2% +3.2%
sieve +0.0% +0.0% -0.4% -0.1% +0.0%
threads001 +0.0% +0.0% +0.8% +0.8% +0.0%
threads003 +0.0% -0.0% +0.1% +0.3% +0.0%
threads006 +0.0% +0.0% +35.1% +34.9% +52.7%
threads007 +0.0% +0.0% -0.1% +0.0% +0.0%
}}}
I don't think the TSO problem (in threads006) has to do with influencing
stack size; when I run with GC stats, I don't see any thread overflows
(the stack is only one word smaller), and the overall allocation remains
the same (TSO ends up being 0x10 aligned, but I don't see why that would
cause performance problems...)
{{{
big (slows down)
size = 0x80
sizeOf(StgTSO) = 0x80 (0x10 * 8)
free = 0x7ffff6b0a800
allocate(0x70) = 0x7ffff6b0a800 (stack)
free = 0x7ffff6b0ab80 (+0x380 == 0x70 * 8)
allocate(0x10) = 0x7ffff6b0ab80 (tso)
free = 0x7ffff6b0ac00 (+0x80)
# overall, free += 0x400
medium (is fine)
size = 0x80
sizeOf(StgTSO) = 0x78 (0xf * 8)
free = 0x7ffff6b0a800
allocate(0x71) = 0x7ffff6b0a800 (stack)
free = 0x7ffff6b0ab88 (+0x388 == 0x71 * 8)
allocate(0xf) = 0x7ffff6b0ab88 (tso)
free = 0x7ffff6b0ac00 (+0x78)
# overall, free += 0x400
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7606#comment:18>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list