Ravenbrook / Projects / Memory Pool System / Issues


MPS issue job001659

Title:Culprit analysis is too hard.
Status:open
Priority:essential
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:Gareth Rees
Last modified on:2013‑03‑19 11:59:58
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.

Generated at 2013-05-25 09:56:39 by $Id: //info.ravenbrook.com/infosys/cgi/issue.cgi#476 $

Copyright © Ravenbrook Limited. This document is provided "as is", without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this document. You may not duplicate or reproduce this document in any form without the express permission of the copyright holder.

Ravenbrook / Projects / Memory Pool System / Issues