[GHC] #8046: Make the timer management scale better across multicore

GHC ghc-devs at haskell.org
Sat Nov 22 02:30:45 UTC 2014


#8046: Make the timer management scale better across multicore
-------------------------------------+-------------------------------------
              Reporter:  tibbe       |            Owner:
                  Type:  feature     |           Status:  new
  request                            |        Milestone:
              Priority:  normal      |          Version:  7.6.3
             Component:  Compiler    |         Keywords:
            Resolution:              |     Architecture:  Unknown/Multiple
      Operating System:              |       Difficulty:  Unknown
  Unknown/Multiple                   |       Blocked By:
       Type of failure:  Runtime     |  Related Tickets:  #7653
  performance bug                    |
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------
Changes (by thomie):

 * failure:  None/Unknown => Runtime performance bug
 * type:  bug => feature request
 * related:   => #7653


Old description:

> A recent commit
>
> {{{
> commit e843e73690f828498f6e33bb89f47a50c3ab2ac9
> Author: Ian Lynagh <ian at well-typed.com>
> Date:   Sat Jun 8 20:19:59 2013 +0100
>
>     IO manager: Edit the timeout queue directly, rather than using an
> edit list
>
>     Fixes #7653.
> }}}
>
> undid an optimization to the management of timeouts (to fix a bug, which
> is good). We should check how much this hurt performance, but it might be
> better to rewrite the timeout management altogether. The current scheme
> scales poorly to several cores. We should probably have one priority
> queue per core and use an efficient mutable data structure.

New description:

 Commit 2d5eccdf1cfb389074cc2e5b52ae40b535c3b235
 {{{
 Author: Ian Lynagh <ian at well-typed.com>
 Date:   Sat Jun 8 20:19:59 2013 +0100

     IO manager: Edit the timeout queue directly, rather than using an edit
 list

     Fixes #7653.
 }}}

 undid an optimization to the management of timeouts (to fix a bug, which
 is good). We should check how much this hurt performance, but it might be
 better to rewrite the timeout management altogether. The current scheme
 scales poorly to several cores. We should probably have one priority queue
 per core and use an efficient mutable data structure.

--

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


More information about the ghc-tickets mailing list