MPS issue job003985

TitleThe reservoir pool is entirely bogus
Statusclosed
Priorityoptional
Assigned userRichard Brooksby
OrganizationRavenbrook
Description1. The reservoir pool only holds single arena grains. It can't even return memory large enough for a default AMC segment (job003869).
2. ReservoirWithdraw will return a single tract whatever size it's asked for. This will likely cause ArenaAlloc to crash.
3. It's horribly ugly.
4. It isn't documented (job003327).
5. The only user is in an obscure corner of Open Dylan [1].
6. The MPS has a general policy for dealing with low memory situations, which doesn't involve the reservoir (job003954).
AnalysisChange the reservoir size setting interface to do nothing. Redirect reservoir allocations to normal allocations. Remove the implementation and all its overheads. If a reservoir is ever actually required, implement it in terms of spare committed memory.
How foundunknown
EvidenceThe code.
grep -IR -e mps_reservoir opendylan
[1] https://github.com/dylan-lang/opendyla...urces/lib/run-time/mps-collector.c#L228
Introduced in1.100.1
Created byRichard Brooksby
Created on2016-03-13 20:14:17
Last modified byRichard Brooksby
Last modified on2016-03-15 13:22:47
History2016-03-18 RB Created.

Fixes

Change Effect Date User Description
190106 closed 2016-03-15 13:19:27 Richard Brooksby Merging branch mps/branch/2016-03-13/without-reservation into master sources.