Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 16337 invoked from network); 15 Feb 2008 19:13:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Feb 2008 19:13:15 -0000 Received: (qmail 91186 invoked by uid 500); 15 Feb 2008 19:13:09 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 91169 invoked by uid 500); 15 Feb 2008 19:13:09 -0000 Mailing-List: contact commits-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 commits@harmony.apache.org Received: (qmail 91160 invoked by uid 99); 15 Feb 2008 19:13:09 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Feb 2008 11:13:09 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.130] (HELO eos.apache.org) (140.211.11.130) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Feb 2008 19:12:45 +0000 Received: from eos.apache.org (localhost [127.0.0.1]) by eos.apache.org (Postfix) with ESMTP id 320FDD2E7 for ; Fri, 15 Feb 2008 19:12:54 +0000 (GMT) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Apache Wiki To: commits@harmony.apache.org Date: Fri, 15 Feb 2008 19:12:53 -0000 Message-ID: <20080215191253.7802.10940@eos.apache.org> Subject: [Harmony Wiki] Update of "DRLVM Development Tasks" by Vladimir Beliaev X-Virus-Checked: Checked by ClamAV on apache.org Dear Wiki user, You have subscribed to a wiki page or wiki category on "Harmony Wiki" for change notification. The following page has been changed by Vladimir Beliaev: http://wiki.apache.org/harmony/DRLVM_Development_Tasks ------------------------------------------------------------------------------ '''''Task:''''' Reimplement main thread processing in launcher. + == Application Binary Interface Glue == + + === 6. Unify JIT/VM ABI glue (replace 5 approaches with a single approach) === + '''''Problem:''''' Currently there are five approaches to generating ASM that translates from JIT ABI to C/C++ ABI. This glue also deals with exception throwing and live reference enumeration. The five approaches are: + * Microsoft ASM + * Linux/gcc ASM + * JIT back-end (hardcoding what gets emitted by using the JIT emitter) + * LIL + * vmmagic (currently allows type-unsafe memory read/writes from Java) + + The above five approaches times two architectures (x86 and x86_64) means we have 10 distinct, hard to maintain kinds of asm in the code base. The goal is to reduce this to the bare minimum – one for x86 and one for x86_64. First, determine if we can use a combination of vmmagic and JIT intrinsics to accomplish the task. Second, if the above is doable, cleanup the old ASM code. + + '''''Task:''''' Replace 5 approaches to JIT/VM ABI glue with a single approach. + + == Finalization System == + + === 7. Improve Finalization Work Balance Mechanism (FWBM) === + '''''Problem:''''' FWBM was changed with a move to new Garbage Collector (GCv5). This resulted in FWBM becomes not well adjusted, the finalization system behaviour differes from RI one which may be critical for stability and performance of resource critical applications. One needs to evaluate FWBM in DRLVM and RI, identify issues (e.g. one may relate to dead lock between finalizer thread and another thread using same monitor) and get them resolved. + + '''''Task:''''' Evaluate compatibility with RI and make required improvements. + + == Monitor support == + + === 8. Release monitor in unwinded frame === + '''''Problem:''''' There are three cases when monitor must be released: + + * when exception handling + * when the owning monitor thread dies in unusual place (say due to `exit` call) + * when JVMTI `PopFrame` is called + + The support for all three cases should be implemented. Also support for first two cases is performance critical (must be implemented in optimal way). + + '''''Task:''''' Implement monitor releasing for frame unwinding. + === === '''''Problem:''''' . '''''Task:''''' + == The task fromn old list which required clarification ==