Skip to content

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)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information