On 10/6/06, Ivan Volosyuk <[EMAIL PROTECTED]> wrote:
On 10/6/06, Mikhail Fursov <[EMAIL PROTECTED]> wrote: > On 10/6/06, Ivan Volosyuk <[EMAIL PROTECTED]> wrote: > > > > > > I would like to have second variant implemented and corresponding > > (method3) interface removed as unused anymore. But, I'm not sure if > > this is possible. Thread stack enumeration is just a part of root set > > enumeration process. Roots can be already reported (and moved) even > > before the jitrino enumeration starts. Will the second variant work > > despite of this? > > > Why do you think it will not work? > Here is the algorithm > JIT reports 2 types of items: 1) bases 2) mptrs + offsets > 1) Once JIT report base GC uses the same algorithm as before: it moves the > object and for subsequent reports of the same base it uses 'forwarding > pointer' as you mentioned before: > " if the second reference points to previous position of object it will be > automatically updated according to installed forwarding pointer." > > 2) When JIT reports mptr + offset, GC deduce the old object location, and > uses the same 'forwarding pointer' to adjust the mptr > > What is wrong with this schema? If it is possible to get somehow valid offset within object then it is great! I would be happy to see this solved this way. Waiting for your patch.
Good idea! I like it! If I understand this completely, I agree with using only one API to report interior pointers. That is #2 in Mikhail's email above. It looks like: 2. VMEXPORT void vm_enumerate_root_interior_pointer(void **slot, int offset, Boolean is_pinned); And remove #3 which reports object base and interior pointer from the JIT/GC interface. #3 might have originally been put in the JIT/GC interface because the JIT developers liked it. I can't think of a reason why a GC would prefer this interface over #2 above. Mikhail, Can you ask other JIT developers if it will hurt code optimization if we drop #3? Maybe its a performance hit carrying around offset instead of interior pointer?? For, now I have attached to JIRA HARMONY-1682 the pessimistic variant
of fix for those who may not be interested in the discussion and wants to have the problem fixed (workarounded?) anyhow. -- Thanks, Ivan > > > There is one more way to make this work. Do the same as gc_v4 does: > > get full root set and then do the modifications to heap. > > > > Yes this is the most pessimistic variant we have if all other variants > failed > > -- > Mikhail Fursov > > --------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Weldon Washburn Intel Middleware Products Division