Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 10870 invoked from network); 17 Jul 2007 13:32:06 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 Jul 2007 13:32:06 -0000 Received: (qmail 8176 invoked by uid 500); 17 Jul 2007 13:25:29 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 8160 invoked by uid 500); 17 Jul 2007 13:25:29 -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 8142 invoked by uid 99); 17 Jul 2007 13:25:29 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 Jul 2007 06:25:29 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 Jul 2007 06:25:26 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 7AE8941800B for ; Tue, 17 Jul 2007 06:25:06 -0700 (PDT) Message-ID: <12372648.1184678706497.JavaMail.jira@brutus> Date: Tue, 17 Jul 2007 06:25:06 -0700 (PDT) From: "Mikhail Fursov (JIRA)" To: commits@harmony.apache.org Subject: [jira] Assigned: (HARMONY-3855) [drlvm][jit][tc] Known/proven race conditions markup at \vm\jitrino\src\jet\cg.cpp (L:125) In-Reply-To: <18579954.1179158056279.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HARMONY-3855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mikhail Fursov reassigned HARMONY-3855: --------------------------------------- Assignee: Mikhail Fursov (was: Alexey Varlamov) > [drlvm][jit][tc] Known/proven race conditions markup at \vm\jitrino\src\jet\cg.cpp (L:125) > ------------------------------------------------------------------------------------------ > > Key: HARMONY-3855 > URL: https://issues.apache.org/jira/browse/HARMONY-3855 > Project: Harmony > Issue Type: Bug > Components: DRLVM > Reporter: Ilya Leviev > Assignee: Mikhail Fursov > Priority: Minor > Attachments: HARMONY-3855_add_markup.patch > > > There are thread unsafe access that result in race condition that occur during concurrent execution of gen_check_null function > As issues related to statistic data collection and it not affect correctness of execution I mark it by special API for prevention of further alarms on this race. > Write ->Write data-race > Memory write at "cg.cpp":125 conflicts with a prior memory write at "cg.cpp":125 (output dependence) > Stack Traces: > Context > Function enum JIT_Result Dll_JIT::compile_method_with_params(void *,struct Method *,struct OpenMethodExecutionParams) "dll_jit_intf.h":86 > Function JIT_compile_method_with_params "drljitinterface.cpp":275 > Function enum JIT_Result Jitrino::Jet::compile_with_params(void *,void *,struct Method *,struct OpenMethodExecutionParams) "jet.cpp":524 > Function enum JIT_Result Jitrino::Jet::Compiler::compile(void *,struct Method *,struct OpenMethodExecutionParams const &) "compiler.cpp":389 > Function void Jitrino::Jet::Compiler::comp_gen_code_bb(unsigned int) "compiler.cpp":817 > Function bool Jitrino::Jet::Compiler::comp_gen_insts(unsigned int,unsigned int,unsigned int) "compiler.cpp":1023 > Function void Jitrino::Jet::Compiler::handle_inst(void) "bcproc.cpp":67 > Function void Jitrino::Jet::Compiler::handle_ik_meth(struct Jitrino::Jet::JInst const &) "bcproc.cpp":425 > Function void Jitrino::Jet::CodeGen::gen_invoke(enum JavaByteCodes,struct Method *,class std::vector > const &,enum Jitrino::Jet::jtype) "cg_meth.cpp":760 > Function void Jitrino::Jet::CodeGen::gen_check_null(class Jitrino::Jet::Val &,bool) "cg.cpp":122 > 1st Access > Function enum JIT_Result Dll_JIT::compile_method_with_params(void *,struct Method *,struct OpenMethodExecutionParams) "dll_jit_intf.h":86 > Function JIT_compile_method_with_params "drljitinterface.cpp":275 > Function enum JIT_Result Jitrino::Jet::compile_with_params(void *,void *,struct Method *,struct OpenMethodExecutionParams) "jet.cpp":524 > Function enum JIT_Result Jitrino::Jet::Compiler::compile(void *,struct Method *,struct OpenMethodExecutionParams const &) "compiler.cpp":389 > Function void Jitrino::Jet::Compiler::comp_gen_code_bb(unsigned int) "compiler.cpp":817 > Function bool Jitrino::Jet::Compiler::comp_gen_insts(unsigned int,unsigned int,unsigned int) "compiler.cpp":1023 > Function void Jitrino::Jet::Compiler::handle_inst(void) "bcproc.cpp":67 > Function void Jitrino::Jet::Compiler::handle_ik_meth(struct Jitrino::Jet::JInst const &) "bcproc.cpp":425 > Function void Jitrino::Jet::CodeGen::gen_invoke(enum JavaByteCodes,struct Method *,class std::vector > const &,enum Jitrino::Jet::jtype) "cg_meth.cpp":760 > Function void Jitrino::Jet::CodeGen::gen_check_null(class Jitrino::Jet::Val &,bool) "cg.cpp":125 > 2nd Access > Function enum JIT_Result Dll_JIT::compile_method_with_params(void *,struct Method *,struct OpenMethodExecutionParams) "dll_jit_intf.h":86 > Function JIT_compile_method_with_params "drljitinterface.cpp":275 > Function enum JIT_Result Jitrino::Jet::compile_with_params(void *,void *,struct Method *,struct OpenMethodExecutionParams) "jet.cpp":524 > Function enum JIT_Result Jitrino::Jet::Compiler::compile(void *,struct Method *,struct OpenMethodExecutionParams const &) "compiler.cpp":389 > Function void Jitrino::Jet::Compiler::comp_gen_code_bb(unsigned int) "compiler.cpp":817 > Function bool Jitrino::Jet::Compiler::comp_gen_insts(unsigned int,unsigned int,unsigned int) "compiler.cpp":1023 > Function void Jitrino::Jet::Compiler::handle_inst(void) "bcproc.cpp":67 > Function void Jitrino::Jet::Compiler::handle_ik_meth(struct Jitrino::Jet::JInst const &) "bcproc.cpp":425 > Function void Jitrino::Jet::CodeGen::gen_invoke(enum JavaByteCodes,struct Method *,class std::vector > const &,enum Jitrino::Jet::jtype) "cg_meth.cpp":760 > Function void Jitrino::Jet::CodeGen::gen_check_null(class Jitrino::Jet::Val &,bool) "cg.cpp":125 > "121" "" " void CodeGen::gen_check_null(Val& obj, bool hw_ok)" > "122" "" " {" > "123" "" " assert(obj.jt() == jobj);" > "124" "" " if (obj.has(VA_NZ)) {" > "125" "*" " STATS_INC(Stats::npesEliminated,1);" > "126" "" " if (is_set(DBG_TRACE_CG)) {" > "127" "" " dbg("";;>check.npe for %s - skipped\n"", " > "128" "" " to_str(obj.as_opnd()).c_str());" -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.