[gem5-users] About gem5 stats granularity

2024-01-12 Thread elio.vinciguerra--- via gem5-users
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] Re: About gem5 stats granularity

2024-01-12 Thread elio.vinciguerra--- via gem5-users
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] Re: About gem5 stats granularity

2024-01-12 Thread elio.vinciguerra--- via gem5-users
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] How to suspend FS simulation after certain number of ticks

2024-01-16 Thread elio.vinciguerra--- via gem5-users
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: How to suspend FS simulation after certain number of ticks

2024-01-16 Thread elio.vinciguerra--- via gem5-users
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] gem5 Fault Injector tool?

2024-01-17 Thread elio.vinciguerra--- via gem5-users
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] Full System emulation using bare metal option

2024-01-08 Thread elio.vinciguerra--- via gem5-users
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


[gem5-users] About simulating simple C program in gem5 FS mode

2024-02-01 Thread elio.vinciguerra--- via gem5-users
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] Re: About simulating simple C program in gem5 FS mode

2024-02-01 Thread elio.vinciguerra--- via gem5-users
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