TeCSAR-UNCC / gem5-SALAM

BSD 3-Clause "New" or "Revised" License
84 stars 23 forks source link

Stream Port Validation Check Segmentation Fault #32

Open mhezarei opened 6 months ago

mhezarei commented 6 months ago

I hope you are doing well.

With specific accelerator cluster configurations (notably with 128 and more accelerators), I get this weird segmentation fault in the StreamRequestPort::streamValid(size_t len, bool isRead) (Codebase Link) function.

Using gdb, this is the error stack:

Program received signal SIGSEGV, Segmentation fault.
0x00000000026ec0d9 in StreamRequestPort::streamValid (this=0x70c8620, len=1, isRead=true) at build/ARM/hwacc/stream_port.hh:178
178         return _stream_slave->tvalid(len, isRead);
(gdb) bt 3
#0  0x00000000026ec0d9 in StreamRequestPort::streamValid (this=0x70c8620, len=1, isRead=true) at build/ARM/hwacc/stream_port.hh:178
#1  0x00000000026e0ffb in CommInterface::getValidStreamPort (this=0x67a0880, add=268567040, len=1, read=true) at build/ARM/hwacc/comm_interface.cc:317
#2  0x00000000026e1946 in CommInterface::processMemoryRequests (this=0x67a0880) at build/ARM/hwacc/comm_interface.cc:364

I don't understand how this variable is not null (which makes it pass the previous if statement) but has an invalid value. I also don't get why this issue arises with specific configurations.

Please comment if you need more information. Thanks in advance!