[GHC] #7763: Resource limits for Haskell

GHC cvs-ghc at haskell.org
Tue Mar 12 05:53:40 CET 2013


#7763: Resource limits for Haskell
-----------------------------+----------------------------------------------
Reporter:  ezyang            |          Owner:  ezyang          
    Type:  feature request   |         Status:  new             
Priority:  normal            |      Component:  Profiling       
 Version:  7.7               |       Keywords:                  
      Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
 Failure:  None/Unknown      |      Blockedby:                  
Blocking:                    |        Related:                  
-----------------------------+----------------------------------------------
Description changed by ezyang:

Old description:

> {{{
> commit 1f5eb79cc278fd64ee3f1f4249ea3b7404f62ba1
> Author: Edward Z. Yang <ezyang at mit.edu>
> Date:   Thu Mar 7 13:53:31 2013 -0800
>
>     Primops and runtime support for space resource limits.
>
>     This patch adds support for resource limits in Haskell, especially
>     for monitoring and triggering events when portions of Haskell code
>     exceed memory usage and/or allocation.  The system is described in
>     more detail at.
>
> http://hackage.haskell.org/trac/ghc/wiki/Commentary/ResourceLimits
>
>     This patch adds the following types:
>
>         CostCentre# - non-GCd pointer to CostCentre struct
>         CostCentreStack# - non-GCd pointer to CostCentreStack struct
>         Listener# - GC'd object for listening to pointer events
>
>     and the following primops:
>
>         ccToAddr
>         addrToCC
>         ccsToAddr
>         addrToCCS
>
>         newCC#
>         setCCSOf#
>         withCCS#
>         pushCC#
>         queryCCS#
>         listenCCS#
>         unlistenCCS#
>
>     These previously existing primops have had their types changed,
>     mainly for better type safety (replacing Addr# with CostCentreStack#)
>
>         getCCSOf#
>         getCurrentCCS#
>
>     We add the following new RTS options:
>
>         -hl     equivalent to -hc but also keeps census information in-
> memory
>                 for access and does not write out a *.hp file
>
>         -xf     modified cost-centre stack semantics, where function
> entries
>                 never modify the stack (so only CAFs and explicit set
> CCCS
>                 affect cost-centres).
>
>     To utilize these new features, compile with -prof and run with +RTS
> -hl -xf
> }}}
>
> See also
> http://hackage.haskell.org/trac/ghc/wiki/Commentary/ResourceLimits

New description:

 {{{
 commit 1f5eb79cc278fd64ee3f1f4249ea3b7404f62ba1
 Author: Edward Z. Yang <ezyang at mit.edu>
 Date:   Thu Mar 7 13:53:31 2013 -0800

     Primops and runtime support for space resource limits.

     This patch adds support for resource limits in Haskell, especially
     for monitoring and triggering events when portions of Haskell code
     exceed memory usage and/or allocation.  The system is described in
     more detail at.

         http://hackage.haskell.org/trac/ghc/wiki/Commentary/ResourceLimits

     This patch adds the following types:

         CostCentre# - non-GCd pointer to CostCentre struct
         CostCentreStack# - non-GCd pointer to CostCentreStack struct
         Listener# - GC'd object for listening to pointer events

     and the following primops:

         ccToAddr
         addrToCC
         ccsToAddr
         addrToCCS

         newCC#
         setCCSOf#
         withCCS#
         pushCC#
         queryCCS#
         listenCCS#
         unlistenCCS#

     These previously existing primops have had their types changed,
     mainly for better type safety (replacing Addr# with CostCentreStack#)

         getCCSOf#
         getCurrentCCS#

     We add the following new RTS options:

         -hl     equivalent to -hc but also keeps census information in-
 memory
                 for access and does not write out a *.hp file

         -xf     modified cost-centre stack semantics, where function
 entries
                 never modify the stack (so only CAFs and explicit set CCCS
                 affect cost-centres).

     To utilize these new features, compile with -prof and run with +RTS
 -hl -xf
 }}}

 See also
 http://hackage.haskell.org/trac/ghc/wiki/Commentary/ResourceLimits

 Probably the most dodgy parts of the patch is the primop code for
 {{{withCCS#}}}, and some of the refactoring of the heap profiler.

--

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



More information about the ghc-tickets mailing list