Xplace icon indicating copy to clipboard operation
Xplace copied to clipboard

LEF/DEF mode coredump

Open tigereatsheep opened this issue 1 year ago • 9 comments

tigereatsheep avatar Jan 15 '24 08:01 tigereatsheep

Sanitizer doesn't work, may CUDA code errors?

tigereatsheep avatar Jan 15 '24 08:01 tigereatsheep

May you provide more information like your OS and your benchmark?

Thanks for your help.

liulixinkerry avatar Jan 15 '24 09:01 liulixinkerry

May you provide more information like your OS and your benchmark?

Thanks for your help.

Sorry, I can not provide the LEF/DEF files. but I can send you the error info several days later.

tigereatsheep avatar Jan 24 '24 08:01 tigereatsheep

I have updated the code and supported some more features like multiple tracks/multiple lefs. May you try again?

I test Xplace in ASAP7 with routability optimization. At least for ASAP7, Xplace can work.

Please make sure your tech lef is included before the cell lef. You may refer to examples.json

liulixinkerry avatar Apr 18 '24 08:04 liulixinkerry

BTW, may you tell me when your program crashed? (LEF/DEF IO -> Global Place -> Internal GPU Router -> Detailed Place)

liulixinkerry avatar Apr 18 '24 08:04 liulixinkerry

Reopen this issue. This case is a MCU (taped out). asan output: (Line 1757 in file Xplace/cpp_to_py/common/io/file_lefdef_db.cpp, may the if expression should be else?)

[   2.562] loading from original benchmark...
/home/tigereatsheep/workspace/Xplace/cpp_to_py/common/io/file_lefdef_db.cpp:1757:22: runtime error: member access within null pointer of type 'struct Pin'
AddressSanitizer:DEADLYSIGNAL
=================================================================
==9882==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000028 (pc 0x75045235aa09 bp 0x7ffce228ea70 sp 0x7ffce228e520 T0)
==9882==The signal is caused by a READ memory access.
==9882==Hint: address points to the zero page.
    #0 0x75045235aa09 in readDefNet(LefDefParser::defrCallbackType_e, LefDefParser::defiNet*, void*) (/home/tigereatsheep/workspace/Xplace/cpp_to_py/cpybin/libxplace_common.so+0x1b5aa09)
    #1 0x7504523fcd0d in LefDefParser::defyyparse(LefDefParser::defrData*) (/home/tigereatsheep/workspace/Xplace/cpp_to_py/cpybin/libxplace_common.so+0x1bfcd0d)
    #2 0x7504523e9e86 in LefDefParser::defrRead(_IO_FILE*, char const*, void*, int) (/home/tigereatsheep/workspace/Xplace/cpp_to_py/cpybin/libxplace_common.so+0x1be9e86)
    #3 0x75045232472c in db::Database::readDEF(std::string const&) (/home/tigereatsheep/workspace/Xplace/cpp_to_py/cpybin/libxplace_common.so+0x1b2472c)
    #4 0x75045207062d in db::Database::load() (/home/tigereatsheep/workspace/Xplace/cpp_to_py/cpybin/libxplace_common.so+0x187062d)
    #5 0x750454b386ea  (/home/tigereatsheep/workspace/Xplace/cpp_to_py/cpybin/io_parser.cpython-311-x86_64-linux-gnu.so+0xb386ea)
    #6 0x750454b521bc  (/home/tigereatsheep/workspace/Xplace/cpp_to_py/cpybin/io_parser.cpython-311-x86_64-linux-gnu.so+0xb521bc)
    #7 0x750454971f3f  (/home/tigereatsheep/workspace/Xplace/cpp_to_py/cpybin/io_parser.cpython-311-x86_64-linux-gnu.so+0x971f3f)
    #8 0x528186 in cfunction_call /usr/local/src/conda/python-3.11.7/Objects/methodobject.c:542
    #9 0x503a0b in _PyObject_MakeTpCall /usr/local/src/conda/python-3.11.7/Objects/call.c:214
    #10 0x510f32 in _PyEval_EvalFrameDefault /usr/local/src/conda/python-3.11.7/Python/ceval.c:4769
    #11 0x5cb559 in _PyEval_EvalFrame /usr/local/src/conda/python-3.11.7/Include/internal/pycore_ceval.h:73
    #12 0x5cb559 in _PyEval_Vector /usr/local/src/conda/python-3.11.7/Python/ceval.c:6434
    #13 0x5cac2e in PyEval_EvalCode /usr/local/src/conda/python-3.11.7/Python/ceval.c:1148
    #14 0x5ebcf6 in run_eval_code_obj /usr/local/src/conda/python-3.11.7/Python/pythonrun.c:1710
    #15 0x5e788f in run_mod /usr/local/src/conda/python-3.11.7/Python/pythonrun.c:1731
    #16 0x5fc831 in pyrun_file /usr/local/src/conda/python-3.11.7/Python/pythonrun.c:1626
    #17 0x5fbbfe in _PyRun_SimpleFileObject /usr/local/src/conda/python-3.11.7/Python/pythonrun.c:440
    #18 0x5fb922 in _PyRun_AnyFileObject /usr/local/src/conda/python-3.11.7/Python/pythonrun.c:79
    #19 0x5f65cd in pymain_run_file_obj /usr/local/src/conda/python-3.11.7/Modules/main.c:360
    #20 0x5f65cd in pymain_run_file /usr/local/src/conda/python-3.11.7/Modules/main.c:379
    #21 0x5f65cd in pymain_run_python /usr/local/src/conda/python-3.11.7/Modules/main.c:601
    #22 0x5f65cd in Py_RunMain /usr/local/src/conda/python-3.11.7/Modules/main.c:680
    #23 0x5bb3d8 in Py_BytesMain /usr/local/src/conda/python-3.11.7/Modules/main.c:734
    #24 0x75050d629d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #25 0x75050d629e3f in __libc_start_main_impl ../csu/libc-start.c:392
    #26 0x5bb222  (/home/tigereatsheep/anaconda3/bin/python3.11+0x5bb222)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/tigereatsheep/workspace/Xplace/cpp_to_py/cpybin/libxplace_common.so+0x1b5aa09) in readDefNet(LefDefParser::defrCallbackType_e, LefDefParser::defiNet*, void*)
==9882==ABORTING ```

tigereatsheep avatar Apr 26 '24 07:04 tigereatsheep

Does your .def define the DefPin?

May you show me the NET statement of this net?

I understand it may be confidential... Then you may refer to Page355 of lefdefref.pdf and tell me what kinds of net statements that we haven't yet supported.

liulixinkerry avatar Apr 26 '24 08:04 liulixinkerry

Does your .def define the DefPin?

May you show me the NET statement of this net?

I understand it may be confidential... Then you may refer to Page355 of lefdefref.pdf and tell me what kinds of net statements that we haven't yet supported.

I'm not very clear on the specific details of the standards, but there seems to be a contradiction in the logic within the code. If the pin is a null pointer, the subsequent statements will definitely not be executable. I haven't examined the code for the I/O module closely, but I believe there is a bug in the context. My DEF files can be read by other software. 图片

tigereatsheep avatar Apr 26 '24 08:04 tigereatsheep

Does your .def define the DefPin?

May you show me the NET statement of this net?

I understand it may be confidential... Then you may refer to Page355 of lefdefref.pdf and tell me what kinds of net statements that we haven't yet supported.

我尝试该一改。是我的电脑编译特别慢,而且asan和cuda不兼容,调起来很麻烦。可能会要一段时间

tigereatsheep avatar Apr 26 '24 08:04 tigereatsheep