Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,309
    • Issues 4,309
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 383
    • Merge Requests 383
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #16807

Closed
Open
Opened Jun 12, 2019 by Matthew Pickering@mpickeringDeveloper

LDV Profiling: Make heapCensus agree with LdcCensusForDead

In particular it is clear that heapCensus traverses compact regions, but LdvCensusForDead does not.

It also seems that heapCensus traverses some memory regions managed by capabilities.

1206       for (n = 0; n < n_capabilities; n++) {                                    
1207           ws = &gc_threads[n]->gens[g];                                         
1208           heapCensusChain(census, ws->todo_bd);                                 
1209           heapCensusChain(census, ws->part_list);                               
1210           heapCensusChain(census, ws->scavd_list);                              
1211       }

I'm not sure if the LDV profiler should also traverse these areas.

The task is to work out what is in each of these regions and whether it makes sense for the LDV profiler to traverse them.

Related to #16753 (closed) and !1118 (closed)

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: ghc/ghc#16807