Hello, I faced two situations with gem5, which I was able to reproduce on 2 different machines. It might be a bug, or it might be that I am doing something wrong, but would like to report it in any case.
1. Running gem5 from the developers version of gem5 in FS mode, for x86 with gem5.opt for the images present on http://www.gem5.org/Download doesn't work (see the details below). Versions gem5.fast and gem5.debug work well. Also, all versions work well in the gem5-stable version. 2. Compiling a static simple program on host and transferring the binary to the gem5 fs image, doesn't work on x86 (see the details below). The system on image is a Gentoo Linux 2.6.22.9. I tried to compile the software on Linux Mint 18 Sarah and Ubuntu 12.04. 1. Details: scons build/X86/gem5.opt -j8 -- Works fine Start script: export M5_PATH="/home/me/workspaceGEM5/gem5-full-system-files/x86-system" build/X86/gem5.opt \ configs/example/fs.py \ --mem-size=512MB \ --kernel=x86_64-vmlinux-2.6.22.9 \ Console output: Global frequency set at 1000000000000 ticks per second warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes) info: kernel located at: /home/me/workspaceGEM5/gem5-full-system-files/x86-system/binaries/x86_64-vmlinux-2.6.22.9 Listening for com_1 connection on port 3456 0: rtc: Real-time clock set to Sun Jan 1 00:00:00 2012 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 warn: Reading current count from inactive timer. warn: ClockedObject: More than one power state change request encountered within the same simulation tick **** REAL SIMULATION **** info: Entering event queue @ 0. Starting simulation... warn: Don't know what interrupt to clear for console. *** stack smashing detected ***: build/X86/gem5.opt terminated Program aborted at tick 7027708000 --- BEGIN LIBC BACKTRACE --- build/X86/gem5.opt(_Z15print_backtracev+0x1c)[0x84db31c] build/X86/gem5.opt(_Z12abortHandleri+0x3e)[0x84ea65e] [0xb77a7c14] [0xb77a7c31] /lib/i386-linux-gnu/libc.so.6(gsignal+0x39)[0xb7037e89] /lib/i386-linux-gnu/libc.so.6(abort+0x157)[0xb70393e7] /lib/i386-linux-gnu/libc.so.6(+0x6725c)[0xb707325c] /lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x68)[0xb71037c8] /lib/i386-linux-gnu/libc.so.6(+0xf7758)[0xb7103758] build/X86/gem5.opt(_ZNK10X86ISAInst12cvtfp80h_int7executeEP11ExecContextPN5Trace10InstRecordE+0x115)[0x92ed9f5] build/X86/gem5.opt(_ZN15AtomicSimpleCPU4tickEv+0x25d)[0x844557d] build/X86/gem5.opt(_ZN10EventQueue10serviceOneEv+0x94)[0x84e3bc4] build/X86/gem5.opt(_Z9doSimLoopP10EventQueue+0x78)[0x8507298] build/X86/gem5.opt(_Z8simulatey+0x257)[0x8507887] build/X86/gem5.opt[0x855c2cc] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyCFunction_Call+0xbe)[0xb74eb1fe] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6628)[0xb7488308] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80e)[0xb75c281e] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5dd1)[0xb7487ab1] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5ebe)[0xb7487b9e] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5ebe)[0xb7487b9e] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80e)[0xb75c281e] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x2e)[0xb7481b3e] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7e52)[0xb7489b32] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80e)[0xb75c281e] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5dd1)[0xb7487ab1] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80e)[0xb75c281e] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x2e)[0xb7481b3e] /usr/lib/i386-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x68)[0xb7512498] build/X86/gem5.opt(_Z6m5MainiPPc+0x71)[0x84e9ee1] build/X86/gem5.opt(main+0x3c)[0x82fd39c] /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf7)[0xb7024637] --- END LIBC BACKTRACE --- Aborted 2. Details: Software: #include <stdio.h> int main() { printf("Hello world!\n"); return 0; } Makefile: SRC = test.c GCC = g++ GCCFLAGS = -static OUT = testBinary testBinary : test.o $(GCC) $(GCCFLAGS) -o $(OUT) test.o test.o : test.c $(GCC) -c -o $@ $< clean: rm -f *.o $(OUT) - Mount the image and copy the testBinary to /usr. - Unmount image - On the gem5 fs, run: cd /usr; ./testBinary Console output: gem5.opt: build/X86/arch/x86/tlb.cc:348: Fault X86ISA::TLB::translate(RequestPtr, ThreadContext*, BaseTLB::Translation*, BaseTLB::Mode, bool&, bool): Assertion `entry' failed. Program aborted at cycle 84398750506500 Aborted The same output is generated in gem5.debug, regardless if I use gem5 latest or gem5-stable version. The version gem5.fast reports an error:"Segmentation fault". Best regards, Jasmin _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
