
#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