Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LEF/DEF mode coredump #7

Open
tigereatsheep opened this issue Jan 15, 2024 · 9 comments
Open

LEF/DEF mode coredump #7

tigereatsheep opened this issue Jan 15, 2024 · 9 comments

Comments

@tigereatsheep
Copy link

No description provided.

@tigereatsheep
Copy link
Author

Sanitizer doesn't work, may CUDA code errors?

@liulixinkerry
Copy link
Member

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

Thanks for your help.

@tigereatsheep
Copy link
Author

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.

@liulixinkerry
Copy link
Member

liulixinkerry commented Apr 18, 2024

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
Copy link
Member

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

@tigereatsheep
Copy link
Author

tigereatsheep commented Apr 26, 2024

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 ```

@liulixinkerry
Copy link
Member

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.

@tigereatsheep
Copy link
Author

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
Copy link
Author

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不兼容,调起来很麻烦。可能会要一段时间

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants