Azadeh,

You can use util/tracediff to compare the output of gem5 for two different (but concurrent) runs. If you want to compare the application outputs, you need to have it outputs on stdout or stderr. You can tune what you cant to compare in gem5 by selecting the flags you want.
For instance:

util/tracediff 'build/X86/#gem5.correct|gem5.faulty' --debug-flags=All etc will run gem5.correct and gem5.faulty and diff All the flags.

I usually use the following flags: ExecAll(to get retired insts + results), -ExecTicks(so tracediff does not desynchronise on the ticks),-ExecFetchSeq(so tracediff does not desynchronize on the fetch sequence number). The syntax for the parameters is either 'param_for_executable1|param_for_executable2' (e.g. '--l2cache|' meaning the first executable will have L2 and the second will not) or 'param=#value_for_exe1|value_for_exec2' (e.g. '--l2size=#512kB|1MB').

However, tracediff exits as soon as it desynchronizes, so you may have to tweak the script to continue/try to resynchronize harder. It mostly depends on if your control flow is going to diverge or not I think.
If you just diff the application output, this should be fine.

Hope it helps,

Arthur.

Le 19/02/2015 09:40, Azadeh Shirvanian via gem5-users a écrit :
Dear all

I am working on X86, classical memory and running in SE mode.

I need to compare the application outputs in a loop. One output is always fault-free and the other is always faulty because of random fault injections.

I would like to know how such comparison is possible in gem5 and how I can do that.

I would appreciate any help.

Azadeh


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


--
Arthur Perais
INRIA Bretagne Atlantique
Bâtiment 12E, Bureau E303, Campus de Beaulieu
35042 Rennes, France

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

Reply via email to