Re: [rvm-research] Call-Site Information

Shoaib Akram <[email protected]> Fri, 10 Jun 2016 19:29:50 +0200
Newsgroups gmane.comp.java.jikes.rvm.devel
Message-ID <CAB7d=91OqVXATdR3hv+R_YR60GR0uOKExv_0Ce-H4AgSv3mS-w@mail.gmail.com>
Thanks Mike! I used the patch to encode the static allocation site ids in
the object header. I added instrumentation code to both the baseline
compiler and the optimizing compiler (BaselineCompilerImpl.java and
opt/hir2lir/ExpandRuntimeServices.java), wherever new allocations are being
handled. But for some objects, the allocation site id in MiscHeader at the
end of the execution of programs is still the same value I used during
initialization. I understand this happening for objects in the boot space
But I don't see why this is happening to objects in the mature and the
large space. Am I missing something?

On Wed, May 25, 2016 at 4:10 AM, Michael Bond <[email protected]>
wrote:

> Hi Shoaib,
>
> Yes, this is definitely possible. There are two different ways to do it:
>
> (1) Insert instrumentation at compile time that "knows" the static
> allocation site. For example, during compile time, assign a unique integer
> for every allocation site, and generate instrumentation that writes that
> integer into the object header.
>
> (2) Insert instrumentation at compile time that figures out the allocation
> site at run time. It can do this by looking at the frame pointer and
> compiled method ID as you say; it gets a little bit complex with optimized
> code and inlining.
>
> My group's patch for calling context profiling (
> https://sourceforge.net/p/jikesrvm/research-archive/44/) has code related
> to both approaches.
>
> One gotcha: There's an issue in Jikes RVM (<=3.1.3, at least) such that if
> the left-most word (by default, this'll be the MiscHeader word) has the
> least-significant bit as 1 instead of 0, Jikes RVM will crash (at least
> with certain GCs?). You can avoid this by making sure it's always 0 or by
> putting the MiscHeader to the right of the TIB pointer; see our Octet patch
> for an example of the latter (
> https://sourceforge.net/p/jikesrvm/research-archive/43/).
>
> Regarding your question about calling into Jikes RVM from MMTk: this is
> definitely possible, but it's required to go through a specific interface.
> See classes in org.mmtk.vm such as org.mmtk.vm.Barriers (an abstract method
> that has a Jikes RVM-specific implementation). You can add your own method
> to own of the these classes; the method can access Jikes RVM stuff but be
> called from MMTk.
>
> Cheers,
> Mike
>
>
> On 05/24/2016 02:28 PM, Shoaib Akram wrote:
>
> Hi All,
>
> Hello from PerformanceLab @ Ghent University in Belgium. I want to ask if
> there is support in JikesRVM to identify the call-site of an allocation.
> Suppose I have the code below:
>
> 1  public IntersectionState() {
> 2       stack = new StackNode[MAX_STACK_SIZE * 2];
> 3      for (int i = 0; i < stack.length; i++)
> 4            stack[i] = new StackNode();
> 5        rstack = new float[53 * 256];
> 6    }
>
> Each time a new object is allocated (line no. 4 above), I want to store
> the call-site information (line 4) in the header of the object. Is it
> possible to get the unique identity of the method and index within the
> method, where a new object is being allocated from?
>
> There are some routines in runtime/Magic.java that let you get the current
> frame pointer or the id of the compiled method, but I am not sure if they
> usable from within MMTk(?) Does anyone know an an easy way to get the site
> information at allocation time?
>
> Thanks in advance!
>
> --
> *Shoaib Akram*
> *ELIS - Gent University*
> *Belgium*
>
>
> ------------------------------------------------------------------------------
> Mobile security can be enabling, not merely restricting. Employees who
> bring their own devices (BYOD) to work are irked by the imposition of MDM
> restrictions. Mobile Device Manager Plus allows you to control only the
> apps on BYO-devices by containerizing them, leaving personal data untouched!https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
>
>
>
> _______________________________________________
> Jikesrvm-researchers mailing [email protected]://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers
>
>
>
>
> ------------------------------------------------------------------------------
> Mobile security can be enabling, not merely restricting. Employees who
> bring their own devices (BYOD) to work are irked by the imposition of MDM
> restrictions. Mobile Device Manager Plus allows you to control only the
> apps on BYO-devices by containerizing them, leaving personal data
> untouched!
> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
> _______________________________________________
> Jikesrvm-researchers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers
>
>


-- 
*Shoaib Akram*
*ELIS - Gent University*
*Belgium*

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e

_______________________________________________
Jikesrvm-researchers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers