harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Leviev (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-3855) [drlvm][jit] Known/proven race conditions markup at \vm\jitrino\src\jet\cg.cpp (L:125)
Date Wed, 23 May 2007 11:55:16 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-3855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Ilya Leviev updated HARMONY-3855:
---------------------------------

    Description: 
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<enum Jitrino::Jet::jtype,class std::allocator<enum Jitrino::Jet::jtype>
> 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<enum Jitrino::Jet::jtype,class std::allocator<enum Jitrino::Jet::jtype>
> 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<enum Jitrino::Jet::jtype,class std::allocator<enum Jitrino::Jet::jtype>
> 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());"


  was:
There are thread unsafe access that result in race condition that occur during concurrent
execution of gen_check_null function

If it not affect correctness of execution I have marked 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<enum Jitrino::Jet::jtype,class std::allocator<enum Jitrino::Jet::jtype>
> 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<enum Jitrino::Jet::jtype,class std::allocator<enum Jitrino::Jet::jtype>
> 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<enum Jitrino::Jet::jtype,class std::allocator<enum Jitrino::Jet::jtype>
> 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)"
"0x1893E0"	"122"	""	" {"
"0x189416"	"123"	""	"     assert(obj.jt() == jobj);"
"0x189437"	"124"	""	"     if (obj.has(VA_NZ)) {"
"0x18944C"	"125"	"*"	"         STATS_INC(Stats::npesEliminated,1);"
"0x189481"	"126"	""	"         if (is_set(DBG_TRACE_CG)) {"
""	"127"	""	"             dbg("";;>check.npe for %s - skipped\n"", "
"0x189495"	"128"	""	"                                             to_str(obj.as_opnd()).c_str());"



> [drlvm][jit] 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
>            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<enum Jitrino::Jet::jtype,class std::allocator<enum Jitrino::Jet::jtype>
> 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<enum Jitrino::Jet::jtype,class std::allocator<enum Jitrino::Jet::jtype>
> 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<enum Jitrino::Jet::jtype,class std::allocator<enum Jitrino::Jet::jtype>
> 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.


Mime
View raw message