Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 88540 invoked from network); 5 Dec 2006 08:24:53 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Dec 2006 08:24:53 -0000 Received: (qmail 16514 invoked by uid 500); 5 Dec 2006 08:24:59 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 16491 invoked by uid 500); 5 Dec 2006 08:24:59 -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 16482 invoked by uid 99); 5 Dec 2006 08:24:59 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Dec 2006 00:24:59 -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; Tue, 05 Dec 2006 00:24:47 -0800 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1GrVb9-0001fK-As for dev@harmony.apache.org; Tue, 05 Dec 2006 09:24:19 +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 ; Tue, 05 Dec 2006 09:24:19 +0100 Received: from george.timoshenko by msfwpr01.ims.intel.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Dec 2006 09:24:19 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dev@harmony.apache.org From: George Timoshenko Subject: Re: [drlvm][jvmti] Profiling support - Compiled Method Load event Date: Tue, 05 Dec 2006 14:24:04 +0600 Lines: 44 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=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: msfwpr01.ims.intel.com User-Agent: Thunderbird 1.5.0.8 (Windows/20061025) In-Reply-To: Sender: news X-Virus-Checked: Checked by ClamAV on apache.org Egor Pasko wrote: > On the 0x235 day of Apache Harmony George Timoshenko wrote: >> Eugene, >> >> I've answered in JIRA: >> >> https://issues.apache.org/jira/browse/HARMONY-2145#action_12455313 >> >> (Summary: Everything is OK) >> >> For this particular testcase it is possible. But there is a general >> problem: >> >> Code layout may be quite unordered. (It mostly depends on hottness, >> not the instructions<->method relations) So a method (say A) body >> can be layouted at two (or more) unsuccessive regions. And the >> regeion between them can belong to some another method (say B). And >> B is _not_ inlined into A. > > That is essential, an inlined method can be separated in > non-contiguous regions for performance during CFG alignment. IMHO, we > should register several code blocks for the same inlined method (if > the method's code was split into parts) through the > compiled_method_load(...) interface. This can be done completely on > the JIT side. > > What do you, guys, think? No doubts it can be done on the JIT side, but what is the purpose of it? If there is only one question: "I get instruction, which method does it belong to?" it can be answerd easily: For each method jvmtiAddrLocationMap is reported. And each instruction (with particular codeAddress) belongs to the only one such map. I do not understand the necessity of reporting each piece (a number of instructions that goes in a row and belongs to the same method) of a method while we are already reporting _each_instruction_ separately.