[GHC] #8224: Excessive system time -- new IO manager problem?
GHC
ghc-devs at haskell.org
Wed Sep 4 17:40:34 CEST 2013
#8224: Excessive system time -- new IO manager problem?
-------------------------------------+-------------------------------------
Reporter: rrnewton | Owner:
Type: bug | Status: new
Priority: high | Milestone: 7.8.1
Component: Runtime System | Version: 7.7
Keywords: IO Manager, | Operating System: Linux
System Time | Type of failure: Runtime
Architecture: x86_64 (amd64) | performance bug
Difficulty: Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: |
-------------------------------------+-------------------------------------
This is an issue that came to light when testing the patches on #910.
You can see some of the numbers there. Basically, recent GHC HEAD builds,
running a large number of threads blocked on MVars will result in burning
a lot of system time.
The attached file provides a mediocre reproducer. With it, you can see
that building with HEAD as of Aug 31st and running with `-RTS -N32` will
result in around 200ms system time, whereas GHC 7.6.3 spends about 30ms in
system time. This shows the disparity, but the result is not that
egregious.
A more noticeable example is on ticket #910, where when running on 31
threads, there is an 8 minutes of system time for 17 minutes of user time,
and yet at one thread that system time drops to under two seconds!
{{{
1 thread: real 1m20.028s user 1m17.921s sys 0m1.768s
31 threads: real 1m27.445s user 17m0.314s sys 8m0.175s
}}}
It needs to be determined whether this system time is a result of the
parallel compilation patches on #910, or whether it is a new problem with
the runtime system, and in particular with the parallel IO manager. I am
inclined to believe that compiling in parallel involves extra IO
(repeatedly reading interface files?), but not eight minutes of it!!
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8224>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list