[gem5-users] Re: About simulating simple C program in gem5 FS mode
Is it possible to simulate with only the C program, without linux underneath? I recently saw that you should use the bare-metal option, but I don't really understand how to use it. Elio ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org
[gem5-users] About simulating simple C program in gem5 FS mode
Hi all, I am looking for a way to emulate with gem5 in FS (Full System) mode simple C executables, compiled in RISC-V, even containing a single infinite while loop. Could someone please point me to how to do this? ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org
[gem5-users] gem5 Fault Injector tool?
Hello everyone, I am looking for a valid and working Fault Injector for gem5 with RISCV ISA for Full System simulation, which supports transient and permanent faults. Regarding the type of faults I have no stringent constraints, for sure I need software level faults (register faults, memory etc), but if possible it would be useful to have hardware faults as well. Does anyone know of a Fault Injector that might be right for me? Regards, Elio ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org
[gem5-users] Re: How to suspend FS simulation after certain number of ticks
Or, at least, I would need to do it in such a way as to have the historical progression of the "stats.txt" file during the simulation. So I need to suspend the simulation at a certain tick, get the "stats.txt" file, resume the simulation, or I need a solution that allows me to dump at a certain tick. ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org
[gem5-users] How to suspend FS simulation after certain number of ticks
Hi all, I would need to suspend the FS simulation after a certain number of ticks, and then have it resume normally. I know that for SE mode this is feasible by inserting `m5.simulate()` in a loop and passing as an argument to the same function the number of ticks it should simulate. Is there an analogue for FS mode? I am using `/gem5/configs/example/riscv/fs_linux.py` ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org
[gem5-users] Re: About gem5 stats granularity
I should collect this information in order to train a neural network, so I should have a large dataset made of various simulations. Training the network with all those informations, instruction after instruction (or periodically, with a time slot), should result in good performance. ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org
[gem5-users] Re: About gem5 stats granularity
In general I would be interested in getting as many metrics as possible, I saw that stats.txt is very in-depth, in particular stats regarding Instruction and Data TLB miss, Data cache miss and writeback, instruction cache miss, floating point and integer multiplication interlock, pipeline flush from CSR write or other events, CSR interlock are essential. These are all values mapped into the HPM counters, which stats.txt should contain. So I would be interested in getting these statistics for each type of instruction (add, mul, mov etc etc). ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org
[gem5-users] About gem5 stats granularity
Hi everybody, I should have the statistics provided by gem5 in stats.txt with an instruction level granularity. I noticed that by default gem5 provides them global, from the beginning of execution to the end. Is it possible to change this behavior and somehow get the stats for each simulated instruction? ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org
[gem5-users] Full System emulation using bare metal option
Hi everyone, I would need to run a simulation of gem5 in Full System emulation with RISCV architecture with a simple C program. I therefore tried to use the --bare-metal option. So, I tried to run the following command: `./gem5/build/RISCV/gem5.opt ./gem5/configs/example/riscv/fs_linux.py --kernel=test —bare-metal` where "test" is a compiled program written in C: > #include > > int main(void){ > >unsigned int r = 1337; > >printf("Hello World! %d\\n", r); > >while (1) { } > > } and compiled with the following command: `riscv64-unknown-linux-gnu-gcc --static test.c -o test` but gem5 returns me the following error: > gem5 Simulator System. https://www.gem5.org > > gem5 is copyrighted software; use the --copyright option for details. > > gem5 version 23.0.1.0 > > gem5 compiled Dec 15 2023 12:35:45 > > gem5 started Jan 8 2024 12:55:50 > > gem5 executing on 46f410d0d38b, pid 1704898 > > command line: ./gem5/build/RISCV/gem5.opt > ./gem5/configs/example/riscv/fs_linux.py --kernel=test —bare-metal > > warn: The \`get_runtime_isa\` function is deprecated. Please migrate away > from using this function. > > warn: The \`get_runtime_isa\` function is deprecated. Please migrate away > from using this function. > > Global frequency set at 1 ticks per second > > warn: No dot file generated. Please install pydot to generate the dot file > and pdf. > > src/mem/dram_interface.cc:690: warn: DRAM device capacity (8192 Mbytes) does > not match the address range assigned (512 Mbytes) > > src/base/statistics.hh:279: warn: One of the stats is a legacy stat. Legacy > stat is a stat that does not belong to any statistics::Group. Legacy stat is > deprecated. > > 0: system.platform.rtc: Real-time clock set to Sun Jan 1 00:00:00 2012 > > system.platform.terminal: Listening for connections on port 3456 > > system.remote_gdb: Listening for connections on port 7000 > > \*\*\*\* REAL SIMULATION \*\*\*\* > > src/sim/simulate.cc:194: info: Entering event queue @ 0. Starting > simulation... > > src/cpu/simple/atomic.cc:753: panic: panic condition pkt.isError() occurred: > Instruction fetch (\[0x10420:0x10424\]) failed: BadAddressError > \[10420:10423\] IF > > Memory Usage: 626284 KBytes > > Program aborted at tick 0 > > \--- BEGIN LIBC BACKTRACE --- > > gem5.opt(+0x63c370)\[0x56510fbd8370\] > > gem5.opt(+0x66b7ac)\[0x56510fc077ac\] > > /lib/x86_64-linux-gnu/libc.so.6(+0x42520)\[0x7f32bd310520\] > > /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)\[0x7f32bd3649fc\] > > /lib/x86_64-linux-gnu/libc.so.6(raise+0x16)\[0x7f32bd310476\] > > /lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)\[0x7f32bd2f67f3\] > > gem5.opt(+0x654825)\[0x56510fbf0825\] > > gem5.opt(+0xb92873)\[0x56511012e873\] > > gem5.opt(+0xb91920)\[0x56511012d920\] > > gem5.opt(+0x657612)\[0x56510fbf3612\] > > gem5.opt(+0x6953b8)\[0x56510fc313b8\] > > gem5.opt(+0x6959ab)\[0x56510fc319ab\] > > gem5.opt(+0x132e8f0)\[0x5651108ca8f0\] > > gem5.opt(+0x5d0b74)\[0x56510fb6cb74\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x128023)\[0x7f32bde0f023\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyObject_Call+0x5c)\[0x7f32bddc8fec\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x4b16)\[0x7f32bdd5d776\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x9d68)\[0x7f32bdd629c8\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x69de)\[0x7f32bdd5f63e\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x9d68)\[0x7f32bdd629c8\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(PyEval_EvalCode+0xbe)\[0x7f32bdea43de\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1bd96d)\[0x7f32bdea496d\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1287b3)\[0x7f32bde0f7b3\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x69de)\[0x7f32bdd5f63e\] > > /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\] > > gem5.opt(+0x66e2f7)\[0x56510fc0a2f7\] > > gem5.opt(+0x3cff1b)\[0x56510f96bf1b\] > > /lib/x86_64-linux-gnu/libc.so.6(+0x29d90)\[0x7f32bd2f7d90\] > > \--- END LIBC BACKTRACE --- > > For more info on how to address this issue, please visit > https://www.gem5.org/documentation/general_docs/common-errors/ > > Aborted (core dumped) How can I fix it? Is it correct to use the bare-metal option? Or can I do it some other way? Does the C program need any dependencies? ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org