You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Weldon Washburn <we...@gmail.com> on 2006/06/02 15:18:58 UTC

{DRLVM] Jitrino.JET ---- back branch polling would make MMTK port easier

A question for the folks working on Jitrino.JET.  I see comments in
the source code about back branch polling.   Can I use back branch
polling?

 It turns out that polling in a controlled fashion for GC would make
the MMTK port easier.  MMTK has java classes that implement the
"Uninterruptible" interface.  Basically this means no GC is allowed
while methods of such classes are executing.  It looks to be fairly
straight forward to add code to the back branch callout that skips GC
if the current method implements Uninterruptible.

-- 
Weldon Washburn
Intel Middleware Products Division

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Re: {DRLVM] Jitrino.JET ---- back branch polling would make MMTK port easier

Posted by Alex Astapchuk <al...@gmail.com>.
Weldon,

Weldon Washburn wrote:
> A question for the folks working on Jitrino.JET.  I see comments in
> the source code about back branch polling.   Can I use back branch
> polling?
Yes. The 'back branch pooling' is turned on by default in Jitrino.JET. 
It inserts a call to VM's helper VM_RT_GC_SAFE_POINT at every back branch.

(Well, to be really fair not for each. There is a simple per-basic
block optimization - if there were a call to VM helper in the basic
block - eg. NEW, NEWARRAY, etc - then the pooling code is skipped).

> 
> It turns out that polling in a controlled fashion for GC would make
> the MMTK port easier.  MMTK has java classes that implement the
> "Uninterruptible" interface.  Basically this means no GC is allowed
> while methods of such classes are executing.  It looks to be fairly
> straight forward to add code to the back branch callout that skips GC
> if the current method implements Uninterruptible.

Well, as I can see 2 options here  - we can either add the proper
analysis to the JIT or the VM can do it - the VM's helper can check
which method it was called from and then behave appropriately.
Though my rough estimation is that adding the analysis to Jitrino.JET
would be the easiest way.

--
Thanks,
  Alex
Intel Middleware Products Division


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org