Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 28632 invoked from network); 5 Dec 2006 10:28:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Dec 2006 10:28:46 -0000 Received: (qmail 13761 invoked by uid 500); 5 Dec 2006 10:28:52 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 13735 invoked by uid 500); 5 Dec 2006 10:28:52 -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 13726 invoked by uid 99); 5 Dec 2006 10:28:52 -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 02:28:52 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of xiaofeng.li@gmail.com designates 64.233.184.235 as permitted sender) Received: from [64.233.184.235] (HELO wr-out-0506.google.com) (64.233.184.235) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Dec 2006 02:28:41 -0800 Received: by wr-out-0506.google.com with SMTP id 55so1469219wri for ; Tue, 05 Dec 2006 02:28:21 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=I2tDtCHEnCMRIPqckKonKPctSR7ky+BCLm4+RYNlWJCScSdFIiFq4CJ2qL1Dq4F/j5O77uXSiW0QjUM9z0CLy0del+HPojPtzUjrkcJkhFlS5jgE1UidqF5Bh/RfEtNoV4KUuUGIQgVXDgTqOWZXGcHRVlHp0xj4xcj2qpQ9+ec= Received: by 10.78.127.3 with SMTP id z3mr8806539huc.1165314499976; Tue, 05 Dec 2006 02:28:19 -0800 (PST) Received: by 10.78.154.18 with HTTP; Tue, 5 Dec 2006 02:28:19 -0800 (PST) Message-ID: <9623c9a50612050228i2cbddc72xcd6f966edbe662f3@mail.gmail.com> Date: Tue, 5 Dec 2006 18:28:19 +0800 From: "Xiao-Feng Li" To: dev@harmony.apache.org Subject: Re: [DRLVM][GC] (HARMONY-2398) patch for GCv5 alloc helper inlining In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <9623c9a50612030046l161a8c3fk6f50be5b34562dc0@mail.gmail.com> <9623c9a50612041607o54948d82v66d4868f976e91ee@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org On 12/5/06, Mikhail Fursov wrote: > Yes, now it's ok. As you see you need one extra memory load in comparison > with GC_CC helper's version. Now I'm interested if it will or won't have a > performance affect on microtests or specs. I sometimes prefer readability and modularity to some marginal performance improvement. Yes, let's see the performance impact of the extra load. :) ( I guess it should have no problem since "free" and "ceiling" stay together so one load will ensure the other one in cache. ) Thanks, xiaofeng > On 12/5/06, Xiao-Feng Li wrote: > > > > On 12/4/06, Mikhail Fursov wrote: > > > On 12/3/06, Xiao-Feng Li wrote: > > > > > > > > Hi, patch for GCv5 alloc inlining was submitted. This patch has also > > > > some other improvement in parallel collection. > > > > > > > > Dear committer, please help to commit it at your early convenience. > > > > > > > > Mikhail, after the patch is committed, would you please have a look if > > > > the inlining can work well with GCv5 allocation? Thanks. > > > > > > > > I don't use two TLS values for the fast path allocation; instead, only > > > > one TLS value is used for GC, and it is a pointer to the GC thread > > > > local infomation. The code is the same logic as gc_alloc_fast( ) in > > > > file gc_gen/thread/mutator_alloc.cpp and gc_thread.h. (Except that the > > > > Java code has no large object threshold check, that is only one > > > > constant comparison anyway.) > > > > > > > > > > Xiao-Feng, > > > I checked the helper's part of the diff. > > > I have a question about TLS usage in your code. > > > > > > You said that you use only one TLS slot to keep the pointer to > > > GC_thread_info. > > > In this case Java code of the helper is incorrect: > > > > > > Address TLS_BASE = VMHelper.getTlsBaseAddress(); > > > > > Oh, my mistake. I should modify the statement below: > > > > > Address allocator = TLS_BASE.plus(TLS_GC_OFFSET); > > > > to be: > > Address allocator_addr = TLS_BASE.plus(TLS_GC_OFFSET); > > Address allocator = allocator_addr.loadAddress(); > > > > Right? I will submit another patch. Thanks for pointing it out. :-) > > > > Thanks, > > xiaofeng > > > > > > > Address free_addr = allocator.plus(0); > > > Address free = free_addr.loadAddress(); > > > > > > I can fix it by myself after your patch is applied, of you can resubmit > > the > > > patch. > > > -- > > > Mikhail Fursov > > > > > > > > > > > > -- > Mikhail Fursov > >