MPS issue job003798

TitleTract tables are inflexible
Statusopen
Priorityoptional
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionA tract is the unit of allocation from the arena and so segments must be made up of tracts. But this is inflexible: we want to be able to allocate in large units (so that there is less space and time overhead in maintaining the allocation table -- see job003823) but we want segments to be small (so that remembered sets are more accurate).
AnalysisTracts are used for allocation, for address lookup, for the arena's ring of spare pages, and by the MFS and MV pool classes. So these concerns need to be separated.

Plan is as follows:

1. Fix job003554 so that we don't have to worry about chunks.
2. Eliminate the duplicate white set from the tract table -- use the segment's white set instead. (This adds an extra lookup in some cases in _mps_fix2, so evaluate the performance.)
3. Eliminate the tract utility pointer from MFS (by storing the extents on a ring).
4. Eliminate the use of tracts for the arena's ring of spare pages (by storing the spare memory in a land).
5. Improve the performance of MVFF so that it is competitive with MV (and so suitable for use as the arena's control pool).
5. Use MVFF as the arena's control pool.
6. Deprecate and remove the MV pool class.
7. Eliminate the tract's pool utility pointer.
8. Create a new module that handles tract/page lookup *only*, separating out the allocation purpose of the current tract table.
9. Swap this in for tract lookup.
10. Evaluate performance.
11. Rip out old tract table.
How foundinspection
EvidenceMPS strategy discussion <https://info.ravenbrook.com/mail/2014/05/15/19-19-13/0/>
Created byGareth Rees
Created on2014-05-15 19:48:51
Last modified byGareth Rees
Last modified on2018-07-31 16:07:47
History2014-05-15 GDR Created.

Fixes

Change Effect Date User Description
194638 open 2018-07-13 13:09:26 Gareth Rees Merge branch/2016-03-30/tract-white-elim into the master sources.
194442 open 2018-07-05 13:37:01 Gareth Rees Merge branch/2016-03-01/mvff-control into the master sources.
194439 open 2018-07-05 12:54:16 Gareth Rees Merge branch/2018-07-04/mvff-perf into the master sources.
194414 open 2018-07-04 17:13:53 Gareth Rees Merge branch/2018-07-03/mfs-tractp into the master sources.