[GHC] #8224: Excessive system time -- new IO manager problem?

GHC ghc-devs at haskell.org
Thu Nov 10 11:15:42 UTC 2016


#8224: Excessive system time -- new IO manager problem?
-------------------------------------+-------------------------------------
        Reporter:  rrnewton          |                Owner:
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Runtime System    |              Version:  7.7
      Resolution:                    |             Keywords:  IO Manager,
                                     |  System Time
Operating System:  Linux             |         Architecture:  x86_64
 Type of failure:  Runtime           |  (amd64)
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #9221             |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by alkar):

 In previous post I used ghc-7.10.1 by mistake. With 8.0.1 (`stack ghc --
 -O2 -rtsopts -threaded x`) single core performance is same (around
 `0.18s`), but with `+RTS -N` I get better results:
 {{{
 real    0m0.843s
 user    0m22.149s
 sys     0m2.256s
 }}}

 Even better with `-A200M`:

 {{{
 real    0m0.793s
 user    0m1.200s
 sys     0m0.692s
 }}}

 {{{
 $ head -c10MB /dev/zero | ./x +RTS -s -N > /dev/null
      406,012,416 bytes allocated in the heap
       30,457,408 bytes copied during GC
          674,776 bytes maximum residency (2 sample(s))
          665,248 bytes maximum slop
               27 MB total memory in use (0 MB lost due to fragmentation)

                                      Tot time (elapsed)  Avg pause  Max
 pause
   Gen  0       775 colls,   775 par   16.945s   0.429s     0.0006s
 0.0302s
   Gen  1         2 colls,     1 par    0.052s   0.002s     0.0012s
 0.0013s

   Parallel GC work balance: 0.14% (serial 0%, perfect 100%)

   TASKS: 98 (1 bound, 97 peak workers (97 total), using -N48)

   SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

   INIT    time    2.660s  (  0.091s elapsed)
   MUT     time   11.065s  (  0.744s elapsed)
   GC      time   16.997s  (  0.432s elapsed)
   EXIT    time    0.028s  (  0.003s elapsed)
   Total   time   30.750s  (  1.270s elapsed)

   Alloc rate    36,694,519 bytes per MUT second

   Productivity  36.1% of total user, 873.3% of total elapsed

 gc_alloc_block_sync: 38774
 whitehole_spin: 0
 gen[0].sync: 408
 gen[1].sync: 130
 }}}

 I attached outputs of `lstopo` (I don't have -no-graphics variant there)
 and `numactl -H`.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8224#comment:32>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list