Title | AMC pool may scan parts buffered segments many times |
Status | open |
Priority | optional |
Assigned user | Richard Brooksby |
Organization | Ravenbrook |
Description | When the AMC pool forwards an object it turns the destination segment grey via the forwarding buffer. If that segment is scanned up to the buffer scan limit, the segment is blackened (and so no longer read protected). But if another object is forwarded onto that same segment, it will turn grey again (and gain the reead barrier) and be scanned again from its base. |
Analysis | This behaviour is not incorrect, and it's not clear how often it actually happens, so the impact is unknown and should be assessed. If the problem is significant, then AMC might need to keep track of parts of segments already scanned, so that it knows which part of a segment is black and which is grey. This is per-trace information. It might be sufficient to do this only while the segment is buffered, and take the hit of a possible single extra scan when the buffer is emptied, so that we store this information in the AMC buffer struct, rather than for every AMC segment. |
How found | inspection |
Evidence | poolamc.c AMCScan |
Created by | Richard Brooksby |
Created on | 2016-04-20 14:14:53 |
Last modified by | Richard Brooksby |
Last modified on | 2016-04-20 14:14:53 |
History | 2016-04-20 RB Created. |