Title | Culprit analysis is too hard. |
Status | open |
Priority | optional |
Assigned user | Richard Brooksby |
Organization | Ravenbrook |
Description | Culprit analysis is too hard. By culprit analysis we mean finding out why the heap is too large, why this object (or objects) is alive, and similar questions. Culprit analysis would be useful for Configura [1]. |
Analysis | The absolute minimum interface would be one where the client passes a reference to an object (managed by the MPS) to the MPS and asks "find me an object that references this object". Related issue is metadata about object and non-object addresses: job001149. In general a reference to an object can be "encrypted" inside a client object in an arbitrary manner. All the MPS knows is that an object had a particular reference _somewhere_ inside it. The MPS should answer the "find me an object that references this object" with: object, pool, offset, client format specific userdata. The pool is necessary so that the format can be derived. And whilst I just said that the MPS cannot know the offset within an object, if the client scanner uses the very common method of passing interior object addresses to MPS_FIX2 (that is, pointing directly at the references stored inside the object), then the MPS can spot this and generate its own offset. The userdata can be used by the client for more complicated cases. If we constrain the answer to be the object with lowest address larger than some client specified address then we have an iteration protocol to find all such objects. 2007-09-18 DRJ: Proposed interface in [2] and [3]. Branch created: //info.ravenbrook.com/project/mps/branch/2007-09-18/findref/manual/... |
How found | unknown |
Evidence | [1] //info.ravenbrook.com/mail/2007/01/03/12-06-52/0.txt e-mail message from Nick Barnes.[2] //info.ravenbrook.com/mail/2007/06/04/15-56-28/0.txt e-mail message from drj.[3] //info.ravenbrook.com/mail/2007/06/06/13-36-55/0.txt e-mail message from drj. |
Observed in | 1.107.0 |
Created by | David Jones |
Created on | 2007-06-04 12:58:55 |
Last modified by | Richard Brooksby |
Last modified on | 2013-06-16 07:13:09 |
History | 2007-06-04 DRJ Created. 2007-09-18 DRJ Linked to proposal. 2007-09-18 DRJ Link to branch 2013-03-19 GDR Assigned to RB. 2013-06-16 RB Downgraded to "optional" as this isn't affecting anyone (see job003499). |