harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eugene Ostrovsky" <eugene.s.ostrov...@gmail.com>
Subject Re: [drlvm][jvmti] Profiling support - Compiled Method Load event
Date Thu, 14 Dec 2006 08:20:09 GMT
I'll try to make test to investigate RI behavior.

On 13 Dec 2006 16:34:46 +0600, Egor Pasko <egor.pasko@gmail.com> wrote:
>
> On the 0x23E day of Apache Harmony George Timoshenko wrote:
> > Egor,
> >
> > thanks for clear scheme.
> >
> > In your terms I'd do something like this:
> >
> > * firstly - raise event for X:
> >      CompiledMethodLoad(start=X.1.start,
> >                         method_size=X.1.size + X.2.size,
> >                         addr_loc_map=
> >                         [X.1.start -> bcoff1,
> >                          X.2.start -> bcoff2])
> >    * secondly - raise event for Y:
> >      CompiledMethodLoad(start=Y.1.start,
> >                         method_size=Y.1.size,
> >                         addr_loc_map=
> >                         [Y.1.start -> bcoff_Y])
>
> good question!
>
> IMHO, code_addr and code_size outlines a region where method code is
> contained. In that case VM can quickly tell which method the IP
> (instruction pointer) belongs to. So, I intentionally suggested
> code_size=(X.1.size + Y.1.size + X.2.size) instead of (X.1.size +
> X.2.size).
>
> BTW, Eugene, do you have some important observations of the RI
> behaviour for us?
>
> >  >   For example, we have
> >  >   some chinks of methods X and Y intermixed like this:
> >  >   "X.1,Y.1,X.2". To overcome we may:
> >  >   * raise a single event for X:
> >  >     CompiledMethodLoad(start=X.1.start,
> >  >                        method_size=X.1.size + Y.1.size + X.2.size,
> >  >                        addr_loc_map=
> >  >                        [X.1.start -> bcoff1,
> >  >                         Y.1.start -> 0,
> >  >                         X.2.start -> bcoff2])
> >  >   * raise 2 events for X:
> >  >     CompiledMethodLoad(start=X.1.start,
> >  >                        method_size=X.1.size,
> >  >                        addr_loc_map=
> >  >                        [X.1.start -> bcoff1])
> >  >     CompiledMethodLoad(start=X.2.start,
> >  >                        method_size=X.2.size,
> >  >                        addr_loc_map=
> >  >                        [X.2.start -> bcoff2])
> >  >
> >  > I would highly appreciate if some JVMTI guru steps down from Olymp
> and
> >  > tells which of two is the best, or at least says what RI does in that
> >  > case (or, maybe, RI does not generate non-contigous blocks?)
> >  >
> >  > I like the second approach (raise 2 events)
> >  >
> >
> >
> >
>
> --
> Egor Pasko
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message