Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 80669 invoked from network); 13 Dec 2006 10:38:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 13 Dec 2006 10:38:46 -0000 Received: (qmail 96536 invoked by uid 500); 13 Dec 2006 10:38:49 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 96500 invoked by uid 500); 13 Dec 2006 10:38:49 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 96489 invoked by uid 99); 13 Dec 2006 10:38:49 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Dec 2006 02:38:49 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of gcjhd-harmony-dev@m.gmane.org designates 80.91.229.2 as permitted sender) Received: from [80.91.229.2] (HELO ciao.gmane.org) (80.91.229.2) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Dec 2006 02:38:15 -0800 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1GuRSa-0002PF-Ro for dev@harmony.apache.org; Wed, 13 Dec 2006 11:35:38 +0100 Received: from msfwpr01.ims.intel.com ([62.118.80.132]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 13 Dec 2006 11:35:36 +0100 Received: from egor.pasko by msfwpr01.ims.intel.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 13 Dec 2006 11:35:36 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dev@harmony.apache.org From: Egor Pasko Subject: Re: [drlvm][jvmti] Profiling support - Compiled Method Load event Date: 13 Dec 2006 16:34:46 +0600 Lines: 62 Message-ID: References: <1e3228450611100406n1d0ea58fp2c778fb9a3c49458@mail.gmail.com> <1e3228450611100424w78277d4y4ca4c415e418dc06@mail.gmail.com> <1e3228450611210458l11898665w13a09a9573841515@mail.gmail.com> <469bff730611212121u5e68af46j8c4a85a7b44d6aba@mail.gmail.com> <456411D7.7040703@gmail.com> <1e3228450611230601g683392edh892346d0f1fdce8@mail.gmail.com> <1e3228450611240302n23720609m80e3fe70e5448640@mail.gmail.com> <1e3228450611290749y4583024ev8cd9a0d9f3104f4a@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: msfwpr01.ims.intel.com User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 Sender: news X-Virus-Checked: Checked by ClamAV on apache.org 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