|Title||Tract tables are inflexible|
|Assigned user||Gareth Rees|
|Description||A 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).|
|Analysis||Tracts 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.
|Evidence||MPS strategy discussion <|
|Created by||Gareth Rees|
|Created on||2014-05-15 19:48:51|
|Last modified by||Gareth Rees|
|Last modified on||2018-07-31 16:07:47|
|History||2014-05-15 GDR Created.|
|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.|