harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Egor Pasko <egor.pa...@gmail.com>
Subject Re: [drlvm][jvmti] Profiling support - Compiled Method Load event
Date Wed, 13 Dec 2006 10:34:46 GMT
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
View raw message