Hi, Robin. I do really like this proposed idea of marking VTables from objects via additional word field in VTable.
But I have one question about detecting reachability of the classloaders ("sweep the vtables and check the reachability of the classloaders"). Possibly I missed something, but here is my view of the current model of drlvm: all j.l.Classes and j.l.Classloaders are enumerated as strong roots (strong references). Therefore we meet situation when all j.l.Classes and j.l.Classloaders are always reachable (marked). And no sweep will help to detect classloaders reachability. I see the single way to distinguish if j.l.Classloader or j.l.Class was marked not by strong root from VM but by some reference from heap - is to write unique object value into VTable. Then we can detect if some jlClasloader was marked from rootset (strong root from VM) or from some live object. I also want to say that 1-st proposed design from me assumed addtional mark&scan phase without enumeration of jlClasses and jlClassloaders to be able to detect their reachability. Could you, please, clarify this moment. Thanks, Aleksey. On 11/3/06, Rana Dasgupta <[EMAIL PROTECTED]> wrote:
On 11/2/06, Xiao-Feng Li <[EMAIL PROTECTED]> wrote: > > >Robin, thanks for all the clarifications. Now it seems clear to me >and > >I am convinced by this proposal. :-) Yes, this proposal is the simplest and has the least perf impact. Thanks Robin.