Hi
I think I found why randomly one receives this error:

fatal: Unable to find destination for addr 0xNNN on bus system.membus

A workaround for this issue is to increase the memory as discussed in
the following posts
http://www.mail-archive.com/[email protected]/msg04502.html
http://www.mail-archive.com/[email protected]/msg05886.html

The roots for this error are some hard coded hex values in the
X86_64LiveProcess::X86_64LiveProcess(). For x86 this function is
located at src/sim/arch/x86/process.cc. Currently, the hard coded
values are in the range of 64GB  but not every body who has built his
application on a 64-bit host, uses a 64GB RAM.

In anther word, someone may compile his application with 8GB of
memory, but LiveProcess() and mmap() in gem5 will allocate some
virtual memory at the size of 64GB because of the hard coded numbers.

Now what is wrong with that? The wrong is, these hard coded numbers
will overwrite the memory value defined in the configuration script

system = System(cpu = cpus, physmem =
PhysicalMemory(range=AddrRange("4096MB")),  membus = Bus())

That means, you might define a 4GB memory for gem5, but it will
allocate the whole 64GB address space for the virtual memory and
randomly (depends on how mmap allocate the address space) will fire
the "unable to find the destination addr" error message.


I am not aware of other archs, but for x86 it is an error prone code.

-- 
Regards,
Mahmood
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to